{
  "id": "componentes-tecnicos",
  "title": "Componentes técnicos",
  "description": "Índice dos componentes de aplicação já existentes e dos seus checklists de manutenção.",
  "type": "technical-hub",
  "status": "in-progress",
  "visibility": "public",
  "tags": [
    "sge/desenvolvimento",
    "sge/arquitetura",
    "sge/checklist"
  ],
  "related": [
    "casts",
    "helpers",
    "concerns",
    "actions",
    "services",
    "model-user",
    "providers",
    "schedules",
    "testes-existentes",
    "configuracao-e-bootstrap",
    "migrations",
    "enums",
    "arquitetura-atual"
  ],
  "sourceRefs": [],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "Esta nota é o inventário do código transversal do projeto novo. Cada componente tem uma nota própria com responsabilidade, contrato, uso atual, testes e pendências.\n\n## Inventário\n\n| Área                   | Estado    | Detalhamento                       |\n| ---------------------- | --------- | ---------------------------------- |\n| Casts                  | 🟡 Em uso | [Casts](doc:casts)                    |\n| Helpers                | 🟡 Em uso | [Helpers](doc:helpers)                  |\n| Concerns               | 🟡 Em uso | [Concerns](doc:concerns)                 |\n| Actions                | 🟡 Em uso | [Actions](doc:actions)                  |\n| Services               | 🟡 Planejado | [Services](doc:services)              |\n| Models                 | 🟡 Em uso | [Model — User](doc:model-user)             |\n| Providers              | 🟡 Em uso | [Providers](doc:providers)                |\n| Schedules              | 🟡 Planejado | [Schedules](doc:schedules)              |\n| Seeders                | 🟢 Implementado | [Migration 01A — cities](doc:migration-01a-cities) |\n| Testes                 | 🟡 Em uso | [Testes existentes](doc:testes-existentes)        |\n| Bootstrap/configuração | 🟡 Em uso | [Configuração e bootstrap](doc:configuracao-e-bootstrap) |\n\n## Regra de manutenção\n\n- [ ] Toda classe nova deve ter uma nota se representar decisão transversal ou contrato reutilizado.\n- [ ] Toda alteração em cast/helper/concern deve atualizar sua nota e o teste correspondente.\n- [ ] Toda função pública deve registrar entrada, saída, fallback e exceções.\n- [ ] Não duplicar regra de normalização ou formatação em Livewire, Blade, Model e helper.\n- [ ] Preferir serviços/Actions para efeitos colaterais; manter helpers puros quando possível.\n- [ ] Rodar a suíte do projeto depois de alterar um componente compartilhado.\n\n## Navegação\n\n- [Painel de desenvolvimento](doc:painel-de-desenvolvimento)\n- [Migrations](doc:migrations)\n- [Enums](doc:enums)\n- [Services](doc:services)\n- [Arquitetura atual](doc:arquitetura-atual)",
  "sections": [
    {
      "id": "inventario",
      "level": 2,
      "title": "Inventário",
      "text": "| Área                   | Estado    | Detalhamento                       | | ---------------------- | --------- | ---------------------------------- | | Casts                  | 🟡 Em uso | [Casts](doc:casts)                    | | Helpers                | 🟡 Em uso | [Helpers](doc:helpers)                  | | Concerns               | 🟡 Em uso | [Concerns](doc:concerns)                 | | Actions                | 🟡 Em uso | [Actions](doc:actions)                  | | Services               | 🟡 Planejado | [Services](doc:services)              | | Models                 | 🟡 Em uso | [Model — User](doc:model-user)             | | Providers              | 🟡 Em uso | [Providers](doc:providers)                | | Schedules              | 🟡 Planejado | [Schedules](doc:schedules)              | | Seeders                | 🟢 Implementado | [Migration 01A — cities](doc:migration-01a-cities) | | Testes                 | 🟡 Em uso | [Testes existentes](doc:testes-existentes)        | | Bootstrap/configuração | 🟡 Em uso | [Configuração e bootstrap](doc:configuracao-e-bootstrap) |",
      "line": 3
    },
    {
      "id": "regra-de-manutencao",
      "level": 2,
      "title": "Regra de manutenção",
      "text": "- [ ] Toda classe nova deve ter uma nota se representar decisão transversal ou contrato reutilizado. - [ ] Toda alteração em cast/helper/concern deve atualizar sua nota e o teste correspondente. - [ ] Toda função pública deve registrar entrada, saída, fallback e exceções. - [ ] Não duplicar regra de normalização ou formatação em Livewire, Blade, Model e helper. - [ ] Preferir serviços/Actions para efeitos colaterais; manter helpers puros quando possível. - [ ] Rodar a suíte do projeto depois de alterar um componente compartilhado.",
      "line": 19
    },
    {
      "id": "navegacao",
      "level": 2,
      "title": "Navegação",
      "text": "- [Painel de desenvolvimento](doc:painel-de-desenvolvimento) - [Migrations](doc:migrations) - [Enums](doc:enums) - [Services](doc:services) - [Arquitetura atual](doc:arquitetura-atual)",
      "line": 28
    }
  ],
  "sourcePath": "content/componentes-tecnicos.md",
  "visuals": [],
  "apiVersion": 1
}
