ADR 0001 - Arquitetura Base do Schedule Manager
Introducao ao documento
Este ADR formaliza a arquitetura atual observada no repositorio para servir de baseline de evolucao.
Versionamento
- Status: Aceito
- Data: 2026-03-17
- Responsavel: GitHub Copilot
Referencial teorico
- Architecture Decision Records (ADR)
- C4 Model
Contexto
A aplicacao combina painel administrativo Laravel e API HTTP no mesmo codigo-fonte, com persistencia relacional e integracoes de fila, e-mail e storage em nuvem.
- Evidencia: routes/web.php:35
- Evidencia: routes/api.php:26
- Evidencia: config/filesystems.php:45
- Evidencia: config/queue.php:65
Decisao
Manter arquitetura monolitica Laravel com separacao por camadas (routes/controllers/models/middleware), protegendo API publica via api_key e administracao via auth + gates por permissao.
- Evidencia: app/Http/Middleware/ApiKeyMiddleware.php:22
- Evidencia: app/Http/Middleware/AuthGates.php:26
Consequencias
Positivas
- Baixo custo de operacao para evolucao incremental.
- Reuso de entidades de dominio entre painel e API.
- Pipeline unico de build/deploy.
- Evidencia: .github/workflows/ci-cd-pipeline.yaml:14
- Evidencia: .github/workflows/ci-cd-pipeline.yaml:74
Negativas
- Acoplamento elevado entre API publica e painel no mesmo deploy.
- Indicios de divergencia em parte da API v1 (metodo updateDate nao identificado no controller lido).
- Evidencia: routes/api.php:76
- Evidencia: app/Http/Controllers/Api/V1/Admin/AppointmentsApiController.php:12
Alternativas consideradas
- Separar API publica e painel em servicos distintos.
- Manter monolito e reduzir acoplamento por fronteiras internas (modulos e contratos documentados).
Plano de revisao
Revisar este ADR quando houver:
- separacao de runtime/pipeline entre api e admin;
- mudanca do mecanismo de autenticacao API;
- migracao de storage/queue principal.