139 lines
3.1 KiB
JSON
139 lines
3.1 KiB
JSON
{
|
|
"name": "Transportation",
|
|
"type": "object",
|
|
"properties": {
|
|
"transport_id": {
|
|
"type": "string",
|
|
"description": "Transport record ID"
|
|
},
|
|
"transport_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"shuttle",
|
|
"van",
|
|
"carpool",
|
|
"bus",
|
|
"public_transit",
|
|
"rideshare",
|
|
"personal_vehicle",
|
|
"walking"
|
|
],
|
|
"description": "Mode of transportation"
|
|
},
|
|
"shift_id": {
|
|
"type": "string",
|
|
"description": "Shift this transport serves"
|
|
},
|
|
"event_id": {
|
|
"type": "string",
|
|
"description": "Event this transport serves"
|
|
},
|
|
"workforce_id": {
|
|
"type": "string",
|
|
"description": "Worker being transported (if individual)"
|
|
},
|
|
"workforce_name": {
|
|
"type": "string"
|
|
},
|
|
"vendor_id": {
|
|
"type": "string",
|
|
"description": "Vendor providing/arranging transport"
|
|
},
|
|
"vendor_name": {
|
|
"type": "string"
|
|
},
|
|
"pickup_location": {
|
|
"type": "string",
|
|
"description": "Pickup address or landmark"
|
|
},
|
|
"dropoff_location": {
|
|
"type": "string",
|
|
"description": "Dropoff location (typically the site/client location)"
|
|
},
|
|
"site_id": {
|
|
"type": "string",
|
|
"description": "Destination Site ID"
|
|
},
|
|
"client_id": {
|
|
"type": "string",
|
|
"description": "Client/Business ID at the destination"
|
|
},
|
|
"client_name": {
|
|
"type": "string"
|
|
},
|
|
"scheduled_pickup_time": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Scheduled pickup time"
|
|
},
|
|
"scheduled_dropoff_time": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "Scheduled dropoff time"
|
|
},
|
|
"actual_pickup_time": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"actual_dropoff_time": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"driver_name": {
|
|
"type": "string",
|
|
"description": "Driver name (if applicable)"
|
|
},
|
|
"driver_phone": {
|
|
"type": "string"
|
|
},
|
|
"vehicle_identifier": {
|
|
"type": "string",
|
|
"description": "License plate or vehicle ID"
|
|
},
|
|
"capacity": {
|
|
"type": "number",
|
|
"description": "Number of workers this transport can carry"
|
|
},
|
|
"passenger_count": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"description": "Actual number of workers transported"
|
|
},
|
|
"cost_per_trip": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Cost per trip"
|
|
},
|
|
"billable_to_client": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Whether transport cost is billed to client"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"scheduled",
|
|
"in_progress",
|
|
"completed",
|
|
"cancelled",
|
|
"no_show",
|
|
"delayed"
|
|
],
|
|
"default": "scheduled",
|
|
"description": "Transport status"
|
|
},
|
|
"distance_miles": {
|
|
"type": "number",
|
|
"description": "Distance in miles"
|
|
},
|
|
"notes": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"transport_type",
|
|
"pickup_location",
|
|
"dropoff_location",
|
|
"status"
|
|
]
|
|
} |