Appearance
Secretaria Digital
Visão Geral
O módulo de Secretaria Digital centraliza a geração de documentos oficiais da igreja em PDF. Todos os documentos são gerados via Spatie Laravel PDF (Gotenberg), registrados em DocumentLog para auditoria, e disponibilizados para download. Os tipos de documento são definidos pelo enum DocumentType.
Histórico "Documentos Gerados"
A tabela Documentos Gerados na tela /documents é paginada server-side (padrão 15 por página, opções 25/50). DocumentController@index aceita os seguintes query params:
| Param | Descrição |
|---|---|
search | Busca por nome ou sobrenome do membro vinculado ao documento (LIKE) |
tipo | Filtra pelo enum DocumentType (certificado_batismo, carta_*, etc.) |
member_id | Filtra pelo id de um membro específico (Select com filter client-side) |
page, per_page | Paginação padrão Laravel |
Frontend: resources/js/pages/Documents/Index.vue usa DataTable com lazy=true, input de busca debounced em 350ms e router.get preservando state/scroll.
Models
DocumentLog
Namespace: App\Domain\Document\Models\DocumentLog
Registra cada documento gerado. Usa ULID, sem SoftDeletes (registros de auditoria são permanentes).
| Campo | Tipo | Descrição |
|---|---|---|
| ulid | string | Identificador público |
| member_id | FK members | Membro referenciado no documento (nullable) |
| user_id | FK users | Usuário que gerou o documento |
| tipo | enum DocumentType | Tipo do documento gerado |
| dados_snapshot | json | Cópia dos dados usados na geração |
| generated_at | datetime | Data/hora da geração |
Relationships:
member()— belongsTo Memberuser()— belongsTo User
Enums
DocumentType
| Valor | Label |
|---|---|
certificado_batismo | Certificado de Batismo |
carta_recomendacao | Carta de Recomendação |
carta_transferencia | Carta de Transferência |
carta_desligamento | Carta de Desligamento |
relatorio_financeiro | Relatório Financeiro |
recibo_contribuicao | Recibo de Contribuição |
carteirinha_membro | Carteirinha de Membro |
ata_reuniao | Ata de Reunião |
declaracao_membro_ativo | Declaração de Membro Ativo |
Actions
| Action | Descrição |
|---|---|
| GenerateBaptismCertificateAction | Gera certificado de batismo individual em PDF |
| GenerateLetterAction | Gera carta eclesiástica — aceita tipos carta_recomendacao, carta_transferencia, carta_desligamento |
| GenerateMemberCardAction | Gera carteirinha(s) de membro — até 50 por vez, layout A4 landscape 3 pares por página |
| GenerateMeetingMinutesAction | Gera ata de reunião com participantes e deliberações |
| GenerateActiveMemberDeclarationAction | Gera declaração de membro ativo para fins legais/institucionais |
Todas as actions seguem o padrão readonly com método execute(), coletam dados do membro, congregação e igreja, geram o PDF via Spatie\LaravelPdf\Facades\Pdf, e registram um DocumentLog.
Endpoints
| Método | Rota | Controller | Descrição |
|---|---|---|---|
| GET | /documents | DocumentController@index | Painel da Secretaria Digital |
| POST | /documents/certificate | DocumentController@certificate | Gerar certificado de batismo |
| POST | /documents/letter | DocumentController@letter | Gerar carta eclesiástica |
| POST | /documents/member-card | DocumentController@memberCard | Gerar carteirinha(s) |
| POST | /documents/meeting-minutes | DocumentController@meetingMinutes | Gerar ata de reunião |
| POST | /documents/active-member-declaration | DocumentController@activeMemberDeclaration | Gerar declaração de membro ativo |
| GET | /documents/{ulid}/download | DocumentController@download | Download do documento gerado |
A rota de download usa withoutMiddleware(HandleInertiaRequests) para retornar o PDF puro ao browser.
Documentos financeiros (relatorio_financeiro, recibo_contribuicao) são gerados pelo módulo Financeiro via ReportController e seguem as mesmas rotas de download.
Permissões
| Permissão | Quem tem | Documentos cobertos |
|---|---|---|
| document.generate | admin-igreja, secretario | Certificado de Batismo, Cartas Eclesiásticas, Carteirinha |
| document.meeting-minutes | admin-igreja, secretario | Ata de Reunião |
| document.active-member-declaration | admin-igreja, secretario | Declaração de Membro Ativo |
Documentos financeiros (relatorio_financeiro, recibo_contribuicao) são controlados pela permissão finance.view.