# AtosOficiais — Módulo Fantasma (NÃO IMPLEMENTADO)

## 1. O que é o módulo

Grupo de módulos voltados para publicação e arquivamento de documentos oficiais: diários oficiais, resoluções, licitações, contratos, portarias, decretos, leis e legislações governamentais. Inclui controle de numeração sequencial, datas de publicação e anexos em PDF.

**Status:** NÃO IMPLEMENTADO. Apenas esboço conceitual.

## 2. Estrutura de dados

Inexistente. Não há modelos, migrations ou tabelas.

## 3. Dependências

Inexistentes.

## 4. Tabelas

Nenhuma.

## 5. Arquivos

```
V2/Modules/AtosOficiais/
└── README.md        # Apenas esboço conceitual descrevendo o propósito do grupo
```

## 6. Observações/Sugestão

Para implementar seguindo os padrões V2:

1. Possível arquitetura de módulos dentro deste grupo:

   **Diário Oficial Eletrônico:**
   - `V2/Modules/AtosOficiais/DiarioOficial/`
   - Models: `DiarioEdicao` (data, numero, status: rascunho/publicado), `DiarioMateria` (título, texto, classificacao, ordem)
   - Tabelas: `v2_diario_edicoes`, `v2_diario_materias`
   - Geração de PDF automaticamente a partir do conteúdo
   - Numeração sequencial automática por ano
   - Integração com GalleryService para anexos

   **Licitações:**
   - `V2/Modules/AtosOficiais/Licitacoes/`
   - Models: `Licitacao` (modalidade, objeto, data_abertura, status, processo, orgao_responsavel)
   - Tabelas: `v2_licitacoes`, `v2_licitacao_anexos`
   - Status workflow: andamento → homologada → revogada → suspensa

   **Legislação:**
   - `V2/Modules/AtosOficiais/Legislacao/`
   - Models: `Legislacao` (tipo_ato, numero, ano, ementa, texto_integra)
   - Classificação hierárquica por tipo (lei, decreto, portaria, resolução)

2. Estrutura padrão por submódulo:
   ```
   {Modulo}/
   ├── Controllers/{Modulo}CmsController.php     # CMS CRUD
   ├── Controllers/{Modulo}PortalController.php   # Portal público
   ├── Models/{Model}.php
   ├── Services/{Modulo}Service.php
   ├── ModuleProvider.php                        # getConfig() com sidebar
   ├── Routes/cms.php, web.php
   ├── Migrations/*.php
   └── Views/cms/*, portal/*
   ```

3. Permissões: `v2_can('DiarioOficial', 'read|write')`, `v2_can('Licitacoes', 'read|write')`

4. Activity log: usar `ActivityLoggerService` — `$this->activityLogger->log($model, 'created', ['type' => 'module_action'])`. Toda operação de escrita DEVE logar.

5. Considerações importantes:
   - PDFs precisam de motor de renderização (ex: DomPDF, wkhtmltopdf, ou serviço externo)
   - A numeração de diários/leis requer atomicidade (evitar números duplicados)
   - Publicação programada (agendar para data futura)
