API Reference: Eventos

Base URL: /api/eventos. Todos requerem autenticacao.

MetodoEndpointPermissaoDescricao
POST/api/eventosCoord/AdminCriar evento
GET/api/eventosAutenticadoListar eventos (paginado, filtro status/tipo)
GET/api/eventos/:idAutenticadoDetalhe + lista de inscritos
POST/api/eventos/:id/inscreverAutenticadoConfirmar presenca (respeita vagas)
DELETE/api/eventos/:id/inscreverAutenticadoCancelar presenca (ate 2h antes)
POST/api/eventos/:id/checkin/:uidCoord/AdminFazer check-in de membro
POST/api/eventos/:id/encerrarCoord/AdminEncerrar evento (credita CC para presentes)
POST/api/eventos/:id/cancelarCoord/AdminCancelar evento (notifica inscritos)
POST/api/eventos/:id/fotosCoord/AdminUpload de galeria de fotos

Regras de Negocio

  • Inscricao respeita limite de vagas
  • Cancelamento de presenca so ate 2 horas antes do evento
  • Ao encerrar: CC creditadas (com multiplicador) para todos com check-in PRESENTE
  • Inscritos sem check-in marcados como AUSENTE
  • Cancelamento do evento: deleta inscricoes e notifica todos os inscritos

Sprint 4 — Atualizacoes

Novos campos

  • descricao — texto descritivo do evento (migration 00006)
  • segmento_alvo — segmentacao por cargo e/ou plano (migration 00003)

Pagina de detalhe do evento

Rota: /dashboard/eventos/:id

  • Header com titulo, descricao, tipo, data/hora, local, link online, vagas, recompensa CC
  • Botao "Confirmar Presenca" para membros (desabilitado se esgotado)
  • Botao "Cancelar Presenca" (ate 2h antes)
  • Lista de inscritos com status de check-in (INSCRITO/PRESENTE/AUSENTE)
  • Botao "Check-in" por inscrito (Coord/Admin)
  • Botao "Encerrar Evento" (Coord/Admin) — credita CC para presentes
  • Botao "Cancelar Evento" (Coord/Admin) — notifica inscritos
  • Galeria de fotos + upload (Coord/Admin, via Supabase Storage)

Formulario atualizado

  • Campo descricao (textarea)
  • Campos local e link_online separados (aparecem conforme tipo selecionado)

Foto e Video

Eventos suportam upload de midia:

  • Galeria de fotos: Upload de multiplas fotos via Supabase Storage (bucket eventos). Coord/Admin podem adicionar fotos antes, durante ou apos o evento.
  • Video: Campo opcional para URL de video (YouTube). Renderizado como embed na pagina de detalhe do evento.

Layout Responsivo (Mobile)

A pagina de eventos e totalmente responsiva:

  • Desktop: Grid de cards com informacoes completas (titulo, data, local, vagas, tipo, recompensa CC)
  • Mobile: Cards empilhados com layout compacto. Botoes de acao (inscrever, check-in) ocupam largura total.
  • Detalhe do evento: Layout single-column no mobile com secoes colapsaveis (inscritos, galeria, acoes admin)
  • Lista de inscritos: No mobile, exibida como cards com nome, foto e botao de check-in