Skip to content

Check-in Kids

Visão Geral

O módulo de Check-in Kids controla a entrada e saída de crianças em atividades da igreja. Cada check-in gera um QR Code de retirada vinculado ao responsável autorizado. O módulo suporta membros cadastrados e visitantes, e pode imprimir etiquetas de identificação em PDF via Gotenberg.

Models

Checkin

Namespace: App\Domain\Checkin\Models\Checkin

CampoTipoDescrição
ulidstringIdentificador público
nome_criancastringNome da criança
idadeintegerIdade da criança (nullable)
alergiastextAlergias/restrições de saúde (nullable)
qr_tokenstring (unique)Token do QR code de checkout
statusenum CheckinStatusStatus atual
checkin_atdatetimeMomento do check-in
checkout_atdatetimeMomento do check-out (nullable)
crianca_idFK membersMembro-criança vinculado (nullable — modo visitante)
responsavel_idFK membersResponsável membro vinculado (nullable — modo visitante)
responsavel_nomestringNome do responsável visitante (nullable)
voluntario_idFK usersVoluntário que realizou o check-in
event_idFK eventsEvento vinculado (nullable)

Relationships:

  • crianca() — belongsTo Member (crianca_id)
  • responsavel() — belongsTo Member (responsavel_id)
  • voluntario() — belongsTo User
  • event() — belongsTo Event

Scopes: hoje(), byEvent(event_id)


Enums

CheckinStatus

ValorLabel
ativoAtivo (criança presente)
finalizadoFinalizado (checkout realizado)
canceladoCancelado

Actions

ActionDescrição
CreateCheckinActionCria check-in, gera QR token único e registra voluntário
ConfirmCheckoutActionConfirma saída via QR code — valida que quem retira é o responsável autorizado
CancelCheckinActionCancela check-in ativo
GenerateCheckinLabelActionGera etiqueta PDF (chillerlan/QRCode + Spatie PDF) com nome, idade, alergias e QR code

Fluxo de QR Code

  1. Check-in criado → qr_token UUID único gerado
  2. Etiqueta impressa com QR code apontando para rota pública de checkout
  3. Voluntário escaneia QR code para ver dados da criança e confirmar saída
  4. ConfirmCheckoutAction valida responsável e registra checkout_at

Endpoints

MétodoRotaControllerDescrição
GET/checkinsCheckinController@indexLista check-ins do dia
GET/checkins/createCheckinController@createFormulário de check-in
POST/checkinsCheckinController@storeRealizar check-in
GET/checkins/{ulid}CheckinController@showDetalhes do check-in
GET/checkins/qr/{qrToken}CheckoutController@showByTokenVer dados pelo QR code (público)
POST/checkins/{ulid}/checkoutCheckoutController@confirmConfirmar saída
GET/checkins/{ulid}/labelCheckinLabelController@downloadDownload da etiqueta PDF

A rota de download da etiqueta usa withoutMiddleware(HandleInertiaRequests) para retornar PDF puro.


Permissões

PermissãoQuem tem
checkin.manageadmin-igreja, voluntario-kids

O role voluntario-kids tem acesso exclusivo a este módulo, sem acesso a membros, finanças ou outros dados sensíveis.


Feature Flags

FlagDescrição
kids_checkinHabilita o módulo de Check-in Kids
kids_print_labelHabilita geração de etiqueta PDF para impressão

A action GenerateCheckinLabelAction verifica kids_print_label antes de gerar a etiqueta, lançando exceção se o recurso não estiver disponível no plano.