Pular para o conteúdo principal

Endpoints de Presença

O módulo de Presença gerencia locais de campus, cultos, horários de culto, sessões de presença, visitas e sessões de visita. Ele fornece a infraestrutura para rastrear quem participou de qual culto ou reunião de grupo, suporta fluxos de check-in e oferece relatórios de tendências e resumos de presença.

Caminho base: /attendance

Campus

Caminho base: /attendance/campuses

Controller CRUD padrão (estende GenericCrudController). Fornece rotas getById, getAll, post e delete via a classe base CRUD.

MétodoCaminhoAuthPermissãoDescrição
GET/JWTListar todos os campus da igreja
GET/:idJWTObter um campus por ID
POST/JWTServices.EditCriar ou atualizar campus
DELETE/:idJWTServices.EditExcluir um campus

Cultos

Caminho base: /attendance/services

Estende GenericCrudController com rotas CRUD getById, getAll, post e delete. Os endpoints getAll (GET /) e search são sobrescritos com implementações personalizadas.

MétodoCaminhoAuthPermissãoDescrição
GET/JWTListar todos os cultos (inclui informações do campus)
GET/:idJWTObter um culto por ID
GET/search?campusId=JWTBuscar cultos por ID do campus
POST/JWTServices.EditCriar ou atualizar cultos
DELETE/:idJWTServices.EditExcluir um culto

Exemplo: Buscar Cultos por Campus

GET /attendance/services/search?campusId=abc-123
Authorization: Bearer <token>
[
{
"id": "svc-001",
"churchId": "church-123",
"campusId": "abc-123",
"name": "Sunday Morning"
}
]

Horários de Culto

Caminho base: /attendance/servicetimes

Estende GenericCrudController com rotas CRUD getById, post e delete. Os endpoints getAll e search são implementações personalizadas.

MétodoCaminhoAuthPermissãoDescrição
GET/JWTListar todos os horários de culto. Filtrar por ?serviceId=. Adicione ?include=groups para incluir dados de grupos
GET/:idJWTObter um horário de culto por ID
GET/search?campusId=&serviceId=JWTBuscar horários de culto por campus e culto
POST/JWTServices.EditCriar ou atualizar horários de culto
DELETE/:idJWTServices.EditExcluir um horário de culto

Horários de Culto de Grupos

Caminho base: /attendance/groupservicetimes

Vincula grupos a horários de culto específicos.

MétodoCaminhoAuthPermissãoDescrição
GET/JWTListar todas as associações grupo-horário de culto. Filtrar por ?groupId= para obter associações com nomes de cultos
GET/:idJWTObter uma associação grupo-horário de culto por ID
POST/JWTServices.EditCriar ou atualizar associações grupo-horário de culto
DELETE/:idJWTServices.EditExcluir uma associação grupo-horário de culto

Registros de Presença

Caminho base: /attendance/attendancerecords

Fornece visualizações agregadas somente leitura dos dados de presença para relatórios e exibição.

MétodoCaminhoAuthPermissãoDescrição
GET/JWTAttendance.ViewCarregar registros de presença de uma pessoa. Requer ?personId=
GET/treeJWTCarregar a árvore completa de presença (campus, cultos, horários de culto, grupos)
GET/trend?campusId=&serviceId=&serviceTimeId=&groupId=JWTAttendance.View SummaryCarregar dados de tendência de presença com filtros opcionais
GET/groups?serviceId=&week=JWTAttendance.ViewCarregar presença de grupos para um culto em uma determinada semana
GET/search?campusId=&serviceId=&serviceTimeId=&groupId=&startDate=&endDate=JWTAttendance.ViewBuscar registros de presença com filtros (campus, culto, horário de culto, grupo, intervalo de datas)

Exemplo: Tendência de Presença

GET /attendance/attendancerecords/trend?serviceId=svc-001
Authorization: Bearer <token>
[
{ "week": "2025-01-05", "count": 142 },
{ "week": "2025-01-12", "count": 156 },
{ "week": "2025-01-19", "count": 138 }
]

Sessões

Caminho base: /attendance/sessions

Estende GenericCrudController com rotas CRUD getById e delete. Os endpoints getAll e save são implementações personalizadas que também permitem que líderes de grupo gerenciem sessões de seus grupos.

