244 lines
5.2 KiB
JSON
244 lines
5.2 KiB
JSON
{
|
|
"name": "Workforce",
|
|
"type": "object",
|
|
"properties": {
|
|
"workforce_number": {
|
|
"type": "string",
|
|
"description": "Worker Number format WF-#### (auto-generated)",
|
|
"pattern": "^WF-[0-9]{4,6}$"
|
|
},
|
|
"vendor_id": {
|
|
"type": "string",
|
|
"description": "Vendor who manages this worker"
|
|
},
|
|
"vendor_name": {
|
|
"type": "string",
|
|
"description": "Vendor name"
|
|
},
|
|
"first_name": {
|
|
"type": "string",
|
|
"description": "Worker first name"
|
|
},
|
|
"last_name": {
|
|
"type": "string",
|
|
"description": "Worker last name"
|
|
},
|
|
"email": {
|
|
"type": "string",
|
|
"format": "email",
|
|
"description": "Worker email"
|
|
},
|
|
"phone": {
|
|
"type": "string",
|
|
"description": "Worker phone"
|
|
},
|
|
"address": {
|
|
"type": "string",
|
|
"description": "Worker address"
|
|
},
|
|
"city": {
|
|
"type": "string",
|
|
"description": "City"
|
|
},
|
|
"state": {
|
|
"type": "string",
|
|
"description": "State"
|
|
},
|
|
"zip_code": {
|
|
"type": "string",
|
|
"description": "ZIP code"
|
|
},
|
|
"date_of_birth": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Date of birth"
|
|
},
|
|
"ssn_last_four": {
|
|
"type": "string",
|
|
"description": "Last 4 digits of SSN",
|
|
"pattern": "^[0-9]{4}$"
|
|
},
|
|
"employment_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"W2",
|
|
"1099",
|
|
"Temporary",
|
|
"Contract"
|
|
],
|
|
"description": "Employment classification"
|
|
},
|
|
"skills": {
|
|
"type": "array",
|
|
"description": "Worker skills",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"roles_qualified": {
|
|
"type": "array",
|
|
"description": "Roles worker is qualified for",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"certifications": {
|
|
"type": "array",
|
|
"description": "Certifications",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cert_name": {
|
|
"type": "string"
|
|
},
|
|
"cert_number": {
|
|
"type": "string"
|
|
},
|
|
"issued_date": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"expiry_date": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"issuer": {
|
|
"type": "string"
|
|
},
|
|
"document_url": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"background_check_status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Pending",
|
|
"Cleared",
|
|
"Failed",
|
|
"Expired"
|
|
],
|
|
"description": "Background check status"
|
|
},
|
|
"background_check_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Background check completion date"
|
|
},
|
|
"drug_test_status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Pending",
|
|
"Passed",
|
|
"Failed",
|
|
"Expired"
|
|
],
|
|
"description": "Drug test status"
|
|
},
|
|
"drug_test_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Drug test date"
|
|
},
|
|
"reliability_index": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 100,
|
|
"description": "Reliability score (0-100)"
|
|
},
|
|
"total_assignments": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "Total assignments completed"
|
|
},
|
|
"cancelled_assignments": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "Cancelled assignments"
|
|
},
|
|
"no_shows": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "No-show count"
|
|
},
|
|
"average_rating": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 5,
|
|
"description": "Average performance rating"
|
|
},
|
|
"languages": {
|
|
"type": "array",
|
|
"description": "Languages spoken",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"availability": {
|
|
"type": "object",
|
|
"description": "Worker availability",
|
|
"properties": {
|
|
"monday": {
|
|
"type": "boolean"
|
|
},
|
|
"tuesday": {
|
|
"type": "boolean"
|
|
},
|
|
"wednesday": {
|
|
"type": "boolean"
|
|
},
|
|
"thursday": {
|
|
"type": "boolean"
|
|
},
|
|
"friday": {
|
|
"type": "boolean"
|
|
},
|
|
"saturday": {
|
|
"type": "boolean"
|
|
},
|
|
"sunday": {
|
|
"type": "boolean"
|
|
},
|
|
"shift_preferences": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"Morning",
|
|
"Day",
|
|
"Evening",
|
|
"Night",
|
|
"Overnight"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"is_active": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Is worker active"
|
|
},
|
|
"hire_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Date worker was hired"
|
|
},
|
|
"termination_date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
"description": "Termination date if applicable"
|
|
},
|
|
"notes": {
|
|
"type": "string",
|
|
"description": "Internal notes"
|
|
}
|
|
},
|
|
"required": [
|
|
"vendor_id",
|
|
"first_name",
|
|
"last_name",
|
|
"workforce_number"
|
|
]
|
|
} |