API Reference: Eventos
Base URL: /api/eventos. Todos requerem autenticacao.
| Metodo | Endpoint | Permissao | Descricao |
|---|---|---|---|
| POST | /api/eventos | Coord/Admin | Criar evento |
| GET | /api/eventos | Autenticado | Listar eventos (paginado, filtro status/tipo) |
| GET | /api/eventos/:id | Autenticado | Detalhe + lista de inscritos |
| POST | /api/eventos/:id/inscrever | Autenticado | Confirmar presenca (respeita vagas) |
| DELETE | /api/eventos/:id/inscrever | Autenticado | Cancelar presenca (ate 2h antes) |
| POST | /api/eventos/:id/checkin/:uid | Coord/Admin | Fazer check-in de membro |
| POST | /api/eventos/:id/encerrar | Coord/Admin | Encerrar evento (credita CC para presentes) |
| POST | /api/eventos/:id/cancelar | Coord/Admin | Cancelar evento (notifica inscritos) |
| POST | /api/eventos/:id/fotos | Coord/Admin | Upload 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