Yeqa uye kokucuketse lokuyinhloko

Ema-Endpoint E-Attendance

I-module ye-Attendance iphatsa tindzawo tema-campus, ema-service, emasikhatsi ema-service, ticgawu tekubakhona, kuvakasha, kanye neticgawu tekuvakasha. Iniketa lulwandle lwekulandzelela kutsi ngubani lowaya ku-service nobe umhlangano welicembu lelitsite, isekela tinchubo tekungena, futsi iniketa kubika kwesifanekiso nesifingqo sekubakhona.

Umkhondvo Losisekelo: /attendance

Ema-Campus

Umkhondvo losisekelo: /attendance/campuses

Layela lwe-CRUD levamile (yandzisa i-GenericCrudController). Iniketa imikhondvo ye-getById, getAll, post, kanye ne-delete nge-CRUD base class.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/JWTBala onkhe ema-campus elibandla
GET/:idJWTTfola campus nge-ID
POST/JWTServices.EditAkha nobe buyeketa ema-campus
DELETE/:idJWTServices.EditSula campus

Ema-Service

Umkhondvo losisekelo: /attendance/services

Yandzisa i-GenericCrudController ngemikhondvo ye-CRUD getById, getAll, post, kanye ne-delete. I-getAll (GET /) kanye ne-search tigudlwe nge-implementation lekhetsekile.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/JWTBala onkhe ema-service (kufaka imininingwane ye-campus)
GET/:idJWTTfola service nge-ID
GET/search?campusId=JWTFumana ema-service nge-campus ID
POST/JWTServices.EditAkha nobe buyeketa ema-service
DELETE/:idJWTServices.EditSula service

Sibonelo: Fumana Ema-Service Nge-Campus

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

Emasikhatsi Ema-Service

Umkhondvo losisekelo: /attendance/servicetimes

Yandzisa i-GenericCrudController ngemikhondvo ye-CRUD getById, post, kanye ne-delete. I-getAll kanye ne-search yi-implementation lekhetsekile.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/JWTBala onkhe emasikhatsi ema-service. Cenga nge-?serviceId=. Engeta ?include=groups kufaka idatha yemacembu
GET/:idJWTTfola sikhatsi se-service nge-ID
GET/search?campusId=&serviceId=JWTFumana emasikhatsi ema-service nge-campus kanye ne-service
GET/public/:churchIdNgeyeveleniTfola i-tree ye-campus → service → sikhatsi yelibandla. Isebentisa element ye-serviceTimes ye-website builder
POST/JWTServices.EditAkha nobe buyeketa emasikhatsi ema-service
DELETE/:idJWTServices.EditSula sikhatsi se-service

Emasikhatsi Ema-Service Emacembu

Umkhondvo losisekelo: /attendance/groupservicetimes

Ixhumanisa emacembu nemasikhatsi lakhetsekile ema-service.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/JWTBala tonkhe kuhlanganiswa kwe-licembu-sikhatsi-se-service. Cenga nge-?groupId= kutfola kuhlanganiswa nemagama ema-service
GET/:idJWTTfola kuhlanganiswa kwelicembu-sikhatsi-se-service nge-ID
POST/JWTServices.EditAkha nobe buyeketa kuhlanganiswa kwelicembu-sikhatsi-se-service
DELETE/:idJWTServices.EditSula kuhlanganiswa kwelicembu-sikhatsi-se-service

Imibhalo Yekubakhona

Umkhondvo losisekelo: /attendance/attendancerecords

Iniketa kubukwa kwelilonkhe kwekufundza kuphela kwedatha yekubakhona kwekubika nekukhomba.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/JWTAttendance.ViewLayisha imibhalo yekubakhona yemuntfu. Idzinga ?personId=
GET/treeJWTLayisha i-tree lephelele yekubakhona (ema-campus, ema-service, emasikhatsi ema-service, emacembu)
GET/trend?campusId=&serviceId=&serviceTimeId=&groupId=JWTAttendance.View SummaryLayisha idatha ye-trend yekubakhona ngekucenga lokungakhetsi
GET/groups?serviceId=&week=JWTAttendance.ViewLayisha kubakhona kwemacembu ku-service ngeliviki lelikhetsekile
GET/search?campusId=&serviceId=&serviceTimeId=&groupId=&startDate=&endDate=JWTAttendance.ViewFumana imibhalo yekubakhona ngekucenga (campus, service, sikhatsi se-service, licembu, sikhala selanga)

