Contact.phone deixa de ser único em enforcement (nunca houve constraint DB): - remove o hook enforceUniqueContactPhone e os asserts assertContactPhone* (conflicts/ambiguity) — os 5 fluxos de escrita de pessoa salvam com número compartilhado; rename contactPhoneInvariant.ts -> contactPhoneLocks.ts (locks passam a significar serialização, não unicidade) - findOrCreateContactByPhone: 0 fichas cria, 1 reusa (dedupe C6/C99), 2+ cria ficha nova (a identidade da pessoa em criação é a ficha nova) - convite autofill/login: ficha ancorada pode compartilhar o phone; o lado conta permanece fail-closed (username DB-unique; check de 2+ contas) - import CSV: preview sinaliza telefone_compartilhado (resolução manual); confirm/bulk abortam fail-closed se um phone ganhar 2+ fichas (race) - fix de achado de execução: supporter_import_batch.actor_id NOT NULL com FK ON DELETE set null derrubava o delete de campaignUser com batch órfão (23502) — CampaignUser.beforeDelete limpa batches + fixture cleanup descobre/deleta batches dos accounts owned |
||
|---|---|---|
| .. | ||
| assertTestDatabase.ts | ||
| campaignFixtures.ts | ||
| distinctWordStartQuery.ts | ||
| featureBounds.ts | ||
| login.ts | ||
| matchMedia.ts | ||
| seedUser.ts | ||
| serverOnly.ts | ||
| stub.ts | ||
| testDatabaseLease.ts | ||
| tseFixtures.ts | ||