Files
krowworkforce_controltower/base44/entities/WorkerAvailability.jsonc
2026-08-17 19:45:29 +05:30

129 lines
3.0 KiB
JSON

{
"name": "WorkerAvailability",
"type": "object",
"properties": {
"staff_id": {
"type": "string",
"description": "Reference to Staff entity"
},
"staff_name": {
"type": "string",
"description": "Staff member name"
},
"availability_status": {
"type": "string",
"enum": [
"CONFIRMED_AVAILABLE",
"UNKNOWN",
"BLOCKED"
],
"default": "UNKNOWN",
"description": "Current availability status"
},
"predicted_availability_score": {
"type": "number",
"minimum": 0,
"maximum": 100,
"default": 50,
"description": "ML/rules-based prediction of availability (0-100)"
},
"need_work_index": {
"type": "number",
"minimum": 0,
"maximum": 100,
"default": 0,
"description": "How much worker needs hours (0-100)"
},
"scheduled_hours_this_period": {
"type": "number",
"default": 0,
"description": "Hours scheduled in current period"
},
"desired_hours_this_period": {
"type": "number",
"default": 40,
"description": "Hours worker wants in current period"
},
"last_shift_date": {
"type": "string",
"format": "date",
"description": "Date of last completed shift"
},
"acceptance_rate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"default": 0,
"description": "Historical acceptance rate percentage"
},
"utilization_percentage": {
"type": "number",
"minimum": 0,
"maximum": 100,
"default": 0,
"description": "Scheduled hours / desired hours * 100"
},
"days_since_last_shift": {
"type": "number",
"default": 0,
"description": "Days since last shift"
},
"total_shifts_this_period": {
"type": "number",
"default": 0,
"description": "Number of shifts in current period"
},
"available_dates": {
"type": "array",
"description": "Dates worker is confirmed available",
"items": {
"type": "string",
"format": "date"
}
},
"blocked_dates": {
"type": "array",
"description": "Dates worker is blocked/unavailable",
"items": {
"type": "string",
"format": "date"
}
},
"preferences": {
"type": "object",
"description": "Worker preferences",
"properties": {
"preferred_days": {
"type": "array",
"items": {
"type": "string"
}
},
"preferred_shift_types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Morning",
"Day",
"Evening",
"Night",
"Overnight"
]
}
},
"max_commute_miles": {
"type": "number"
},
"wants_more_hours": {
"type": "boolean",
"default": false
}
}
}
},
"required": [
"staff_id",
"staff_name"
]
}