Sibonelo: Trend Yekubakhona

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 }
]

Ticgawu

Umkhondvo losisekelo: /attendance/sessions

Yandzisa i-GenericCrudController ngemikhondvo ye-CRUD getById kanye ne-delete. I-getAll kanye ne-save yi-implementation lekhetsekile leyavumela nebaholi bemacembu kuphatsa ticgawu temacembu abo.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/JWTAttendance.View nobe Umholi WelicembuBala tonkhe ticgawu. Cenga nge-?groupId= (kufaka emagama). Baholi bemacembu bangabuka ticgawu temacembu abo
GET/:idJWTAttendance.ViewTfola sigcawu nge-ID
POST/JWTAttendance.Edit nobe Umholi WelicembuAkha nobe buyeketa ticgawu. Baholi bemacembu bangagcina ticgawu temacembu abo
DELETE/:idJWTAttendance.EditSula sigcawu

Kuvakasha

Umkhondvo losisekelo: /attendance/visits

Iphatsa imibhalo yekuvakasha yakamunye (umuntfu loya ngelilanga lelitsite) futsi iniketa inchubo yekungena.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/JWTAttendance.ViewBala konkhe kuvakasha. Cenga nge-?personId=
GET/:idJWTAttendance.ViewTfola kuvakasha nge-ID
GET/checkin?serviceId=&peopleIds=JWTAttendance.View nobe Attendance.CheckinLayisha idatha yekungena yebantfu ku-service. Ibuyisela kuvakasha neticgawu tekuvakasha kusuka kulilanga lekugcina lokubhaliwe
POST/JWTAttendance.EditAkha nobe buyeketa kuvakasha
POST/checkin?serviceId=&peopleIds=JWTAttendance.Edit nobe Attendance.CheckinFakela idatha yekungena. Yakha/ibuyeketa kuvakasha neticgawu tekuvakasha, isule imibhalo lengasasebenti
DELETE/:idJWTAttendance.EditSula kuvakasha

Sibonelo: Inchubo Yekungena

Sinyatselo 1 -- Layisha idatha yekungena lesele ikhona:

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"
}
}
]
}
]

Sinyatselo 2 -- Fakela kungena:

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" }
}
]
}
]

Ticgawu Tekuvakasha

Umkhondvo losisekelo: /attendance/visitsessions

Iphatsa kuhlanganiswa emkhatsini wekuvakasha neticgawu (kutsi ngusiphi sigcawu lomuntfu ahambele ngesikhatsi sekuvakasha). Iniketa futsi umkhondvo wekubhala ngekushesha kanye ne-endpoint yekulayisha/kukhipha.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/JWTAttendance.View nobe Umholi WelicembuBala ticgawu tekuvakasha. Cenga nge-?sessionId=. Baholi bemacembu bangabuka ticgawu tekuvakasha temacembu abo
GET/:idJWTAttendance.ViewTfola sigcawu sekuvakasha nge-ID
GET/download/:sessionIdJWTAttendance.ViewLayisha kubakhona kwesigcawu (ibuyisela emagama abantfu nesimo sekhona/kungekho)
POST/JWTAttendance.EditAkha nobe buyeketa ticgawu tekuvakasha
POST/logJWTAttendance.Edit nobe Umholi WelicembuBhala ngekushesha kubakhona kwemuntfu esigcawini. Izenzakalelisa kwakha kuvakasha nangabe kudzingekile. Baholi bemacembu bangabhala kubakhona kwemacembu abo
DELETE/:idJWTAttendance.EditSula sigcawu sekuvakasha nge-ID
DELETE/?personId=&sessionId=JWTAttendance.Edit nobe Umholi WelicembuSusa umuntfu esigcawini. Isula sigcawu sekuvakasha kanye nekuvakasha komzali nangabe kute ticgawu letisele. Baholi bemacembu bangasusa kubakhona kwemacembu abo

Sibonelo: Bhala Ngekushesha Kubakhona

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

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

Sibonelo: Khipha Kubakhona Kwesigcawu

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"
}
]

Kulandzelana (Streaks)

Umkhondvo losisekelo: /attendance/streaks

Ilandzelela kulandzelana kwekubakhona kwemuntfu ngamunye -- emaviki lalandzelanako lomuntfu abekhona. Kusita ekubaleni kubambeka nekudlala.

InchuboUmkhondvoKutivakalisaImvumoIncazelo
GET/person/:personIdJWTLayisha kulandzelana kwekubakhona kwemuntfu

Emakhasi Lahlobene