{ "$schema": "https://json-structure.org/meta/core/v0/#", "$id": "https://raw.githubusercontent.com/api-evangelist/workday-tracking-system/refs/heads/main/json-structure/workday-tracking-system-timesheet-structure.json", "name": "Timesheet", "description": "An employee timesheet covering a pay period in the Workday time tracking system", "type": "object", "properties": { "id": { "type": "string", "description": "Unique Workday ID of the timesheet" }, "workerId": { "type": "string", "description": "Workday ID of the worker" }, "periodStartDate": { "type": "date", "description": "Start date of the pay period" }, "periodEndDate": { "type": "date", "description": "End date of the pay period" }, "totalHours": { "type": "double", "description": "Total hours recorded in the timesheet", "minimum": 0 }, "regularHours": { "type": "double", "description": "Regular (non-overtime) hours worked", "minimum": 0 }, "overtimeHours": { "type": "double", "description": "Overtime hours worked", "minimum": 0 }, "status": { "type": "string", "description": "Current approval status of the timesheet", "enum": [ "Draft", "Submitted", "Approved", "Rejected" ] }, "timeBlocks": { "type": "array", "description": "Individual time blocks that make up this timesheet", "items": { "type": "object", "properties": { "id": { "type": "string" }, "date": { "type": "date" }, "hours": { "type": "double" }, "type": { "type": "string" } } } } }, "required": [ "workerId", "periodStartDate", "periodEndDate" ], "additionalProperties": false }