259 lines
5.2 KiB
JSON
259 lines
5.2 KiB
JSON
{
|
|
"name": "Staff",
|
|
"type": "object",
|
|
"properties": {
|
|
"employee_name": {
|
|
"type": "string",
|
|
"description": "Full name of the employee"
|
|
},
|
|
"vendor_id": {
|
|
"type": "string",
|
|
"description": "ID of the vendor this staff belongs to"
|
|
},
|
|
"vendor_name": {
|
|
"type": "string",
|
|
"description": "Name of the vendor company"
|
|
},
|
|
"manager": {
|
|
"type": "string",
|
|
"description": "Manager's name"
|
|
},
|
|
"contact_number": {
|
|
"type": "string",
|
|
"description": "Primary contact number"
|
|
},
|
|
"phone": {
|
|
"type": "string",
|
|
"description": "Additional phone number"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"format": "email",
|
|
"description": "Employee email address"
|
|
},
|
|
"department": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Operations",
|
|
"Sales",
|
|
"HR",
|
|
"Finance",
|
|
"IT",
|
|
"Marketing",
|
|
"Customer Service",
|
|
"Logistics"
|
|
],
|
|
"description": "Department"
|
|
},
|
|
"hub_location": {
|
|
"type": "string"
|
|
},
|
|
"event_location": {
|
|
"type": "string"
|
|
},
|
|
"track": {
|
|
"type": "string"
|
|
},
|
|
"address": {
|
|
"type": "string"
|
|
},
|
|
"city": {
|
|
"type": "string"
|
|
},
|
|
"position": {
|
|
"type": "string",
|
|
"description": "Primary job position/skill"
|
|
},
|
|
"position_2": {
|
|
"type": "string",
|
|
"description": "Secondary job position/skill"
|
|
},
|
|
"initial": {
|
|
"type": "string"
|
|
},
|
|
"profile_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Skilled",
|
|
"Beginner",
|
|
"Cross-Trained"
|
|
]
|
|
},
|
|
"employment_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Full Time",
|
|
"Part Time",
|
|
"On call",
|
|
"Weekends",
|
|
"Specific Days",
|
|
"Seasonal",
|
|
"Medical Leave"
|
|
]
|
|
},
|
|
"english": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Fluent",
|
|
"Intermediate",
|
|
"Basic",
|
|
"None"
|
|
]
|
|
},
|
|
"english_required": {
|
|
"type": "boolean"
|
|
},
|
|
"check_in": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"replaced_by": {
|
|
"type": "string"
|
|
},
|
|
"ro": {
|
|
"type": "string"
|
|
},
|
|
"mon": {
|
|
"type": "string"
|
|
},
|
|
"schedule_days": {
|
|
"type": "string"
|
|
},
|
|
"invoiced": {
|
|
"type": "boolean"
|
|
},
|
|
"action": {
|
|
"type": "string"
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
},
|
|
"accounting_comments": {
|
|
"type": "string"
|
|
},
|
|
"pay_rate": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Employee base pay rate per hour"
|
|
},
|
|
"pay_rate_overtime": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Overtime pay rate per hour (1.5x)"
|
|
},
|
|
"pay_rate_double_time": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Double-time pay rate per hour (2x)"
|
|
},
|
|
"pay_rate_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Hourly",
|
|
"Salary",
|
|
"1099"
|
|
],
|
|
"default": "Hourly"
|
|
},
|
|
"pay_rate_effective_date": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"position_pay_rates": {
|
|
"type": "array",
|
|
"description": "Per-position pay rates \u2014 different rates based on the role/position worked",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"position": {
|
|
"type": "string",
|
|
"description": "Position/role name"
|
|
},
|
|
"pay_rate": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Base pay for this position"
|
|
},
|
|
"pay_rate_overtime": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"pay_rate_double_time": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"rating": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 5
|
|
},
|
|
"shift_coverage_percentage": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 100
|
|
},
|
|
"cancellation_count": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"no_show_count": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"total_shifts": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"reliability_score": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 100
|
|
},
|
|
"background_check_status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"cleared",
|
|
"failed",
|
|
"expired",
|
|
"not_required"
|
|
],
|
|
"default": "pending"
|
|
},
|
|
"background_check_date": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"certifications": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"issued_date": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"expiry_date": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"issuer": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"employee_name"
|
|
]
|
|
} |