2026-01-18 — Venue UI + Authorization (Arenas/Quadras)
Documentação KOLOS

2026-01-18 — Venue UI + Authorization (Arenas/Quadras)

Contexto

Já existiam VenuePolicy/CourtPolicy e permissões (venue.*) para a gestão de arenas e quadras, mas ainda não havia rotas/telas no app principal usando essas regras. Isso deixava o sistema vulnerável a:

  • Links visíveis para perfis que não podem acessar o conteúdo.
  • Implementações futuras de UI sem authorize() consistente.

Decisão

  • Criar telas Livewire mínimas para Dono de Arena (e Super Admin) gerenciar arenas e quadras.
  • Proteger rotas por role e, dentro das telas, aplicar authorize() baseado nas Policies.
  • Ajustar navegação para exibir apenas itens permitidos (@role, @canany).

Nota: o papel staff ainda não possui um modelo de vínculo/escopo por arena (membership). Portanto, as telas foram limitadas a venue_owner|super_admin por enquanto para manter a regra “correto > fácil”.

Passos

  • Acessar a lista de arenas: GET /venues
  • Acessar gestão de quadras: GET /venues/{venue}/courts

Validação

  • sail bin pint
  • sail bin phpstan analyse
  • sail artisan test

Impacto

  • Rotas adicionadas: venues.index, venues.courts
  • Novos componentes Livewire:
    • App\Livewire\Venue\MyVenues
    • App\Livewire\Venue\ManageCourts
  • Navegação do app passa a respeitar permissões/roles.