MétodoCaminhoAuthPermissãoDescrição
GET/JWTAttendance.View ou Líder de GrupoListar todas as sessões. Filtrar por ?groupId= (inclui nomes). Líderes de grupo podem visualizar sessões de seus próprios grupos
GET/:idJWTAttendance.ViewObter uma sessão por ID
POST/JWTAttendance.Edit ou Líder de GrupoCriar ou atualizar sessões. Líderes de grupo podem salvar sessões de seus próprios grupos
DELETE/:idJWTAttendance.EditExcluir uma sessão

Visitas

Caminho base: /attendance/visits

Gerencia registros individuais de visita (uma pessoa participando em uma data específica) e fornece o fluxo de check-in.

MétodoCaminhoAuthPermissãoDescrição
GET/JWTAttendance.ViewListar todas as visitas. Filtrar por ?personId=
GET/:idJWTAttendance.ViewObter uma visita por ID
GET/checkin?serviceId=&peopleIds=JWTAttendance.View ou Attendance.CheckinCarregar dados de check-in para pessoas em um culto. Retorna visitas com sessões de visita da última data registrada
POST/JWTAttendance.EditCriar ou atualizar visitas
POST/checkin?serviceId=&peopleIds=JWTAttendance.Edit ou Attendance.CheckinEnviar dados de check-in. Cria/atualiza visitas e sessões de visita, remove registros obsoletos
DELETE/:idJWTAttendance.EditExcluir uma visita

Exemplo: Fluxo de Check-in

Passo 1 -- Carregar dados de check-in existentes:

GET /attendance/visits/checkin?serviceId=svc-001&peopleIds=person-1,person-2
Authorization: Bearer <token>
[
{
"id": "visit-001",
"personId": "person-1",
"visitDate": "2025-01-19T00:00:00.000Z",
"visitSessions": [
{
"id": "vs-001",
"sessionId": "sess-001",
"visitId": "visit-001",
"session": {
"id": "sess-001",
"groupId": "group-001",
"serviceTimeId": "st-001",
"sessionDate": "2025-01-19T00:00:00.000Z"
}
}
]
}
]

Passo 2 -- Enviar check-in:

POST /attendance/visits/checkin?serviceId=svc-001&peopleIds=person-1,person-2
Authorization: Bearer <token>

[
{
"personId": "person-1",
"visitSessions": [
{
"session": { "serviceTimeId": "st-001", "groupId": "group-001" }
}
]
}
]

Sessões de Visita

Caminho base: /attendance/visitsessions

Gerencia a associação entre visitas e sessões (qual sessão específica uma pessoa participou durante uma visita). Também fornece um endpoint de registro rápido e um endpoint de download/exportação.

MétodoCaminhoAuthPermissãoDescrição
GET/JWTAttendance.View ou Líder de GrupoListar sessões de visita. Filtrar por ?sessionId=. Líderes de grupo podem visualizar sessões de visita de seus próprios grupos
GET/:idJWTAttendance.ViewObter uma sessão de visita por ID
GET/download/:sessionIdJWTAttendance.ViewBaixar presença de uma sessão (retorna nomes de pessoas com status presente/ausente)
POST/JWTAttendance.EditCriar ou atualizar sessões de visita
POST/logJWTAttendance.Edit ou Líder de GrupoRegistro rápido de presença de uma pessoa em uma sessão. Cria visita automaticamente se necessário. Líderes de grupo podem registrar presença de seus próprios grupos
DELETE/:idJWTAttendance.EditExcluir uma sessão de visita por ID
DELETE/?personId=&sessionId=JWTAttendance.Edit ou Líder de GrupoRemover uma pessoa de uma sessão. Exclui a sessão de visita e a visita pai se não restarem sessões. Líderes de grupo podem remover presença de seus próprios grupos

Exemplo: Registro Rápido de Presença

POST /attendance/visitsessions/log
Authorization: Bearer <token>

{
"personId": "person-001",
"visitSessions": [
{ "sessionId": "sess-001" }
]
}
{}

Exemplo: Baixar Presença da Sessão

GET /attendance/visitsessions/download/sess-001
Authorization: Bearer <token>
[
{
"id": "vs-001",
"personId": "person-001",
"visitId": "visit-001",
"sessionDate": "2025-01-19T00:00:00.000Z",
"personName": "John Smith",
"status": "present"
},
{
"id": "",
"personId": "person-002",
"visitId": "",
"sessionDate": "2025-01-19T00:00:00.000Z",
"personName": "Jane Doe",
"status": "absent"
}
]

Páginas Relacionadas