149 lines
3.3 KiB
JSON
149 lines
3.3 KiB
JSON
{
|
|
"name": "Training",
|
|
"type": "object",
|
|
"properties": {
|
|
"training_id": {
|
|
"type": "string",
|
|
"description": "Training record ID"
|
|
},
|
|
"training_name": {
|
|
"type": "string",
|
|
"description": "Name of the training program"
|
|
},
|
|
"training_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"food_safety",
|
|
"alcohol_service",
|
|
"customer_service",
|
|
"safety",
|
|
"onboarding",
|
|
"culinary_skills",
|
|
"equipment_operation",
|
|
"compliance",
|
|
"leadership",
|
|
"other"
|
|
],
|
|
"description": "Type of training"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"workforce_id": {
|
|
"type": "string",
|
|
"description": "Worker enrolled in this training"
|
|
},
|
|
"workforce_name": {
|
|
"type": "string"
|
|
},
|
|
"staff_id": {
|
|
"type": "string",
|
|
"description": "Staff record ID (if different from workforce)"
|
|
},
|
|
"vendor_id": {
|
|
"type": "string",
|
|
"description": "Vendor sponsoring this training"
|
|
},
|
|
"vendor_name": {
|
|
"type": "string"
|
|
},
|
|
"client_id": {
|
|
"type": "string",
|
|
"description": "Client-specific training (if applicable)"
|
|
},
|
|
"client_name": {
|
|
"type": "string"
|
|
},
|
|
"instructor_name": {
|
|
"type": "string",
|
|
"description": "Instructor or training provider"
|
|
},
|
|
"training_format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"in_person",
|
|
"online",
|
|
"hybrid",
|
|
"on_the_job",
|
|
"video"
|
|
],
|
|
"default": "online"
|
|
},
|
|
"duration_hours": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Total training duration in hours"
|
|
},
|
|
"enrollment_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "When worker was enrolled"
|
|
},
|
|
"start_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Training start date"
|
|
},
|
|
"completion_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Date training was completed"
|
|
},
|
|
"expiry_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "When this training expires and needs renewal"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"not_started",
|
|
"enrolled",
|
|
"in_progress",
|
|
"completed",
|
|
"failed",
|
|
"expired",
|
|
"cancelled"
|
|
],
|
|
"default": "not_started",
|
|
"description": "Training status"
|
|
},
|
|
"score": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"description": "Score achieved (if graded)"
|
|
},
|
|
"passing_score": {
|
|
"type": "number",
|
|
"default": 70,
|
|
"description": "Minimum passing score"
|
|
},
|
|
"certification_earned": {
|
|
"type": "string",
|
|
"description": "Name of certification earned upon completion"
|
|
},
|
|
"certification_id": {
|
|
"type": "string",
|
|
"description": "Reference to Certification entity if one was issued"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Cost of this training"
|
|
},
|
|
"billable_to_client": {
|
|
"type": "boolean",
|
|
"default": false
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"training_name",
|
|
"training_type",
|
|
"workforce_id",
|
|
"status"
|
|
]
|
|
} |