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

148 lines
3.5 KiB
JSON

{
"name": "ShiftOutcome",
"type": "object",
"properties": {
"event_id": {
"type": "string",
"description": "Associated event ID"
},
"event_name": {
"type": "string",
"description": "Event name for reference"
},
"event_date": {
"type": "string",
"format": "date",
"description": "Date of the event"
},
"business_name": {
"type": "string",
"description": "Client business name"
},
"hub_location": {
"type": "string",
"description": "Location where shift occurred"
},
"event_type": {
"type": "string",
"description": "Type of event (lunch, dinner, VIP, etc.)"
},
"expected_covers": {
"type": "number",
"description": "Expected covers/volume for this event"
},
"actual_covers": {
"type": "number",
"description": "Actual covers served"
},
"staff_requested": {
"type": "number",
"description": "Staff requested for the event"
},
"staff_actual": {
"type": "number",
"description": "Staff who actually showed up"
},
"no_show_count": {
"type": "number",
"default": 0,
"description": "Number of no-shows"
},
"late_arrival_count": {
"type": "number",
"default": 0,
"description": "Number of late arrivals"
},
"ot_hours_total": {
"type": "number",
"default": 0,
"description": "Total overtime hours across all staff"
},
"client_rating": {
"type": "number",
"minimum": 1,
"maximum": 5,
"description": "Client rating after shift (1-5 stars)"
},
"client_feedback": {
"type": "string",
"description": "Client written feedback"
},
"qa_score": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Internal QA score (0-100)"
},
"issues_reported": {
"type": "array",
"description": "Issues reported during or after the shift",
"items": {
"type": "object",
"properties": {
"issue_type": {
"type": "string",
"enum": [
"late_food",
"understaffed",
"slow_service",
"no_show",
"quality",
"communication",
"other"
]
},
"description": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
}
}
}
},
"prediction_matched": {
"type": "boolean",
"description": "Did the actual demand match the prediction?"
},
"predicted_staff": {
"type": "number",
"description": "How many staff KROW predicted were needed"
},
"was_overstaffed": {
"type": "boolean",
"description": "Was the event overstaffed?"
},
"was_understaffed": {
"type": "boolean",
"description": "Was the event understaffed?"
},
"vendor_id": {
"type": "string",
"description": "Vendor who staffed this event"
},
"vendor_name": {
"type": "string",
"description": "Vendor name"
},
"submitted_by": {
"type": "string",
"description": "Who submitted this outcome report"
},
"notes": {
"type": "string",
"description": "Internal notes about this outcome"
}
},
"required": [
"event_id",
"event_name",
"event_date"
]
}