Appearance
Eventos & Inscrições
Visão Geral
O módulo de Eventos gerencia eventos da igreja (conferências, retiros, cultos especiais) com controle de inscrições, lista de espera e integração opcional com o financeiro. Cada evento pode ter capacidade máxima, valor de inscrição e audiência configurável.
Models
EventType
Namespace: App\Domain\Event\Models\EventType
Categoria de evento criada pela própria igreja.
| Campo | Tipo | Descrição |
|---|---|---|
| ulid | string | Identificador público |
| nome | string | Nome do tipo (ex: Conferência, Retiro) |
Relationships:
events()— hasMany Event
Event
Namespace: App\Domain\Event\Models\Event
Usa ULID, SoftDeletes e Auditable.
| Campo | Tipo | Descrição |
|---|---|---|
| ulid | string | Identificador público |
| event_type_id | FK | Tipo do evento |
| congregation_id | FK | Congregação organizadora (nullable) |
| titulo | string | Título do evento |
| descricao | text | Descrição (nullable) |
| data_inicio | date | Data de início |
| data_fim | date | Data de término (nullable) |
| horario | string | Horário (nullable) |
| local | string | Local do evento (nullable) |
| status | enum EventStatus | Status atual |
| audiencia | enum EventAudience | Público-alvo |
| max_inscricoes | integer | Capacidade máxima (nullable = ilimitado) |
| valor_inscricao | decimal | Valor da inscrição (nullable = gratuito) |
| permite_lista_espera | boolean | Aceita lista de espera quando lotado |
Relationships:
eventType()— belongsTo EventTypecongregation()— belongsTo Congregationregistrations()— hasMany EventRegistration
EventRegistration
Namespace: App\Domain\Event\Models\EventRegistration
Usa ULID e Auditable.
| Campo | Tipo | Descrição |
|---|---|---|
| ulid | string | Identificador público |
| event_id | FK | Evento vinculado |
| member_id | FK | Membro inscrito (nullable para visitantes) |
| user_id | FK | Usuário que realizou a inscrição |
| transaction_id | FK | Transação financeira vinculada (nullable) |
| status | enum RegistrationStatus | Status da inscrição |
| pago | boolean | Pagamento confirmado |
| nome_visitante | string | Nome do visitante (quando não é membro) |
| posicao_lista_espera | integer | Posição na fila (nullable, somente lista de espera) |
Relationships:
event()— belongsTo Eventmember()— belongsTo Memberuser()— belongsTo Usertransaction()— belongsTo Transaction
Enums
EventStatus
| Valor | Label |
|---|---|
rascunho | Rascunho |
publicado | Publicado |
cancelado | Cancelado |
encerrado | Encerrado |
EventAudience
| Valor | Descrição |
|---|---|
membros | Apenas membros cadastrados |
congregados | Membros e congregados |
publico | Aberto ao público |
RegistrationStatus
| Valor | Label |
|---|---|
confirmado | Confirmado |
cancelado | Cancelado |
lista_espera | Lista de Espera |
Actions
| Action | Descrição |
|---|---|
| CreateEventAction | Cria evento com tipo, datas e capacidade |
| UpdateEventAction | Atualiza dados do evento |
| DeleteEventAction | Soft delete do evento |
| RegisterForEventAction | Inscreve membro/visitante (verifica capacidade, coloca em espera se necessário) |
| ConfirmRegistrationAction | Confirma inscrição pendente |
| CancelRegistrationAction | Cancela inscrição (abre vaga na lista de espera) |
| ConfirmRegistrationPaymentAction | Confirma pagamento e vincula transação financeira |
Endpoints
| Método | Rota | Controller | Descrição |
|---|---|---|---|
| GET | /events | EventController@index | Lista eventos |
| POST | /events | EventController@store | Criar evento |
| GET | /events/{ulid} | EventController@show | Detalhes do evento |
| PUT | /events/{ulid} | EventController@update | Atualizar evento |
| DELETE | /events/{ulid} | EventController@destroy | Excluir evento |
| POST | /events/{ulid}/registrations | EventRegistrationController@store | Inscrever participante |
| PATCH | /events/{ulid}/registrations/{reg}/confirm | EventRegistrationController@confirm | Confirmar inscrição |
| PATCH | /events/{ulid}/registrations/{reg}/cancel | EventRegistrationController@cancel | Cancelar inscrição |
| PATCH | /events/{ulid}/registrations/{reg}/payment | EventRegistrationController@confirmPayment | Confirmar pagamento |
Permissões
| Permissão | Quem tem |
|---|---|
| event.view | admin-igreja, secretario, admin-congregacao, lider-grupo |
| event.create | admin-igreja, secretario, admin-congregacao |
| event.edit | admin-igreja, secretario, admin-congregacao |
| event.delete | admin-igreja |
Feature Flags
| Flag | Descrição |
|---|---|
events_management | Habilita o módulo de Gestão de Eventos |
finance_integration | Habilita vínculo automático de inscrição com transação financeira |