teqo-backup/src/lib/schemas/personDelete.ts
Francisco Solla cc7dff88c4 feat(C100): lista unificada de pessoas em /campanha/pessoas
Merge por Contact (uma linha por pessoa física) de lideranças,
dobradinhas e staff, com capacidades como colunas; omnibox com
capacidade/município/apoio + filtros salvos (2º call site do B18 via
factory createSavedFilterStore); apagar pessoa com manifest de
confirmação e cascata transacional; mobile edge-to-edge (omnibox sem
bordas, cards com divisórias, salvar filtro no header). Sem migration.

Closes #495
2026-08-10 13:45:46 -03:00

17 lines
672 B
TypeScript

import { z } from 'zod'
import { positiveRelationshipId } from '@/lib/schemas/primitives'
export const personDeleteInputSchema = z.object({
contactId: positiveRelationshipId,
})
/**
* Refusal messages shared verbatim between the server action (thrown) and the
* client dialog (rendered) — the `*_MESSAGE` constant convention. Client-safe.
*/
export const PERSON_DELETE_NOT_FOUND_MESSAGE = 'Pessoa não encontrada.'
export const PERSON_DELETE_FORBIDDEN_MESSAGE =
'Somente a coordenação e o candidato podem apagar pessoas.'
export const PERSON_DELETE_PROTECTED_ACCOUNT_MESSAGE =
'Esta pessoa tem conta de coordenação ou candidato e não pode ser apagada.'