Pular para o conteúdo principal

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

  1. Separar API publica e painel em servicos distintos.
  2. 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.