academy_classes.archived_at (nullable, index).SetAcademyClassArchivedAction + AcademyClassPolicy::archive (mesmo critério que update: dono da arena com academy.class.create).AcademyClassArchiveRules::rejectIfArchived usado em: AddAcademyClassMemberAction, CreateAcademyClassSessionAction (só ao criar sessão nova), SaveSessionAttendanceAction, UpdateMemberOfficialPlayCardStatsAction.TrainingClasses::setClassArchived; lista ordenada (ativas primeiro). Coach: MyClasses com secções «ativas» e «arquivadas».AcademyClass::archived().Encerrar turmas sem apagar histórico (CSV, Meu Card, sessões antigas) e impedir mutações operacionais indevidas.
vendor/bin/sail artisan migratevendor/bin/sail artisan test tests/Feature/Academy/SetAcademyClassArchivedActionTest.php tests/Feature/Academy/CreateAcademyClassSessionActionTest.php tests/Feature/Venue/TrainingClassesLivewireTest.phpRemoveAcademyClassMemberAction continua a permitir remoções em turma arquivada (limpeza de roster).