echos-ocr/scripts
Randall Stillwell 7aedae02fc Keep card name and contact fields in sync after edits
Two bugs caused the cards list and integrations to show stale data
after a user edited a card in the detail view:

1. ResponseCard.name is a denormalized display string set only at
   OCR / survey-submit time. Editing firstName or lastName never
   recomputed it, so the table header and Name column kept the old
   value. PUT /api/cards/[id] now recomputes name from first + last
   whenever either changes (unless the caller passed an explicit
   name). The detail page header reads from in-flight edits so the
   title updates live as the user types.

2. The default form template marked only firstName/lastName as
   isCore. Every other field (email, cellPhone, address, etc.) was
   non-core, so dynamic-field edits landed in ResponseCard.fieldData
   JSON and never touched the top-level columns the list view,
   search, CSV export, and integrations read from. The PUT route
   now promotes any fieldData keys that match canonical columns up
   to those columns; the default template marks all canonical
   fields as isCore so new orgs avoid the problem in the first
   place.

Adds scripts/backfill-core-fields.ts (dry-run by default; pass
--apply to commit) to flip existing FormField rows to isCore = true
where the key matches a canonical column and to promote any
existing fieldData values into empty top-level columns + recompute
stale name values.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 08:30:27 -05:00
..
backfill-core-fields.ts Keep card name and contact fields in sync after edits 2026-05-21 08:30:27 -05:00
migrate-database.sh Migrate to Vercel + Supabase + Upstash production stack 2026-04-15 23:51:44 -05:00
migrate-storage.ts Migrate to Vercel + Supabase + Upstash production stack 2026-04-15 23:51:44 -05:00
migrate-to-echo-life.ts Migrate Echo Life Church data, add invite acceptance for existing users 2026-04-17 08:15:31 -05:00
verify-migration.ts Migrate to Vercel + Supabase + Upstash production stack 2026-04-15 23:51:44 -05:00