{ "name": "ShiftProposal", "type": "object", "properties": { "event_id": { "type": "string", "description": "Event/shift being proposed" }, "event_name": { "type": "string", "description": "Event name" }, "staff_id": { "type": "string", "description": "Worker being proposed to" }, "staff_name": { "type": "string", "description": "Worker name" }, "vendor_id": { "type": "string", "description": "Vendor making the proposal" }, "proposal_status": { "type": "string", "enum": [ "PENDING_WORKER_CONFIRMATION", "ACCEPTED", "DECLINED", "EXPIRED", "CANCELLED" ], "default": "PENDING_WORKER_CONFIRMATION", "description": "Status of the proposal" }, "shift_date": { "type": "string", "format": "date", "description": "Date of shift" }, "start_time": { "type": "string", "description": "Shift start time" }, "end_time": { "type": "string", "description": "Shift end time" }, "location": { "type": "string", "description": "Shift location" }, "role": { "type": "string", "description": "Role/position" }, "pay_rate": { "type": "number", "description": "Pay rate for shift" }, "total_pay": { "type": "number", "description": "Total estimated pay" }, "response_deadline": { "type": "string", "format": "date-time", "description": "Deadline for worker response" }, "proposed_at": { "type": "string", "format": "date-time", "description": "When proposal was sent" }, "responded_at": { "type": "string", "format": "date-time", "description": "When worker responded" }, "decline_reason": { "type": "string", "description": "Reason for declining" }, "was_marked_unavailable": { "type": "boolean", "default": false, "description": "Was worker marked unavailable when proposed" }, "notification_sent": { "type": "boolean", "default": false, "description": "Whether notification was sent" } }, "required": [ "event_id", "staff_id", "shift_date" ] }