read:attendance permission. The admin list on the day-record model. Filtering, sorting and pagination all happen in SQL — nothing is loaded into memory to be filtered. dateFrom and dateTo are required so every query stays inside the date indexes. zoneId matches either punch's zone. Labels for outcome, method and source are served once by /attendance/admin/catalog, not repeated per row.core.session_token: ********************Authorization: Bearer ********************curl --location '/attendance/admin/records?dateFrom=&dateTo=&slotId=&personType=&classId=&outcome=&zoneId=&search=&page=&limit=&sortBy=&sortOrder='{
"success": true,
"message": "string",
"meta": {
"page": 0,
"limit": 0,
"total": 0
},
"errors": [
{
"code": "CR-100001",
"field": "string",
"message": "string"
}
],
"result": [
{
"id": "string",
"date": "2019-08-24",
"userId": "string",
"user": {
"name": "string",
"image": "string"
},
"slotId": "string",
"slotLabel": "string",
"outcome": "PENDING",
"reasonId": "string",
"reasonLabel": "string",
"personType": "STUDENT",
"classId": "string",
"className": "string",
"checkInAt": "2019-08-24T14:15:22.123Z",
"checkOutAt": "2019-08-24T14:15:22.123Z",
"isLate": true,
"lateMinutes": 0,
"isEarlyLeave": true,
"earlyLeaveMinutes": 0,
"missingCheckIn": true,
"missingCheckOut": true,
"workMinutes": 0,
"isManualOverride": true,
"note": "string",
"source": "SELF",
"checkIn": {
"eventId": "string",
"method": "LOCATION",
"zoneId": "string",
"zoneName": "string",
"isOutOfZone": true,
"latitude": 0,
"longitude": 0
},
"checkOut": {
"eventId": "string",
"method": "LOCATION",
"zoneId": "string",
"zoneName": "string",
"isOutOfZone": true,
"latitude": 0,
"longitude": 0
}
}
]
}