teqo-backup/src/payload-types.ts

3798 lines
No EOL
94 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* tslint:disable */
/* eslint-disable */
/**
* This file was automatically generated by Payload.
* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
* and re-run `payload generate:types` to regenerate this file.
*/
/**
* Supported timezones in IANA format.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supportedTimezones".
*/
export type SupportedTimezones =
| 'Pacific/Midway'
| 'Pacific/Niue'
| 'Pacific/Honolulu'
| 'Pacific/Rarotonga'
| 'America/Anchorage'
| 'Pacific/Gambier'
| 'America/Los_Angeles'
| 'America/Tijuana'
| 'America/Denver'
| 'America/Phoenix'
| 'America/Chicago'
| 'America/Guatemala'
| 'America/New_York'
| 'America/Bogota'
| 'America/Caracas'
| 'America/Santiago'
| 'America/Buenos_Aires'
| 'America/Sao_Paulo'
| 'Atlantic/South_Georgia'
| 'Atlantic/Azores'
| 'Atlantic/Cape_Verde'
| 'Europe/London'
| 'Europe/Berlin'
| 'Africa/Lagos'
| 'Europe/Athens'
| 'Africa/Cairo'
| 'Europe/Moscow'
| 'Asia/Riyadh'
| 'Asia/Dubai'
| 'Asia/Baku'
| 'Asia/Karachi'
| 'Asia/Tashkent'
| 'Asia/Calcutta'
| 'Asia/Dhaka'
| 'Asia/Almaty'
| 'Asia/Jakarta'
| 'Asia/Bangkok'
| 'Asia/Shanghai'
| 'Asia/Singapore'
| 'Asia/Tokyo'
| 'Asia/Seoul'
| 'Australia/Brisbane'
| 'Australia/Sydney'
| 'Pacific/Guam'
| 'Pacific/Noumea'
| 'Pacific/Auckland'
| 'Pacific/Fiji';
export interface Config {
auth: {
users: UserAuthOperations;
campaignUser: CampaignUserAuthOperations;
};
blocks: {};
collections: {
users: User;
campaignUser: CampaignUser;
campaignWebAuthnCredential: CampaignWebAuthnCredential;
notification: Notification;
pushSubscription: PushSubscription;
campaignInvite: CampaignInvite;
campaignVoteSummarySnapshot: CampaignVoteSummarySnapshot;
municipality: Municipality;
leadership: Leadership;
organization: Organization;
stateDeputy: StateDeputy;
votePledge: VotePledge;
allocationDecision: AllocationDecision;
campaignDemand: CampaignDemand;
supporter: Supporter;
supporterImportBatch: SupporterImportBatch;
municipalityUpdate: MunicipalityUpdate;
activity: Activity;
speech: Speech;
speechSegment: SpeechSegment;
speechCut: SpeechCut;
internetSpeechMedia: InternetSpeechMedia;
reel: Reel;
reelMedia: ReelMedia;
contentPiece: ContentPiece;
contentMedia: ContentMedia;
contentEvent: ContentEvent;
recording: Recording;
recordingMedia: RecordingMedia;
recordingSegment: RecordingSegment;
calendarFeed: CalendarFeed;
googleCalendarSync: GoogleCalendarSync;
electionTally: ElectionTally;
electionCandidateVote: ElectionCandidateVote;
electionCandidate: ElectionCandidate;
media: Media;
petition: Petition;
contact: Contact;
consent: Consent;
signature: Signature;
subscription: Subscription;
post: Post;
tag: Tag;
shareLink: ShareLink;
jingle: Jingle;
exports: Export;
imports: Import;
'payload-kv': PayloadKv;
'payload-jobs': PayloadJob;
'payload-locked-documents': PayloadLockedDocument;
'payload-preferences': PayloadPreference;
'payload-migrations': PayloadMigration;
};
collectionsJoins: {};
collectionsSelect: {
users: UsersSelect<false> | UsersSelect<true>;
campaignUser: CampaignUserSelect<false> | CampaignUserSelect<true>;
campaignWebAuthnCredential: CampaignWebAuthnCredentialSelect<false> | CampaignWebAuthnCredentialSelect<true>;
notification: NotificationSelect<false> | NotificationSelect<true>;
pushSubscription: PushSubscriptionSelect<false> | PushSubscriptionSelect<true>;
campaignInvite: CampaignInviteSelect<false> | CampaignInviteSelect<true>;
campaignVoteSummarySnapshot: CampaignVoteSummarySnapshotSelect<false> | CampaignVoteSummarySnapshotSelect<true>;
municipality: MunicipalitySelect<false> | MunicipalitySelect<true>;
leadership: LeadershipSelect<false> | LeadershipSelect<true>;
organization: OrganizationSelect<false> | OrganizationSelect<true>;
stateDeputy: StateDeputySelect<false> | StateDeputySelect<true>;
votePledge: VotePledgeSelect<false> | VotePledgeSelect<true>;
allocationDecision: AllocationDecisionSelect<false> | AllocationDecisionSelect<true>;
campaignDemand: CampaignDemandSelect<false> | CampaignDemandSelect<true>;
supporter: SupporterSelect<false> | SupporterSelect<true>;
supporterImportBatch: SupporterImportBatchSelect<false> | SupporterImportBatchSelect<true>;
municipalityUpdate: MunicipalityUpdateSelect<false> | MunicipalityUpdateSelect<true>;
activity: ActivitySelect<false> | ActivitySelect<true>;
speech: SpeechSelect<false> | SpeechSelect<true>;
speechSegment: SpeechSegmentSelect<false> | SpeechSegmentSelect<true>;
speechCut: SpeechCutSelect<false> | SpeechCutSelect<true>;
internetSpeechMedia: InternetSpeechMediaSelect<false> | InternetSpeechMediaSelect<true>;
reel: ReelSelect<false> | ReelSelect<true>;
reelMedia: ReelMediaSelect<false> | ReelMediaSelect<true>;
contentPiece: ContentPieceSelect<false> | ContentPieceSelect<true>;
contentMedia: ContentMediaSelect<false> | ContentMediaSelect<true>;
contentEvent: ContentEventSelect<false> | ContentEventSelect<true>;
recording: RecordingSelect<false> | RecordingSelect<true>;
recordingMedia: RecordingMediaSelect<false> | RecordingMediaSelect<true>;
recordingSegment: RecordingSegmentSelect<false> | RecordingSegmentSelect<true>;
calendarFeed: CalendarFeedSelect<false> | CalendarFeedSelect<true>;
googleCalendarSync: GoogleCalendarSyncSelect<false> | GoogleCalendarSyncSelect<true>;
electionTally: ElectionTallySelect<false> | ElectionTallySelect<true>;
electionCandidateVote: ElectionCandidateVoteSelect<false> | ElectionCandidateVoteSelect<true>;
electionCandidate: ElectionCandidateSelect<false> | ElectionCandidateSelect<true>;
media: MediaSelect<false> | MediaSelect<true>;
petition: PetitionSelect<false> | PetitionSelect<true>;
contact: ContactSelect<false> | ContactSelect<true>;
consent: ConsentSelect<false> | ConsentSelect<true>;
signature: SignatureSelect<false> | SignatureSelect<true>;
subscription: SubscriptionSelect<false> | SubscriptionSelect<true>;
post: PostSelect<false> | PostSelect<true>;
tag: TagSelect<false> | TagSelect<true>;
shareLink: ShareLinkSelect<false> | ShareLinkSelect<true>;
jingle: JingleSelect<false> | JingleSelect<true>;
exports: ExportsSelect<false> | ExportsSelect<true>;
imports: ImportsSelect<false> | ImportsSelect<true>;
'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
'payload-jobs': PayloadJobsSelect<false> | PayloadJobsSelect<true>;
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
};
db: {
defaultIDType: number;
};
fallbackLocale: null;
globals: {
'site-settings': SiteSetting;
home: Home;
metadata: Metadatum;
'privacy-policy': PrivacyPolicy;
campaignGoals: CampaignGoal;
'social-feed-settings': SocialFeedSetting;
};
globalsSelect: {
'site-settings': SiteSettingsSelect<false> | SiteSettingsSelect<true>;
home: HomeSelect<false> | HomeSelect<true>;
metadata: MetadataSelect<false> | MetadataSelect<true>;
'privacy-policy': PrivacyPolicySelect<false> | PrivacyPolicySelect<true>;
campaignGoals: CampaignGoalsSelect<false> | CampaignGoalsSelect<true>;
'social-feed-settings': SocialFeedSettingsSelect<false> | SocialFeedSettingsSelect<true>;
};
locale: null;
widgets: {
collections: CollectionsWidget;
};
user: User | CampaignUser;
jobs: {
tasks: {
createCollectionExport: TaskCreateCollectionExport;
createCollectionImport: TaskCreateCollectionImport;
schedulePublish: TaskSchedulePublish;
inline: {
input: unknown;
output: unknown;
};
};
workflows: unknown;
};
}
export interface UserAuthOperations {
forgotPassword: {
email: string;
password: string;
};
login: {
email: string;
password: string;
};
registerFirstUser: {
email: string;
password: string;
};
unlock: {
email: string;
password: string;
};
}
export interface CampaignUserAuthOperations {
forgotPassword:
| {
email: string;
}
| {
username: string;
};
login:
| {
email: string;
password: string;
}
| {
password: string;
username: string;
};
registerFirstUser: {
password: string;
username?: string;
email?: string;
};
unlock:
| {
email: string;
}
| {
username: string;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users".
*/
export interface User {
id: number;
/**
* Administrador: acesso total ao painel. Editor: publica notícias/tags/mídia — sem PII nem campanha. Contas novas de comunicação devem ser “Editor”.
*/
roles: ('admin' | 'editor')[];
updatedAt: string;
createdAt: string;
email: string;
resetPasswordToken?: string | null;
resetPasswordExpiration?: string | null;
salt?: string | null;
hash?: string | null;
loginAttempts?: number | null;
lockUntil?: string | null;
sessions?:
| {
id: string;
createdAt?: string | null;
expiresAt: string;
}[]
| null;
password?: string | null;
collection: 'users';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignUser".
*/
export interface CampaignUser {
id: number;
contact?: (number | null) | Contact;
name: string;
avatar?: (number | null) | Media;
role: 'coordinator' | 'advisor' | 'candidate' | 'communicator' | 'leader';
/**
* O que o assessor enxerga no /campanha.
*/
visibility?: ('carteira' | 'tudo') | null;
/**
* O que o assessor pode editar no /campanha.
*/
editing?: ('carteira' | 'tudo' | 'somente_leitura') | null;
phone?: string | null;
updatedAt: string;
createdAt: string;
email?: string | null;
username?: string | null;
resetPasswordToken?: string | null;
resetPasswordExpiration?: string | null;
salt?: string | null;
hash?: string | null;
loginAttempts?: number | null;
lockUntil?: string | null;
sessions?:
| {
id: string;
createdAt?: string | null;
expiresAt: string;
}[]
| null;
password?: string | null;
collection: 'campaignUser';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "contact".
*/
export interface Contact {
id: number;
name: string;
email?: string | null;
phones?:
| {
value?: string | null;
id?: string | null;
}[]
| null;
gender?: ('feminino' | 'masculino' | 'outro' | 'nao_informado') | null;
state?:
| (
| 'AC'
| 'AL'
| 'AM'
| 'AP'
| 'BA'
| 'CE'
| 'DF'
| 'ES'
| 'GO'
| 'MA'
| 'MG'
| 'MS'
| 'MT'
| 'PA'
| 'PB'
| 'PE'
| 'PI'
| 'PR'
| 'RJ'
| 'RN'
| 'RO'
| 'RR'
| 'RS'
| 'SC'
| 'SE'
| 'SP'
| 'TO'
)
| null;
city?: string | null;
postalCode?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media".
*/
export interface Media {
id: number;
/**
* Descrição da imagem para acessibilidade.
*/
alt: string;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* Chaves públicas dos aparelhos que entram com digital ou Face ID. Nenhum dado biométrico é armazenado.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignWebAuthnCredential".
*/
export interface CampaignWebAuthnCredential {
id: number;
user: number | CampaignUser;
credentialId: string;
publicKey: string;
counter: number;
transports?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
deviceLabel: string;
lastUsedAt?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* Avisos in-app e push da campanha. Cada linha pertence a um destinatário.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "notification".
*/
export interface Notification {
id: number;
recipient: number | CampaignUser;
type: 'municipality_update' | 'new_supporter' | 'activity_attention' | 'invite_accepted';
/**
* Título, detalhe e href exibidos no sino e no push.
*/
payload:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
municipality?: (number | null) | Municipality;
readAt?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* Os 435 municípios operacionais são pré-definidos (município inteiro, ou zona eleitoral em Salvador) e criados por migração. A geografia não é editável.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "municipality".
*/
export interface Municipality {
id: number;
name: string;
slug: string;
kind: 'municipio' | 'zona';
city: string;
region: string;
ibgeCode: string;
tseCityCode: string;
/**
* Preenchido apenas para municípios de zona (Salvador).
*/
zoneNumber?: number | null;
advisors?: (number | CampaignUser)[] | null;
priority?: ('alta' | 'normal') | null;
/**
* Quanto a campanha investe neste município (N0 a N4). Movimento é decisão da coordenação e fica registrado em Decisões de alocação.
*/
engagementLevel?: ('n0' | 'n1' | 'n2' | 'n3' | 'n4') | null;
/**
* Motivo corrente do nível — o histórico vive em Decisões de alocação.
*/
levelNote?: string | null;
/**
* Derivado da última mudança de nível.
*/
levelChangedAt?: string | null;
/**
* Total esperado do município por cenário (pessimista/média/otimista) — distinto da soma das lideranças.
*/
expectedVotes?: {
pessimistic?: number | null;
central?: number | null;
optimistic?: number | null;
};
/**
* Leitura de conjuntura registrada pela coordenação (alianças, prefeitos, disputas locais) — não é série numérica.
*/
politicalTrend?: {
status?: ('favoravel' | 'neutra' | 'desfavoravel') | null;
note?: string | null;
recordedBy?: (number | null) | CampaignUser;
recordedAt?: string | null;
};
strengths?:
| {
text: string;
id?: string | null;
}[]
| null;
risks?:
| {
text: string;
id?: string | null;
}[]
| null;
stateDeputies?: (number | StateDeputy)[] | null;
/**
* Quem dobra no município hoje e o estado da negociação.
*/
dobradinhaNotes?: string | null;
/**
* Próximos passos operacionais para o município.
*/
nextSteps?: string | null;
/**
* Emendas parlamentares aportadas no município (valores, anos, situação) — nota manual da coordenação (G11).
*/
budgetNotes?: string | null;
/**
* Derivado automaticamente do feed de atualizações do município.
*/
lastUpdateAt?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* Deputados estaduais com quem a campanha dobra. Vincule a municípios e lideranças nas fichas correspondentes.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "stateDeputy".
*/
export interface StateDeputy {
id: number;
contact: number | Contact;
slug: string;
party?: string | null;
/**
* Como o nome da dobradinha deve aparecer na urna (ex.: apelido ou abreviação).
*/
ballotName?: string | null;
notes?: string | null;
advisors?: (number | CampaignUser)[] | null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* Endpoints Web Push por dispositivo. Não armazena dados biométricos.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "pushSubscription".
*/
export interface PushSubscription {
id: number;
user: number | CampaignUser;
endpoint: string;
p256dh: string;
auth: string;
expirationTime?: number | null;
consent: number | Consent;
consentContentHash: string;
consentedAt: string;
userAgent?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "consent".
*/
export interface Consent {
id: number;
/**
* Identificador estável para referências no código.
*/
key?: string | null;
text: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignInvite".
*/
export interface CampaignInvite {
id: number;
tokenHash: string;
leadership: number | Leadership;
kind: 'login' | 'autopreenchimento';
expiresAt: string;
usedAt?: string | null;
revokedAt?: string | null;
createdBy: number | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "leadership".
*/
export interface Leadership {
id: number;
contact: number | Contact;
municipalities: (number | Municipality)[];
organizations?: (number | Organization)[] | null;
stateDeputies?: (number | StateDeputy)[] | null;
advisors?: (number | CampaignUser)[] | null;
exclusive?: boolean | null;
supportStatus: 'engajado' | 'a_abordar' | 'em_disputa' | 'lembranca' | 'negativo';
user?: (number | null) | CampaignUser;
consent?: (number | null) | Consent;
consentContentHash?: string | null;
consentedAt?: string | null;
notes?: string | null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* Sindicatos, associações, movimentos e afins. Concentra lideranças associadas e atividades apoiadas.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "organization".
*/
export interface Organization {
id: number;
name: string;
slug: string;
kind: 'sindicato' | 'associacao' | 'religioso' | 'movimento' | 'categoria_profissional' | 'outro';
municipalities?: (number | Municipality)[] | null;
notes?: string | null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignVoteSummarySnapshot".
*/
export interface CampaignVoteSummarySnapshot {
id: number;
/**
* Dia civil America/Bahia (`aaaa-mm-dd`), armazenado como meia-noite UTC.
*/
day: string;
scopeKey: string;
staffVoteTotalCentral: number;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "votePledge".
*/
export interface VotePledge {
id: number;
leadership: number | Leadership;
municipality: number | Municipality;
declaredVotes: number;
declaredAt?: string | null;
declaredBy?: (number | null) | CampaignUser;
/**
* Faixa interna pessimista / média / otimista. A liderança nunca vê estes números.
*/
estimatedVotes?: {
pessimistic?: number | null;
central?: number | null;
optimistic?: number | null;
};
estimateNote?: string | null;
estimatedBy?: (number | null) | CampaignUser;
estimatedAt?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "allocationDecision".
*/
export interface AllocationDecision {
id: number;
municipality: number | Municipality;
patternId: string;
outcome: 'aceita' | 'descarta' | 'movimento' | 'adiada';
rationale?: string | null;
alternativeReading?: string | null;
/**
* Somente os números e classificações usados no momento da decisão.
*/
snapshot:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
decidedBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* Necessidades operacionais da campanha. Custo e comprovantes são controle interno — não substituem a prestação de contas oficial (SPCE/TSE).
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignDemand".
*/
export interface CampaignDemand {
id: number;
title: string;
slug: string;
kind:
| 'material'
| 'servico'
| 'transporte'
| 'alimentacao'
| 'infraestrutura'
| 'espaco'
| 'equipamento'
| 'pessoal_apoio'
| 'outro';
description?: string | null;
municipality: number | Municipality;
activity?: (number | null) | Activity;
leadership?: (number | null) | Leadership;
/**
* Só responsáveis, candidato e coordenador veem a demanda. O criador entra automaticamente.
*/
responsibles?: (number | CampaignUser)[] | null;
status: 'aberta' | 'em_analise' | 'escalada' | 'aprovada' | 'rejeitada';
decisionNote?: string | null;
decidedBy?: (number | null) | CampaignUser;
decidedAt?: string | null;
/**
* Controle interno de gastos. Não substitui a prestação de contas oficial.
*/
cost?: number | null;
/**
* Documentos fiscais podem conter CPF/CNPJ — acesso restrito ao staff. Não substitui o SPCE.
*/
receipts?: (number | Media)[] | null;
statusHistory?:
| {
status: 'aberta' | 'em_analise' | 'escalada' | 'aprovada' | 'rejeitada';
note?: string | null;
author?: (number | null) | CampaignUser;
createdAt?: string | null;
id?: string | null;
}[]
| null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "activity".
*/
export interface Activity {
id: number;
title: string;
slug: string;
/**
* Classificação livre do compromisso (ex.: comício, imprensa, reunião).
*/
tags?: string[] | null;
status: 'confirmado' | 'realizado' | 'cancelado';
description?: string | null;
/**
* Marque quando o deputado Jorge Solla estiver presente na atividade.
*/
deputyPresent?: boolean | null;
/**
* Compromisso que ocupa um ou mais dias inteiros, sem horário.
*/
allDay?: boolean | null;
/**
* Quando marcado, este evento poderá ser publicado no site do candidato (futuro).
*/
publicEvent?: boolean | null;
startAt?: string | null;
endAt?: string | null;
municipality?: (number | null) | Municipality;
locality?: string | null;
organizations?: (number | Organization)[] | null;
responsible?:
| (
| {
relationTo: 'campaignUser';
value: number | CampaignUser;
}
| {
relationTo: 'leadership';
value: number | Leadership;
}
| {
relationTo: 'stateDeputy';
value: number | StateDeputy;
}
)[]
| null;
tasks?:
| {
title: string;
responsible?: (number | null) | Contact;
done?: boolean | null;
doneAt?: string | null;
id?: string | null;
}[]
| null;
taskTotal?: number | null;
taskDoneCount?: number | null;
updates?:
| {
body: string;
author?: (number | null) | CampaignUser;
createdAt?: string | null;
id?: string | null;
}[]
| null;
/**
* O que aconteceu, público, aprendizados. Vira base para futuras atividades no mesmo município.
*/
resultSummary?: string | null;
resultMedia?: (number | Media)[] | null;
resultRecordedBy?: (number | null) | CampaignUser;
resultRecordedAt?: string | null;
lastMirroredChangeAt?: string | null;
googleEventId?: string | null;
googleCalendarId?: string | null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supporter".
*/
export interface Supporter {
id: number;
contact: number | Contact;
municipality?: (number | null) | Municipality;
voteIntention?: ('certo' | 'tende_a_certo' | 'indeciso' | 'outro') | null;
consent?: (number | null) | Consent;
consentContentHash?: string | null;
consentedAt?: string | null;
voteIntentionConsent?: (number | null) | Consent;
voteIntentionConsentContentHash?: string | null;
voteIntentionConsentedAt?: string | null;
source: 'import_csv' | 'manual' | 'lideranca' | 'convite' | 'evento';
consentNote?: string | null;
notes?: string | null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supporterImportBatch".
*/
export interface SupporterImportBatch {
id: number;
batchId: string;
actor?: (number | null) | CampaignUser;
expiresAt: string;
rows:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "municipalityUpdate".
*/
export interface MunicipalityUpdate {
id: number;
municipality: number | Municipality;
author: number | CampaignUser;
polarity: 'boa' | 'neutra' | 'ruim';
urgent?: boolean | null;
adversarySignal?: boolean | null;
body: string;
activeVolunteers?: number | null;
newSupports?: number | null;
/**
* Staff do município ou coordenação que acompanha este fato.
*/
responsible?: (number | null) | CampaignUser;
resolvedBy?: (number | null) | CampaignUser;
resolvedAt?: string | null;
/**
* Fio de deliberação sobre esta atualização.
*/
comments?:
| {
body: string;
author?: (number | null) | CampaignUser;
createdAt?: string | null;
id?: string | null;
}[]
| null;
updatedAt: string;
createdAt: string;
}
/**
* Acervo de falas do deputado: discursos na Câmara (CC BY 4.0) e falas publicadas na internet (mídia espelhada privada).
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "speech".
*/
export interface Speech {
id: number;
/**
* Identidade da fala: API da Câmara ou web:<plataforma>:<id|url>.
*/
sourceKey: string;
/**
* Discurso da Câmara ou fala publicada na internet.
*/
origin: 'camara' | 'web';
/**
* Horário local de Brasília, como publicado pela Câmara.
*/
speechAt: string;
year?: number | null;
legislature?: ('54' | '55' | '56' | '57') | null;
type?: string | null;
phase?: string | null;
durationSeconds?: number | null;
summary?: string | null;
officialTranscript?: string | null;
officialTextUrl?: string | null;
/**
* Preservadas cruas; as facetas não as substituem.
*/
keywords?: string[] | null;
/**
* Concatenação normalizada dos segmentos (sem acentos); mantida pelo import.
*/
searchText?: string | null;
eventId?: number | null;
eventType?: string | null;
eventStartAt?: string | null;
eventEndAt?: string | null;
youtubeUrl?: string | null;
/**
* Derivado das trocas de mesa da sessão; vazio quando não há registro.
*/
presidingOfficer?: string | null;
audioId?: number | null;
excerptTMs?: number | null;
/**
* Último link conhecido; regerável pelo VOD.
*/
vodPlaybackUrl?: string | null;
/**
* Último link conhecido; regerável pelo VOD.
*/
vodDownloadUrl?: string | null;
/**
* Plataforma de origem da fala da internet.
*/
platform?: ('youtube' | 'instagram' | 'radio' | 'audio') | null;
/**
* Identificador da publicação na plataforma (quando houver).
*/
externalId?: string | null;
/**
* Link canônico da publicação original.
*/
sourceUrl?: string | null;
/**
* Título da publicação na plataforma.
*/
title?: string | null;
/**
* Quem publicou (canal, rádio, perfil) — texto de origem, não é contato.
*/
channel?: string | null;
/**
* Arquivo privado preservado para player, download e cortes.
*/
mirroredMedia?: (number | null) | InternetSpeechMedia;
/**
* Capa da origem quando capturada; sem ela a lista mostra placeholder.
*/
thumbnail?: (number | null) | InternetSpeechMedia;
topics?:
| (
| 'saude'
| 'educacao'
| 'cultura'
| 'esporte'
| 'seguranca-publica'
| 'meio-ambiente'
| 'economia-trabalho'
| 'direitos-humanos'
| 'infraestrutura'
| 'ciencia-tecnologia'
| 'politica-instituicoes'
| 'agricultura'
| 'habitacao-cidades'
| 'comunicacao-midia'
| 'igualdade-racial'
| 'mulheres-genero'
| 'juventude'
| 'pessoa-deficiencia'
)[]
| null;
scopes?: ('bahia' | 'brasil' | 'internacional')[] | null;
classifiedBy: 'gazetteer' | 'llm' | 'manual';
mentionedMunicipalities?: (number | Municipality)[] | null;
/**
* Menções textuais — não é cadastro de contatos.
*/
mentionedPeople?: string[] | null;
mentionedPrograms?: string[] | null;
mentionedProjects?: string[] | null;
updatedAt: string;
createdAt: string;
}
/**
* Arquivos privados das falas encontradas na internet (mídia espelhada e capa). Só abrem com login da campanha.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "internetSpeechMedia".
*/
export interface InternetSpeechMedia {
id: number;
/**
* Descrição do arquivo para acessibilidade.
*/
alt: string;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "speechSegment".
*/
export interface SpeechSegment {
id: number;
speech: number | Speech;
order: number;
startSeconds: number;
endSeconds: number;
text: string;
/**
* Derivado do texto (sem acentos, minúsculas) para a busca por palavra.
*/
searchText: string;
updatedAt: string;
createdAt: string;
}
/**
* Cortes do acervo de falas publicados em /corte/<id>. Dados e vídeos da Câmara dos Deputados (CC BY 4.0).
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "speechCut".
*/
export interface SpeechCut {
id: number;
/**
* Fala de origem do corte. Preenchida pelo fluxo; fica vazia se a fala for excluída (o link público continua válido).
*/
speech?: (number | null) | Speech;
startSeconds: number;
endSeconds: number;
/**
* Derivada do trecho escolhido.
*/
durationSeconds?: number | null;
title: string;
description: string;
/**
* Despublicar tira o corte do ar na hora (kill switch).
*/
status: 'processing' | 'published' | 'unpublished' | 'failed';
/**
* Progresso honesto do corte em andamento.
*/
step?: ('resolving' | 'cutting' | 'metadata' | 'publishing') | null;
/**
* O arquivo que a página pública toca e baixa.
*/
media?: (number | null) | Media;
/**
* Motivo interno da falha; nunca vai ao público.
*/
error?: string | null;
publishedAt?: string | null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* Reels de tutorial da assessoria. Os arquivos são privados e só abrem com login da campanha; publicar não dispara nada no Instagram.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "reel".
*/
export interface Reel {
id: number;
title: string;
/**
* Funcionalidade do site que o tutorial ensina.
*/
feature: 'cards';
/**
* Hash do shot list do pacote; identifica o reel na ingestão (C195).
*/
sourceHash?: string | null;
/**
* Despublicar tira o reel da biblioteca e para de servir os arquivos (kill switch).
*/
status: 'draft' | 'published' | 'unpublished';
/**
* MP4 1080×1920 sem áudio — o arquivo principal que a assessoria baixa.
*/
video: number | ReelMedia;
/**
* Variante com a narração embutida, quando existir.
*/
videoWithAudio?: (number | null) | ReelMedia;
/**
* Rascunho da narração em áudio, quando existir.
*/
narrationAudio?: (number | null) | ReelMedia;
/**
* Arquivo de legenda pronto, vindo da produção.
*/
captions?: (number | null) | ReelMedia;
/**
* Imagem vertical usada na biblioteca e no player.
*/
cover: number | ReelMedia;
/**
* Texto da narração ou roteiro, vindo da produção.
*/
transcript?: string | null;
publishedAt?: string | null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* Arquivos privados dos reels (vídeo, narração, legenda, capa). Só abrem com login da campanha.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "reelMedia".
*/
export interface ReelMedia {
id: number;
/**
* Descrição do artefato para acessibilidade (capa e vídeo).
*/
alt: string;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* Peças de campanha da Central de Conteúdos. O arquivo é privado; "Rascunho" não aparece na Central pública.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "contentPiece".
*/
export interface ContentPiece {
id: number;
title: string;
/**
* Gerado no primeiro "Publicar" a partir do título e imutável depois. Despublicar não apaga o endereço.
*/
slug?: string | null;
/**
* Derivado do arquivo no envio; a assessoria pode ajustar (ex.: card).
*/
type: 'video' | 'foto' | 'texto' | 'audio' | 'card';
description?: string | null;
topics?:
| (
| 'saude'
| 'educacao'
| 'cultura'
| 'esporte'
| 'seguranca-publica'
| 'meio-ambiente'
| 'economia-trabalho'
| 'direitos-humanos'
| 'infraestrutura'
| 'ciencia-tecnologia'
| 'politica-instituicoes'
| 'agricultura'
| 'habitacao-cidades'
| 'comunicacao-midia'
| 'igualdade-racial'
| 'mulheres-genero'
| 'juventude'
| 'pessoa-deficiencia'
)[]
| null;
/**
* Município da campanha relacionado à peça (opcional).
*/
municipality?: (number | null) | Municipality;
/**
* Derivado do município relacionado.
*/
cityLabel?: string | null;
/**
* Território de identidade derivado do município.
*/
region?: string | null;
institution?: string | null;
pieceDate?: string | null;
/**
* Medida pelo provedor de transcrição; nunca estimada.
*/
durationSeconds?: number | null;
/**
* Transcrição do áudio/vídeo ou texto extraído. Editável pela assessoria.
*/
transcript?: string | null;
/**
* O arquivo privado; publicado, é o que a Central pública serve.
*/
media?: (number | null) | ContentMedia;
/**
* Link canônico do Instagram/YouTube quando a peça entrou por link.
*/
sourceUrl?: string | null;
origin: 'arquivo' | 'instagram' | 'youtube';
/**
* Despublicar tira a peça da Central pública na hora e preserva o arquivo.
*/
status: 'rascunho' | 'publicado';
publishedAt?: string | null;
processingStatus: 'processando' | 'pronto' | 'falhou';
/**
* Progresso honesto do processamento em andamento.
*/
step?: ('extraindo' | 'transcrevendo' | 'catalogando' | 'salvando') | null;
/**
* Motivo interno da falha; nunca vai à pessoa com o detalhe cru.
*/
error?: string | null;
/**
* Por que uma peça do Instagram ficou só como link; preenchido pelo processamento.
*/
linkFailureReason?: ('nao-encontrado' | 'carrossel' | 'indisponivel' | 'sem-credencial') | null;
/**
* Título, descrição, transcrição, temas, cidade e instituição normalizados (sem acentos, minúsculas).
*/
searchText?: string | null;
/**
* O que a assessoria já editou; a catalogação automática nunca sobrescreve estes campos.
*/
curatedFields?:
| ('title' | 'description' | 'topics' | 'municipality' | 'institution' | 'pieceDate' | 'transcript' | 'type')[]
| null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* Arquivos das peças da Central de Conteúdos. Só abrem com login da campanha.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "contentMedia".
*/
export interface ContentMedia {
id: number;
/**
* Descrição do arquivo para acessibilidade.
*/
alt: string;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* Eventos anônimos de circulação (abertura, download, compartilhamento).
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "contentEvent".
*/
export interface ContentEvent {
id: number;
type: 'abertura' | 'download' | 'compartilhar_whatsapp' | 'compartilhar_link';
subjectType: 'peca' | 'card';
/**
* Id interno da peça (peça) ou do modelo (card). Nunca um identificador de visitante.
*/
subjectId: string;
/**
* Slug do estadual escolhido (modelos de card com escolha estadual). Nunca um identificador de visitante.
*/
variant?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* Gravações próprias da equipe no acervo. O arquivo é privado; a transcrição é somente leitura.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "recording".
*/
export interface Recording {
id: number;
title: string;
/**
* Data em que a gravação foi feita (opcional).
*/
recordedAt?: string | null;
status: 'uploading' | 'processing' | 'ready' | 'failed';
/**
* Progresso honesto da transcrição em andamento.
*/
step?: ('extracting' | 'transcribing' | 'saving') | null;
/**
* O arquivo privado que o player toca e o download entrega.
*/
media?: (number | null) | RecordingMedia;
/**
* Derivada do áudio transcrito.
*/
durationSeconds?: number | null;
/**
* Concatenação normalizada dos segmentos (sem acentos, minúsculas).
*/
searchText?: string | null;
/**
* Rótulos humanos por agrupamento acústico (chave → nome). Identificação sempre humana; o acervo nunca sugere ou infere pessoas.
*/
speakerLabels?:
| {
speakerKey: string;
label: string;
id?: string | null;
}[]
| null;
/**
* Derivado dos rótulos (sem duplicatas, sem diferenciar maiúsculas) para a faceta "Pessoa".
*/
speakerNames?: string[] | null;
/**
* Ligado quando um reprocessamento reordenou os agrupamentos e algum rótulo não pôde ser re-vinculado.
*/
speakerLabelsDropped?: boolean | null;
/**
* Motivo interno da falha; nunca vai à pessoa com o detalhe cru.
*/
error?: string | null;
createdBy?: (number | null) | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* Arquivos privados das gravações enviadas ao acervo. Só abrem com login da campanha.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "recordingMedia".
*/
export interface RecordingMedia {
id: number;
/**
* Descrição do arquivo para acessibilidade.
*/
alt: string;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "recordingSegment".
*/
export interface RecordingSegment {
id: number;
recording: number | Recording;
order: number;
/**
* Chave do agrupamento acústico ("Falante N") do trecho; vazio sem diarização.
*/
speakerKey?: string | null;
startSeconds: number;
endSeconds: number;
text: string;
/**
* Derivado do texto (sem acentos, minúsculas) para a busca por palavra.
*/
searchText: string;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "calendarFeed".
*/
export interface CalendarFeed {
id: number;
secretSlug: string;
/**
* Nome descritivo para identificar o feed (ex: "Só deputado presente")
*/
label: string;
/**
* Se vazio, inclui todos os municípios do escopo do criador
*/
filterMunicipality?: (number | null) | Municipality;
filterDeputyPresent?: boolean | null;
/**
* Se vazio, inclui todas as tags
*/
filterTag?: string | null;
revokedAt?: string | null;
createdBy: number | CampaignUser;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "googleCalendarSync".
*/
export interface GoogleCalendarSync {
id: number;
/**
* O calendarId do calendário "Agenda da Campanha" na conta Google da campanha (ex.: c_…@group.calendar.google.com). O calendário precisa estar público no link e a service account com permissão de edição.
*/
calendarId?: string | null;
/**
* Credencial da conexão OAuth com a conta Google da campanha. Preenchida pelo callback do botão "Conectar com o Google"; nunca é exibida.
*/
oauthRefreshToken?: string | null;
/**
* Escopos que o Google devolveu na conexão (diagnóstico).
*/
oauthScope?: string | null;
oauthConnectedAt?: string | null;
oauthErrorAt?: string | null;
oauthError?: string | null;
/**
* Enquanto preenchido, o Teqo não escreve no Google.
*/
disabledAt?: string | null;
lastSyncedAt?: string | null;
lastSuccessAt?: string | null;
lastErrorAt?: string | null;
lastError?: string | null;
pushChannelId?: string | null;
pushChannelResourceId?: string | null;
pushChannelExpiresAt?: string | null;
pushChannelSecret?: string | null;
pushChannelError?: string | null;
lastSeenEventIds?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
}
/**
* Totais oficiais TSE por município e zona (dado público).
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "electionTally".
*/
export interface ElectionTally {
id: number;
year: number;
office: 'presidente' | 'governador' | 'deputado_federal' | 'deputado_estadual';
turn: '1' | '2';
state: string;
cityCode: string;
cityName: string;
zoneNumber: number;
aptos: number;
comparecimento: number;
abstencoes: number;
votosValidos: number;
votosNominaisValidos: number;
votosLegenda: number;
votosBranco: number;
votosNulo: number;
votosAnulados: number;
winnerCandidateNumber?: number | null;
winnerCandidateName?: string | null;
winnerVotes?: number | null;
winnerCoalition?: string | null;
winnerParty?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* Votos nominais oficiais TSE por município e zona (dado público).
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "electionCandidateVote".
*/
export interface ElectionCandidateVote {
id: number;
year: number;
office: 'presidente' | 'governador' | 'deputado_federal' | 'deputado_estadual';
turn: '1' | '2';
state: string;
cityCode: string;
cityName: string;
zoneNumber: number;
candidateNumber: number;
candidateName: string;
coalition?: string | null;
party?: string | null;
voteType: 'nominal' | 'legenda';
votes: number;
updatedAt: string;
createdAt: string;
}
/**
* Registro de candidatura TSE (dado público).
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "electionCandidate".
*/
export interface ElectionCandidate {
id: number;
year: number;
office: 'presidente' | 'governador' | 'deputado_federal' | 'deputado_estadual';
turn: '1' | '2';
state: string;
candidateNumber: number;
urnaName: string;
completeName?: string | null;
party?: string | null;
coalition?: string | null;
candidateStatus?: string | null;
elected?: boolean | null;
electedBy?: ('QP' | 'média' | '2º turno') | null;
totalVotesState?: number | null;
/**
* sha256(nome urna + naturalidade + partido); só dados públicos.
*/
identityKey?: string | null;
runningAgain2026: 'sim' | 'nao' | 'desconhecido';
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "petition".
*/
export interface Petition {
id: string;
title: string;
subtitle: string;
enabled: boolean;
body: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
};
form: {
title?: string | null;
subtitle?: string | null;
consent: number | Consent;
};
tracking?: {
/**
* Cole somente o ID numérico do Events Manager (ex.: 123456789012345), não o snippet HTML completo.
*/
facebookPixelId?: string | null;
};
updatedAt: string;
createdAt: string;
_status?: ('draft' | 'published') | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "signature".
*/
export interface Signature {
id: number;
contact: number | Contact;
petition: string | Petition;
consent: number | Consent;
comment?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "subscription".
*/
export interface Subscription {
id: number;
contact: number | Contact;
consent: number | Consent;
comment?: string | null;
campaignLevel?: ('time' | 'esporadico') | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "post".
*/
export interface Post {
id: number;
title: string;
/**
* Gerado automaticamente a partir do título quando vazio.
*/
slug?: string | null;
type: 'noticia' | 'campanha' | 'artigo' | 'evento';
category: number | Tag;
tags?: (number | Tag)[] | null;
subtitle?: string | null;
coverImage?: (number | null) | Media;
publishedDate?: string | null;
body?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
updatedAt: string;
createdAt: string;
_status?: ('draft' | 'published') | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "tag".
*/
export interface Tag {
id: number;
name: string;
/**
* Gerado automaticamente a partir do nome quando vazio.
*/
slug?: string | null;
/**
* Esconde do site todas as publicações com esta tag.
*/
hidden?: boolean | null;
updatedAt: string;
createdAt: string;
}
/**
* Links curtos com miniatura personalizada para compartilhar no WhatsApp. O endereço é jorgesolla1313.com.br/<slug>: no modo "Levar direto ao destino" o clique leva direto ao destino no ar; no modo "Página de anúncio" o visitante vê a página do evento até alguém marcar um destino no ar.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "shareLink".
*/
export interface ShareLink {
id: number;
/**
* Título do cartão no WhatsApp e da página de anúncio — o WhatsApp mostra no máximo 2 linhas (~60–90 caracteres).
*/
title: string;
/**
* Endereço curto: jorgesolla1313.com.br/<slug>. Gerado do título quando vazio; não pode repetir nem usar palavra reservada do site. O WhatsApp guarda a miniatura em cache por URL: para trocar a miniatura de um link já compartilhado, use um slug novo.
*/
slug: string;
/**
* "Levar direto ao destino" exige um destino no ar. "Página de anúncio" mostra a página do evento enquanto nenhum destino estiver no ar.
*/
mode: 'direct' | 'announcement';
/**
* Pré-cadastre os lugares para trocar sem digitar URL no dia. Marque "Destino no ar" em um único destino; nenhum marcado = pré-transmissão (só no modo "Página de anúncio").
*/
destinations?:
| {
/**
* Como o destino aparece para a equipe e na página (ex.: Google Meet).
*/
label: string;
/**
* URL completa do destino (ex.: o link do Google Meet da plenária), começando com http:// ou https://.
*/
url: string;
/**
* Marque um único destino quando a transmissão começar. Desmarque para voltar à pré-transmissão.
*/
live?: boolean | null;
id?: string | null;
}[]
| null;
/**
* Texto do cartão no WhatsApp e da página de anúncio: ~80 caracteres já bastam; evitar passar de ~160.
*/
description: string;
/**
* Imagem do cartão: 1200×630 px (proporção 1,91:1), arquivo até 600 KB, JPG ou PNG, largura mínima 300 px; evitar imagens muito largas (proporção máx. 4:1). A página do link monta a URL pública absoluta na hora de exibir o cartão. Vazio = imagem padrão do site.
*/
image?: (number | null) | Media;
/**
* Horário da Bahia.
*/
startsAt?: string | null;
/**
* Opcional. Sem fim, a agenda usa duração padrão de 2 horas.
*/
endsAt?: string | null;
/**
* Onde acontece (ex.: Online). Usado na página de anúncio e nas opções de agenda.
*/
location?: string | null;
/**
* Desmarcado, o link responde 404 (kill switch).
*/
published?: boolean | null;
updatedAt: string;
createdAt: string;
}
/**
* Peças de áudio do site público (/jingles). Suba o MP3 e a capa pela Mídia; desmarcar "Publicado" tira o jingle do ar na hora, sem apagar arquivo.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "jingle".
*/
export interface Jingle {
id: number;
/**
* Nome curto exibido no card (ex.: Axé).
*/
title: string;
/**
* Gerado automaticamente a partir do título quando vazio. Vira o nome do arquivo no download (jorge-solla-1313-<slug>.mp3).
*/
slug?: string | null;
/**
* Imagem quadrada exibida acima do player (JPG/PNG otimizados).
*/
coverImage: number | Media;
/**
* O MP3 que toca e baixa. O mesmo arquivo serve para ouvir e baixar; não suba WAV. A Mídia pede um texto alternativo — use algo como "Jingle Axé — áudio".
*/
audio: number | Media;
/**
* Menor vem primeiro; vazio vai ao fim. Empate desempata pelo título.
*/
order?: number | null;
/**
* Desmarcado, o jingle some do site e do rodapé na hora (kill switch).
*/
published?: boolean | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "exports".
*/
export interface Export {
id: number;
name?: string | null;
format: 'csv' | 'json';
limit?: number | null;
page?: number | null;
sort?: string | null;
sortOrder?: ('asc' | 'desc') | null;
drafts?: ('yes' | 'no') | null;
selectionToUse?: ('currentSelection' | 'currentFilters' | 'all') | null;
fields?: string[] | null;
collectionSlug: string;
where?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "imports".
*/
export interface Import {
id: number;
collectionSlug: string;
importMode?: ('create' | 'update' | 'upsert') | null;
matchField?: string | null;
status?: ('pending' | 'completed' | 'partial' | 'failed') | null;
summary?: {
imported?: number | null;
updated?: number | null;
total?: number | null;
issues?: number | null;
issueDetails?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
};
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-kv".
*/
export interface PayloadKv {
id: number;
key: string;
data:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-jobs".
*/
export interface PayloadJob {
id: number;
/**
* Input data provided to the job
*/
input?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
taskStatus?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
completedAt?: string | null;
totalTried?: number | null;
/**
* If hasError is true this job will not be retried
*/
hasError?: boolean | null;
/**
* If hasError is true, this is the error that caused it
*/
error?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
/**
* Task execution log
*/
log?:
| {
executedAt: string;
completedAt: string;
taskSlug: 'inline' | 'createCollectionExport' | 'createCollectionImport' | 'schedulePublish';
taskID: string;
input?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
output?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
state: 'failed' | 'succeeded';
error?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
id?: string | null;
}[]
| null;
taskSlug?: ('inline' | 'createCollectionExport' | 'createCollectionImport' | 'schedulePublish') | null;
queue?: string | null;
waitUntil?: string | null;
processing?: boolean | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents".
*/
export interface PayloadLockedDocument {
id: number;
document?:
| ({
relationTo: 'users';
value: number | User;
} | null)
| ({
relationTo: 'campaignUser';
value: number | CampaignUser;
} | null)
| ({
relationTo: 'campaignWebAuthnCredential';
value: number | CampaignWebAuthnCredential;
} | null)
| ({
relationTo: 'notification';
value: number | Notification;
} | null)
| ({
relationTo: 'pushSubscription';
value: number | PushSubscription;
} | null)
| ({
relationTo: 'campaignInvite';
value: number | CampaignInvite;
} | null)
| ({
relationTo: 'campaignVoteSummarySnapshot';
value: number | CampaignVoteSummarySnapshot;
} | null)
| ({
relationTo: 'municipality';
value: number | Municipality;
} | null)
| ({
relationTo: 'leadership';
value: number | Leadership;
} | null)
| ({
relationTo: 'organization';
value: number | Organization;
} | null)
| ({
relationTo: 'stateDeputy';
value: number | StateDeputy;
} | null)
| ({
relationTo: 'votePledge';
value: number | VotePledge;
} | null)
| ({
relationTo: 'allocationDecision';
value: number | AllocationDecision;
} | null)
| ({
relationTo: 'campaignDemand';
value: number | CampaignDemand;
} | null)
| ({
relationTo: 'supporter';
value: number | Supporter;
} | null)
| ({
relationTo: 'supporterImportBatch';
value: number | SupporterImportBatch;
} | null)
| ({
relationTo: 'municipalityUpdate';
value: number | MunicipalityUpdate;
} | null)
| ({
relationTo: 'activity';
value: number | Activity;
} | null)
| ({
relationTo: 'speech';
value: number | Speech;
} | null)
| ({
relationTo: 'speechSegment';
value: number | SpeechSegment;
} | null)
| ({
relationTo: 'speechCut';
value: number | SpeechCut;
} | null)
| ({
relationTo: 'internetSpeechMedia';
value: number | InternetSpeechMedia;
} | null)
| ({
relationTo: 'reel';
value: number | Reel;
} | null)
| ({
relationTo: 'reelMedia';
value: number | ReelMedia;
} | null)
| ({
relationTo: 'contentPiece';
value: number | ContentPiece;
} | null)
| ({
relationTo: 'contentMedia';
value: number | ContentMedia;
} | null)
| ({
relationTo: 'contentEvent';
value: number | ContentEvent;
} | null)
| ({
relationTo: 'recording';
value: number | Recording;
} | null)
| ({
relationTo: 'recordingMedia';
value: number | RecordingMedia;
} | null)
| ({
relationTo: 'recordingSegment';
value: number | RecordingSegment;
} | null)
| ({
relationTo: 'calendarFeed';
value: number | CalendarFeed;
} | null)
| ({
relationTo: 'googleCalendarSync';
value: number | GoogleCalendarSync;
} | null)
| ({
relationTo: 'electionTally';
value: number | ElectionTally;
} | null)
| ({
relationTo: 'electionCandidateVote';
value: number | ElectionCandidateVote;
} | null)
| ({
relationTo: 'electionCandidate';
value: number | ElectionCandidate;
} | null)
| ({
relationTo: 'media';
value: number | Media;
} | null)
| ({
relationTo: 'petition';
value: string | Petition;
} | null)
| ({
relationTo: 'contact';
value: number | Contact;
} | null)
| ({
relationTo: 'consent';
value: number | Consent;
} | null)
| ({
relationTo: 'signature';
value: number | Signature;
} | null)
| ({
relationTo: 'subscription';
value: number | Subscription;
} | null)
| ({
relationTo: 'post';
value: number | Post;
} | null)
| ({
relationTo: 'tag';
value: number | Tag;
} | null)
| ({
relationTo: 'shareLink';
value: number | ShareLink;
} | null)
| ({
relationTo: 'jingle';
value: number | Jingle;
} | null);
globalSlug?: string | null;
user:
| {
relationTo: 'users';
value: number | User;
}
| {
relationTo: 'campaignUser';
value: number | CampaignUser;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences".
*/
export interface PayloadPreference {
id: number;
user:
| {
relationTo: 'users';
value: number | User;
}
| {
relationTo: 'campaignUser';
value: number | CampaignUser;
};
key?: string | null;
value?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations".
*/
export interface PayloadMigration {
id: number;
name?: string | null;
batch?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users_select".
*/
export interface UsersSelect<T extends boolean = true> {
roles?: T;
updatedAt?: T;
createdAt?: T;
email?: T;
resetPasswordToken?: T;
resetPasswordExpiration?: T;
salt?: T;
hash?: T;
loginAttempts?: T;
lockUntil?: T;
sessions?:
| T
| {
id?: T;
createdAt?: T;
expiresAt?: T;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignUser_select".
*/
export interface CampaignUserSelect<T extends boolean = true> {
contact?: T;
name?: T;
avatar?: T;
role?: T;
visibility?: T;
editing?: T;
phone?: T;
updatedAt?: T;
createdAt?: T;
email?: T;
username?: T;
resetPasswordToken?: T;
resetPasswordExpiration?: T;
salt?: T;
hash?: T;
loginAttempts?: T;
lockUntil?: T;
sessions?:
| T
| {
id?: T;
createdAt?: T;
expiresAt?: T;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignWebAuthnCredential_select".
*/
export interface CampaignWebAuthnCredentialSelect<T extends boolean = true> {
user?: T;
credentialId?: T;
publicKey?: T;
counter?: T;
transports?: T;
deviceLabel?: T;
lastUsedAt?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "notification_select".
*/
export interface NotificationSelect<T extends boolean = true> {
recipient?: T;
type?: T;
payload?: T;
municipality?: T;
readAt?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "pushSubscription_select".
*/
export interface PushSubscriptionSelect<T extends boolean = true> {
user?: T;
endpoint?: T;
p256dh?: T;
auth?: T;
expirationTime?: T;
consent?: T;
consentContentHash?: T;
consentedAt?: T;
userAgent?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignInvite_select".
*/
export interface CampaignInviteSelect<T extends boolean = true> {
tokenHash?: T;
leadership?: T;
kind?: T;
expiresAt?: T;
usedAt?: T;
revokedAt?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignVoteSummarySnapshot_select".
*/
export interface CampaignVoteSummarySnapshotSelect<T extends boolean = true> {
day?: T;
scopeKey?: T;
staffVoteTotalCentral?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "municipality_select".
*/
export interface MunicipalitySelect<T extends boolean = true> {
name?: T;
slug?: T;
kind?: T;
city?: T;
region?: T;
ibgeCode?: T;
tseCityCode?: T;
zoneNumber?: T;
advisors?: T;
priority?: T;
engagementLevel?: T;
levelNote?: T;
levelChangedAt?: T;
expectedVotes?:
| T
| {
pessimistic?: T;
central?: T;
optimistic?: T;
};
politicalTrend?:
| T
| {
status?: T;
note?: T;
recordedBy?: T;
recordedAt?: T;
};
strengths?:
| T
| {
text?: T;
id?: T;
};
risks?:
| T
| {
text?: T;
id?: T;
};
stateDeputies?: T;
dobradinhaNotes?: T;
nextSteps?: T;
budgetNotes?: T;
lastUpdateAt?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "leadership_select".
*/
export interface LeadershipSelect<T extends boolean = true> {
contact?: T;
municipalities?: T;
organizations?: T;
stateDeputies?: T;
advisors?: T;
exclusive?: T;
supportStatus?: T;
user?: T;
consent?: T;
consentContentHash?: T;
consentedAt?: T;
notes?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "organization_select".
*/
export interface OrganizationSelect<T extends boolean = true> {
name?: T;
slug?: T;
kind?: T;
municipalities?: T;
notes?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "stateDeputy_select".
*/
export interface StateDeputySelect<T extends boolean = true> {
contact?: T;
slug?: T;
party?: T;
ballotName?: T;
notes?: T;
advisors?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "votePledge_select".
*/
export interface VotePledgeSelect<T extends boolean = true> {
leadership?: T;
municipality?: T;
declaredVotes?: T;
declaredAt?: T;
declaredBy?: T;
estimatedVotes?:
| T
| {
pessimistic?: T;
central?: T;
optimistic?: T;
};
estimateNote?: T;
estimatedBy?: T;
estimatedAt?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "allocationDecision_select".
*/
export interface AllocationDecisionSelect<T extends boolean = true> {
municipality?: T;
patternId?: T;
outcome?: T;
rationale?: T;
alternativeReading?: T;
snapshot?: T;
decidedBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignDemand_select".
*/
export interface CampaignDemandSelect<T extends boolean = true> {
title?: T;
slug?: T;
kind?: T;
description?: T;
municipality?: T;
activity?: T;
leadership?: T;
responsibles?: T;
status?: T;
decisionNote?: T;
decidedBy?: T;
decidedAt?: T;
cost?: T;
receipts?: T;
statusHistory?:
| T
| {
status?: T;
note?: T;
author?: T;
createdAt?: T;
id?: T;
};
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supporter_select".
*/
export interface SupporterSelect<T extends boolean = true> {
contact?: T;
municipality?: T;
voteIntention?: T;
consent?: T;
consentContentHash?: T;
consentedAt?: T;
voteIntentionConsent?: T;
voteIntentionConsentContentHash?: T;
voteIntentionConsentedAt?: T;
source?: T;
consentNote?: T;
notes?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supporterImportBatch_select".
*/
export interface SupporterImportBatchSelect<T extends boolean = true> {
batchId?: T;
actor?: T;
expiresAt?: T;
rows?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "municipalityUpdate_select".
*/
export interface MunicipalityUpdateSelect<T extends boolean = true> {
municipality?: T;
author?: T;
polarity?: T;
urgent?: T;
adversarySignal?: T;
body?: T;
activeVolunteers?: T;
newSupports?: T;
responsible?: T;
resolvedBy?: T;
resolvedAt?: T;
comments?:
| T
| {
body?: T;
author?: T;
createdAt?: T;
id?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "activity_select".
*/
export interface ActivitySelect<T extends boolean = true> {
title?: T;
slug?: T;
tags?: T;
status?: T;
description?: T;
deputyPresent?: T;
allDay?: T;
publicEvent?: T;
startAt?: T;
endAt?: T;
municipality?: T;
locality?: T;
organizations?: T;
responsible?: T;
tasks?:
| T
| {
title?: T;
responsible?: T;
done?: T;
doneAt?: T;
id?: T;
};
taskTotal?: T;
taskDoneCount?: T;
updates?:
| T
| {
body?: T;
author?: T;
createdAt?: T;
id?: T;
};
resultSummary?: T;
resultMedia?: T;
resultRecordedBy?: T;
resultRecordedAt?: T;
lastMirroredChangeAt?: T;
googleEventId?: T;
googleCalendarId?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "speech_select".
*/
export interface SpeechSelect<T extends boolean = true> {
sourceKey?: T;
origin?: T;
speechAt?: T;
year?: T;
legislature?: T;
type?: T;
phase?: T;
durationSeconds?: T;
summary?: T;
officialTranscript?: T;
officialTextUrl?: T;
keywords?: T;
searchText?: T;
eventId?: T;
eventType?: T;
eventStartAt?: T;
eventEndAt?: T;
youtubeUrl?: T;
presidingOfficer?: T;
audioId?: T;
excerptTMs?: T;
vodPlaybackUrl?: T;
vodDownloadUrl?: T;
platform?: T;
externalId?: T;
sourceUrl?: T;
title?: T;
channel?: T;
mirroredMedia?: T;
thumbnail?: T;
topics?: T;
scopes?: T;
classifiedBy?: T;
mentionedMunicipalities?: T;
mentionedPeople?: T;
mentionedPrograms?: T;
mentionedProjects?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "speechSegment_select".
*/
export interface SpeechSegmentSelect<T extends boolean = true> {
speech?: T;
order?: T;
startSeconds?: T;
endSeconds?: T;
text?: T;
searchText?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "speechCut_select".
*/
export interface SpeechCutSelect<T extends boolean = true> {
speech?: T;
startSeconds?: T;
endSeconds?: T;
durationSeconds?: T;
title?: T;
description?: T;
status?: T;
step?: T;
media?: T;
error?: T;
publishedAt?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "internetSpeechMedia_select".
*/
export interface InternetSpeechMediaSelect<T extends boolean = true> {
alt?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "reel_select".
*/
export interface ReelSelect<T extends boolean = true> {
title?: T;
feature?: T;
sourceHash?: T;
status?: T;
video?: T;
videoWithAudio?: T;
narrationAudio?: T;
captions?: T;
cover?: T;
transcript?: T;
publishedAt?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "reelMedia_select".
*/
export interface ReelMediaSelect<T extends boolean = true> {
alt?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "contentPiece_select".
*/
export interface ContentPieceSelect<T extends boolean = true> {
title?: T;
slug?: T;
type?: T;
description?: T;
topics?: T;
municipality?: T;
cityLabel?: T;
region?: T;
institution?: T;
pieceDate?: T;
durationSeconds?: T;
transcript?: T;
media?: T;
sourceUrl?: T;
origin?: T;
status?: T;
publishedAt?: T;
processingStatus?: T;
step?: T;
error?: T;
linkFailureReason?: T;
searchText?: T;
curatedFields?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "contentMedia_select".
*/
export interface ContentMediaSelect<T extends boolean = true> {
alt?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "contentEvent_select".
*/
export interface ContentEventSelect<T extends boolean = true> {
type?: T;
subjectType?: T;
subjectId?: T;
variant?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "recording_select".
*/
export interface RecordingSelect<T extends boolean = true> {
title?: T;
recordedAt?: T;
status?: T;
step?: T;
media?: T;
durationSeconds?: T;
searchText?: T;
speakerLabels?:
| T
| {
speakerKey?: T;
label?: T;
id?: T;
};
speakerNames?: T;
speakerLabelsDropped?: T;
error?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "recordingMedia_select".
*/
export interface RecordingMediaSelect<T extends boolean = true> {
alt?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "recordingSegment_select".
*/
export interface RecordingSegmentSelect<T extends boolean = true> {
recording?: T;
order?: T;
speakerKey?: T;
startSeconds?: T;
endSeconds?: T;
text?: T;
searchText?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "calendarFeed_select".
*/
export interface CalendarFeedSelect<T extends boolean = true> {
secretSlug?: T;
label?: T;
filterMunicipality?: T;
filterDeputyPresent?: T;
filterTag?: T;
revokedAt?: T;
createdBy?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "googleCalendarSync_select".
*/
export interface GoogleCalendarSyncSelect<T extends boolean = true> {
calendarId?: T;
oauthRefreshToken?: T;
oauthScope?: T;
oauthConnectedAt?: T;
oauthErrorAt?: T;
oauthError?: T;
disabledAt?: T;
lastSyncedAt?: T;
lastSuccessAt?: T;
lastErrorAt?: T;
lastError?: T;
pushChannelId?: T;
pushChannelResourceId?: T;
pushChannelExpiresAt?: T;
pushChannelSecret?: T;
pushChannelError?: T;
lastSeenEventIds?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "electionTally_select".
*/
export interface ElectionTallySelect<T extends boolean = true> {
year?: T;
office?: T;
turn?: T;
state?: T;
cityCode?: T;
cityName?: T;
zoneNumber?: T;
aptos?: T;
comparecimento?: T;
abstencoes?: T;
votosValidos?: T;
votosNominaisValidos?: T;
votosLegenda?: T;
votosBranco?: T;
votosNulo?: T;
votosAnulados?: T;
winnerCandidateNumber?: T;
winnerCandidateName?: T;
winnerVotes?: T;
winnerCoalition?: T;
winnerParty?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "electionCandidateVote_select".
*/
export interface ElectionCandidateVoteSelect<T extends boolean = true> {
year?: T;
office?: T;
turn?: T;
state?: T;
cityCode?: T;
cityName?: T;
zoneNumber?: T;
candidateNumber?: T;
candidateName?: T;
coalition?: T;
party?: T;
voteType?: T;
votes?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "electionCandidate_select".
*/
export interface ElectionCandidateSelect<T extends boolean = true> {
year?: T;
office?: T;
turn?: T;
state?: T;
candidateNumber?: T;
urnaName?: T;
completeName?: T;
party?: T;
coalition?: T;
candidateStatus?: T;
elected?: T;
electedBy?: T;
totalVotesState?: T;
identityKey?: T;
runningAgain2026?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media_select".
*/
export interface MediaSelect<T extends boolean = true> {
alt?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "petition_select".
*/
export interface PetitionSelect<T extends boolean = true> {
id?: T;
title?: T;
subtitle?: T;
enabled?: T;
body?: T;
form?:
| T
| {
title?: T;
subtitle?: T;
consent?: T;
};
tracking?:
| T
| {
facebookPixelId?: T;
};
updatedAt?: T;
createdAt?: T;
_status?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "contact_select".
*/
export interface ContactSelect<T extends boolean = true> {
name?: T;
email?: T;
phones?:
| T
| {
value?: T;
id?: T;
};
gender?: T;
state?: T;
city?: T;
postalCode?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "consent_select".
*/
export interface ConsentSelect<T extends boolean = true> {
key?: T;
text?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "signature_select".
*/
export interface SignatureSelect<T extends boolean = true> {
contact?: T;
petition?: T;
consent?: T;
comment?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "subscription_select".
*/
export interface SubscriptionSelect<T extends boolean = true> {
contact?: T;
consent?: T;
comment?: T;
campaignLevel?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "post_select".
*/
export interface PostSelect<T extends boolean = true> {
title?: T;
slug?: T;
type?: T;
category?: T;
tags?: T;
subtitle?: T;
coverImage?: T;
publishedDate?: T;
body?: T;
updatedAt?: T;
createdAt?: T;
_status?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "tag_select".
*/
export interface TagSelect<T extends boolean = true> {
name?: T;
slug?: T;
hidden?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "shareLink_select".
*/
export interface ShareLinkSelect<T extends boolean = true> {
title?: T;
slug?: T;
mode?: T;
destinations?:
| T
| {
label?: T;
url?: T;
live?: T;
id?: T;
};
description?: T;
image?: T;
startsAt?: T;
endsAt?: T;
location?: T;
published?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "jingle_select".
*/
export interface JingleSelect<T extends boolean = true> {
title?: T;
slug?: T;
coverImage?: T;
audio?: T;
order?: T;
published?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "exports_select".
*/
export interface ExportsSelect<T extends boolean = true> {
name?: T;
format?: T;
limit?: T;
page?: T;
sort?: T;
sortOrder?: T;
drafts?: T;
selectionToUse?: T;
fields?: T;
collectionSlug?: T;
where?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "imports_select".
*/
export interface ImportsSelect<T extends boolean = true> {
collectionSlug?: T;
importMode?: T;
matchField?: T;
status?: T;
summary?:
| T
| {
imported?: T;
updated?: T;
total?: T;
issues?: T;
issueDetails?: T;
};
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-kv_select".
*/
export interface PayloadKvSelect<T extends boolean = true> {
key?: T;
data?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-jobs_select".
*/
export interface PayloadJobsSelect<T extends boolean = true> {
input?: T;
taskStatus?: T;
completedAt?: T;
totalTried?: T;
hasError?: T;
error?: T;
log?:
| T
| {
executedAt?: T;
completedAt?: T;
taskSlug?: T;
taskID?: T;
input?: T;
output?: T;
state?: T;
error?: T;
id?: T;
};
taskSlug?: T;
queue?: T;
waitUntil?: T;
processing?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents_select".
*/
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
document?: T;
globalSlug?: T;
user?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences_select".
*/
export interface PayloadPreferencesSelect<T extends boolean = true> {
user?: T;
key?: T;
value?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations_select".
*/
export interface PayloadMigrationsSelect<T extends boolean = true> {
name?: T;
batch?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "site-settings".
*/
export interface SiteSetting {
id: number;
headerTitle?: string | null;
socialLinks?:
| {
platform: 'instagram' | 'facebook' | 'youtube' | 'whatsapp';
url: string;
/**
* Rótulo opcional para acessibilidade. Se estiver vazio, usamos um rótulo padrão da plataforma.
*/
label?: string | null;
enabled?: boolean | null;
id?: string | null;
}[]
| null;
tracking?: {
/**
* Cole somente o ID numérico do Events Manager (ex.: 123456789012345), não o snippet HTML completo.
*/
facebookPixelId?: string | null;
};
_status?: ('draft' | 'published') | null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "home".
*/
export interface Home {
id: number;
image: number | Media;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "metadata".
*/
export interface Metadatum {
id: number;
URL: string;
title: string;
description: string;
keywords: {
keyword: string;
id?: string | null;
}[];
openGraph: {
siteName: string;
description: string;
};
twitter: {
creator: string;
description: string;
};
image?: (number | null) | Media;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* Aviso de Privacidade institucional exibido em /privacidade. Publicar somente após revisão jurídica.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "privacy-policy".
*/
export interface PrivacyPolicy {
id: number;
/**
* Quando desmarcado, a rota pública /privacidade retorna 404.
*/
published?: boolean | null;
body: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
};
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignGoals".
*/
export interface CampaignGoal {
id: number;
/**
* Piso decidido pela coordenação geral. Define o cenário OTIMISTA da meta sugerida por município: a votação de 2022 de cada município é multiplicada por (meta estadual ÷ votação estadual de 2022), então a soma das metas otimistas fecha exatamente neste valor.
*/
stateGoal: number;
/**
* Corte do cenário PESSIMISTA da meta sugerida: quanto da votação de 2022 a campanha admite perder (ex.: 10 = meta pessimista 10% abaixo de 2022). Vazio usa 10%.
*/
margin?: number | null;
/**
* Ano-base considerado pela coordenação ao fixar a meta estadual (contexto, não usado em cálculo).
*/
baseYear?: number | null;
/**
* Contexto livre sobre a decisão da meta (ex.: data e instância que decidiu).
*/
note?: string | null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* Fonte automática do board "Acompanhe de perto" da home de campanha. Sem chave configurada, os cards da plataforma não aparecem.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "social-feed-settings".
*/
export interface SocialFeedSetting {
id: number;
/**
* Desligado, as fontes externas (YouTube, Instagram) somem do board sem mexer nos artigos do site.
*/
enabled?: boolean | null;
/**
* Desliga só os cards de vídeo do YouTube.
*/
youtubeEnabled?: boolean | null;
/**
* Chave de API do Google Cloud com a YouTube Data API v3 habilitada. Restrinja por IP se possível.
*/
youtubeApiKey?: string | null;
/**
* Ex.: UCyqT2nMLnwQn2Bh7mB7y3dA (o canal oficial é @JorgeSollaDep).
*/
youtubeChannelId?: string | null;
/**
* Quantos vídeos entram no bento (1 grande + os próximos).
*/
youtubeMaxItems?: number | null;
/**
* Desliga só os cards de post do Instagram.
*/
instagramEnabled?: boolean | null;
/**
* Token long-lived da conta Business/Creator vinculada à página do Facebook. Tokens emitidos via Instagram Login são renovados automaticamente; para page tokens, o refresh falha e o token precisa ser trocado aqui manualmente.
*/
instagramAccessToken?: string | null;
/**
* ID numérico da conta de negócios do Instagram.
*/
instagramUserId?: string | null;
/**
* Quantos posts entram no bento (1 grande + os próximos).
*/
instagramMaxItems?: number | null;
/**
* Conteúdo marcado para NÃO aparecer no board (vídeo errado, transmissão incompleta, post de grade). O board pula para o próximo elegível.
*/
excludedItems?:
| {
platform: 'youtube' | 'instagram';
itemId: string;
reason?: string | null;
id?: string | null;
}[]
| null;
youtubeFeedSnapshot?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
instagramFeedSnapshot?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
instagramSyncStatus?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "site-settings_select".
*/
export interface SiteSettingsSelect<T extends boolean = true> {
headerTitle?: T;
socialLinks?:
| T
| {
platform?: T;
url?: T;
label?: T;
enabled?: T;
id?: T;
};
tracking?:
| T
| {
facebookPixelId?: T;
};
_status?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "home_select".
*/
export interface HomeSelect<T extends boolean = true> {
image?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "metadata_select".
*/
export interface MetadataSelect<T extends boolean = true> {
URL?: T;
title?: T;
description?: T;
keywords?:
| T
| {
keyword?: T;
id?: T;
};
openGraph?:
| T
| {
siteName?: T;
description?: T;
};
twitter?:
| T
| {
creator?: T;
description?: T;
};
image?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "privacy-policy_select".
*/
export interface PrivacyPolicySelect<T extends boolean = true> {
published?: T;
body?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "campaignGoals_select".
*/
export interface CampaignGoalsSelect<T extends boolean = true> {
stateGoal?: T;
margin?: T;
baseYear?: T;
note?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "social-feed-settings_select".
*/
export interface SocialFeedSettingsSelect<T extends boolean = true> {
enabled?: T;
youtubeEnabled?: T;
youtubeApiKey?: T;
youtubeChannelId?: T;
youtubeMaxItems?: T;
instagramEnabled?: T;
instagramAccessToken?: T;
instagramUserId?: T;
instagramMaxItems?: T;
excludedItems?:
| T
| {
platform?: T;
itemId?: T;
reason?: T;
id?: T;
};
youtubeFeedSnapshot?: T;
instagramFeedSnapshot?: T;
instagramSyncStatus?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "collections_widget".
*/
export interface CollectionsWidget {
data?: {
[k: string]: unknown;
};
width: 'full';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "TaskCreateCollectionExport".
*/
export interface TaskCreateCollectionExport {
input: {
id: string;
name: string;
batchSize?: number | null;
collectionSlug:
| 'users'
| 'campaignUser'
| 'campaignWebAuthnCredential'
| 'notification'
| 'pushSubscription'
| 'campaignInvite'
| 'campaignVoteSummarySnapshot'
| 'municipality'
| 'leadership'
| 'organization'
| 'stateDeputy'
| 'votePledge'
| 'allocationDecision'
| 'campaignDemand'
| 'supporter'
| 'supporterImportBatch'
| 'municipalityUpdate'
| 'activity'
| 'speech'
| 'speechSegment'
| 'speechCut'
| 'internetSpeechMedia'
| 'reel'
| 'reelMedia'
| 'contentPiece'
| 'contentMedia'
| 'contentEvent'
| 'recording'
| 'recordingMedia'
| 'recordingSegment'
| 'calendarFeed'
| 'googleCalendarSync'
| 'electionTally'
| 'electionCandidateVote'
| 'electionCandidate'
| 'media'
| 'petition'
| 'contact'
| 'consent'
| 'signature'
| 'subscription'
| 'post'
| 'tag'
| 'shareLink'
| 'jingle'
| 'exports'
| 'imports';
drafts?: ('yes' | 'no') | null;
exportCollection: string;
fields?: string[] | null;
format: 'csv' | 'json';
limit?: number | null;
locale?: string | null;
maxLimit?: number | null;
page?: number | null;
sort?: string | null;
userCollection?: string | null;
userID?: string | null;
where?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
};
output?: unknown;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "TaskCreateCollectionImport".
*/
export interface TaskCreateCollectionImport {
input: {
importId: string;
importCollection: string;
userID?: string | null;
userCollection?: string | null;
batchSize?: number | null;
debug?: boolean | null;
defaultVersionStatus?: ('draft' | 'published') | null;
maxLimit?: number | null;
};
output?: unknown;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "TaskSchedulePublish".
*/
export interface TaskSchedulePublish {
input: {
type?: ('publish' | 'unpublish') | null;
locale?: string | null;
doc?:
| ({
relationTo: 'petition';
value: string | Petition;
} | null)
| ({
relationTo: 'post';
value: number | Post;
} | null);
global?: 'site-settings' | null;
user?: (number | null) | User;
};
output?: unknown;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "auth".
*/
export interface Auth {
[k: string]: unknown;
}
declare module 'payload' {
export interface GeneratedTypes extends Config {}
}