Skip to content

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.

CampoTipoDescrição
ulidstringIdentificador público
nomestringNome do tipo (ex: Conferência, Retiro)

Relationships:

  • events() — hasMany Event

Event

Namespace: App\Domain\Event\Models\Event

Usa ULID, SoftDeletes e Auditable.

CampoTipoDescrição
ulidstringIdentificador público
event_type_idFKTipo do evento
congregation_idFKCongregação organizadora (nullable)
titulostringTítulo do evento
descricaotextDescrição (nullable)
data_iniciodateData de início
data_fimdateData de término (nullable)
horariostringHorário (nullable)
localstringLocal do evento (nullable)
statusenum EventStatusStatus atual
audienciaenum EventAudiencePúblico-alvo
max_inscricoesintegerCapacidade máxima (nullable = ilimitado)
valor_inscricaodecimalValor da inscrição (nullable = gratuito)
permite_lista_esperabooleanAceita lista de espera quando lotado

Relationships:

  • eventType() — belongsTo EventType
  • congregation() — belongsTo Congregation
  • registrations() — hasMany EventRegistration

EventRegistration

Namespace: App\Domain\Event\Models\EventRegistration

Usa ULID e Auditable.

CampoTipoDescrição
ulidstringIdentificador público
event_idFKEvento vinculado
member_idFKMembro inscrito (nullable para visitantes)
user_idFKUsuário que realizou a inscrição
transaction_idFKTransação financeira vinculada (nullable)
statusenum RegistrationStatusStatus da inscrição
pagobooleanPagamento confirmado
nome_visitantestringNome do visitante (quando não é membro)
posicao_lista_esperaintegerPosição na fila (nullable, somente lista de espera)

Relationships:

  • event() — belongsTo Event
  • member() — belongsTo Member
  • user() — belongsTo User
  • transaction() — belongsTo Transaction

Enums

EventStatus

ValorLabel
rascunhoRascunho
publicadoPublicado
canceladoCancelado
encerradoEncerrado

EventAudience

ValorDescrição
membrosApenas membros cadastrados
congregadosMembros e congregados
publicoAberto ao público

RegistrationStatus

ValorLabel
confirmadoConfirmado
canceladoCancelado
lista_esperaLista de Espera

Actions

ActionDescrição
CreateEventActionCria evento com tipo, datas e capacidade
UpdateEventActionAtualiza dados do evento
DeleteEventActionSoft delete do evento
RegisterForEventActionInscreve membro/visitante (verifica capacidade, coloca em espera se necessário)
ConfirmRegistrationActionConfirma inscrição pendente
CancelRegistrationActionCancela inscrição (abre vaga na lista de espera)
ConfirmRegistrationPaymentActionConfirma pagamento e vincula transação financeira

Endpoints

MétodoRotaControllerDescrição
GET/eventsEventController@indexLista eventos
POST/eventsEventController@storeCriar evento
GET/events/{ulid}EventController@showDetalhes do evento
PUT/events/{ulid}EventController@updateAtualizar evento
DELETE/events/{ulid}EventController@destroyExcluir evento
POST/events/{ulid}/registrationsEventRegistrationController@storeInscrever participante
PATCH/events/{ulid}/registrations/{reg}/confirmEventRegistrationController@confirmConfirmar inscrição
PATCH/events/{ulid}/registrations/{reg}/cancelEventRegistrationController@cancelCancelar inscrição
PATCH/events/{ulid}/registrations/{reg}/paymentEventRegistrationController@confirmPaymentConfirmar pagamento

Permissões

PermissãoQuem tem
event.viewadmin-igreja, secretario, admin-congregacao, lider-grupo
event.createadmin-igreja, secretario, admin-congregacao
event.editadmin-igreja, secretario, admin-congregacao
event.deleteadmin-igreja

Feature Flags

FlagDescrição
events_managementHabilita o módulo de Gestão de Eventos
finance_integrationHabilita vínculo automático de inscrição com transação financeira