Skip to content

Membros

Visão Geral

O módulo de Membros gerencia o cadastro de pessoas da igreja — separado do User model. Todo membro pode ter um User associado (para acesso ao sistema), mas nem todo membro precisa de um User (crianças, idosos, etc.).

Member Model

Namespace: App\Domain\Member\Models\Member

Campos principais

CampoTipoDescrição
ulidstringIdentificador público
nome / sobrenomestringNome completo
cpfstring(11)CPF (unique, nullable)
data_nascimentodateData de nascimento
sexoenum(M, F)Sexo
estado_civilenumsolteiro, casado, divorciado, viuvo, separado

Dados eclesiásticos (inline)

CampoTipoDescrição
igreja_situacao_idFKEm comunhão, Congregado, Visitante, etc.
igreja_funcao_idFKMembro, Diácono, Presbítero, etc.
igreja_cargo_idFKCargos da igreja
igreja_modo_admissao_idFKBatismo, Conversão, Carta, etc.
congregation_idFKCongregação vinculada
data_admissaodateData de admissão
data_batismodateData do batismo

Vínculos

CampoTipoDescrição
user_idFK (unique)Vínculo com User do sistema
conjuge_idFK (self)Cônjuge (self-referência)
responsavel_idFK (self)Responsável (menores de idade)

Relationships

  • phones() — hasMany MemberPhone (tipo + número + is_whatsapp)
  • address() — morphOne Address (polimórfico, reutilizado)
  • dependentes() — hasMany self (via responsavel_id)

MemberPhone Model

CampoTipo
member_idFK
telefone_tipo_idFK (Celular, Residencial, WhatsApp)
numerostring(20)
is_whatsappboolean

Actions

ActionDescrição
CreateMemberActionCria membro + endereço + telefones
UpdateMemberActionAtualiza + sync endereço/telefones
DeleteMemberActionSoft delete
LinkMemberToUserActionVincula membro a user (valida unicidade)
LinkSpouseActionVincula cônjuge bidirecional

Endpoints

MétodoRotaDescrição
GET/membersLista com filtros (nome, situação, congregação)
POST/membersCriar membro
GET/members/Perfil do membro
PUT/members/Atualizar
DELETE/members/Soft delete

Permissões

PermissãoQuem tem
member.viewadmin-igreja, secretario, admin-congregacao
member.createadmin-igreja, secretario
member.editadmin-igreja, secretario, admin-congregacao
member.deleteadmin-igreja

Membros com user_id podem ver/editar seu próprio registro via policy.

Observer

MemberObserver — no evento created, verifica se o tenant atingiu 90% do limite de membros e registra log de warning.