2026-04-09 — Academy: sessões de aula e presenças
Documentação KOLOS

2026-04-09 — Academy: sessões de aula e presenças

O quê

  • Migrations academy_class_sessions (único por academy_class_id + session_date) e academy_class_session_attendances.
  • Enum SessionAttendanceStatus (present, absent, excused) com labels PT.
  • Models AcademyClassSession, AcademyClassSessionAttendance; AcademyClass::sessions().
  • CreateAcademyClassSessionAction + CreateAcademySessionData — idempotente por dia; cria linhas iniciais «presente» para cada membro atual.
  • SaveSessionAttendanceActionupdateOrCreate por aluno; valida estado e filiação à turma.
  • Livewire ClassSessions em /academy/classes/{academyClass}/sessions (Flux + selects nativos).
  • Ligações: roster «Presenças»; lista de turmas na arena «Presenças» + «Alunos».

Por quê

Alinhar à matriz ACL (treinador lança presença) com modelo simples e testável antes de integrar Meu Card / credenciação técnica.

Validação

  • vendor/bin/sail artisan migrate
  • vendor/bin/sail artisan test
  • Fluxo manual: criar sessão (data) → alterar estados → guardar; dono da arena só visualiza presenças se não tiver manageStudents na turma (apenas leitura na UI).