first commit
This commit is contained in:
129
base44/entities/WorkerAvailability.jsonc
Normal file
129
base44/entities/WorkerAvailability.jsonc
Normal file
@@ -0,0 +1,129 @@
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user