{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://seedtactics.com/schemas/allocate", "title": "SeedTactic Allocation JSON", "type": "object", "oneOf": [ { "$ref": "#/$defs/AllocateRequest" } ], "$defs": { "DowntimeUTCRange": { "type": "object", "required": ["StartOfDowntimeUTC", "EndOfDowntimeUTC"], "properties": { "StartOfDowntimeUTC": { "type": "string", "format": "date-time" }, "EndOfDowntimeUTC": { "type": "string", "format": "date-time" } } }, "DayHorizon": { "type": "object", "required": ["HoursForDay", "DayStartOffset"], "properties": { "HoursForDay": { "type": "string", "format": "time-span" }, "DayStartOffset": { "type": "string", "format": "time-span" } } }, "AllocateHorizon": { "type": "object", "required": ["NumWeeks"], "properties": { "NumWeeks": { "type": "integer", "format": "int32" }, "Timezone": { "type": "string" }, "DowntimeUTC": { "type": "array", "items": { "$ref": "#/$defs/DowntimeUTCRange" } }, "DaysOfWeek": { "type": "object", "propertyNames": { "format": "dayofweek" }, "additionalProperties": { "$ref": "#/$defs/DayHorizon" } } } }, "AllocateRequest": { "type": "object", "required": ["ScheduleId", "StartUTC", "EndUTC", "FlexPlan"], "properties": { "ScheduleId": { "type": "string" }, "StartUTC": { "type": "string", "format": "date-time" }, "EndUTC": { "type": "string", "format": "date-time" }, "PreviousSchedule": { "$ref": "/schemas/fms-insight#/components/schemas/MostRecentSchedule" }, "CurrentStatus": { "$ref": "/schemas/fms-insight#/components/schemas/CurrentStatus" }, "UnscheduledBookings": { "type": "array", "items": { "$ref": "/schemas/orders#/$defs/Booking" } }, "ScheduledParts": { "type": "array", "items": { "$ref": "/schemas/orders#/$defs/ScheduledPartWithoutBooking" } }, "FlexPlan": { "$ref": "/schemas/flexplan#/$defs/FlexPlan" }, "Horizon": { "$ref": "#/$defs/AllocateHorizon" } } }, "SimulatedPartCompleted": { "type": "object", "required": ["Day", "Part", "Process", "Path", "Completed"], "properties": { "Day": { "type": "string", "format": "date" }, "Part": { "type": "string" }, "Color": { "type": "string" }, "Completed": { "type": "array", "items": { "type": "array", "items": { "type": "integer", "format": "int32" } } } } }, "SimulatedMachine": { "type": "object", "required": ["Hour", "StationGroup", "StationNum"], "properties": { "Hour": { "type": "integer", "format": "int64" }, "StationGroup": { "type": "string" }, "StationNum": { "type": "integer", "format": "int32" }, "RotarySwaps": { "type": "integer", "format": "int32" }, "Inbound": { "type": "string", "format": "time-span" }, "Use": { "type": "string", "format": "time-span" }, "Outbound": { "type": "string", "format": "time-span" } } }, "SimulatedLoadStation": { "type": "object", "required": ["Hour", "LoadStation"], "properties": { "Hour": { "type": "integer", "format": "int64" }, "LoadStation": { "type": "integer", "format": "int32" }, "WaitForOper": { "type": "string", "format": "time-span" }, "Use": { "type": "string", "format": "time-span" }, "Insp": { "type": "string", "format": "time-span" }, "Outbound": { "type": "string", "format": "time-span" } } }, "SimulatedLabor": { "type": "object", "required": ["Hour", "TeamName", "Work"], "properties": { "Hour": { "type": "integer", "format": "int64" }, "TeamName": { "type": "string" }, "Work": { "type": "string", "format": "time-span" }, "Insp": { "type": "string", "format": "time-span" } } }, "SimulatedPallet": { "type": "object", "required": ["Hour", "Pallet"], "properties": { "Hour": { "type": "integer", "format": "int64" }, "Pallet": { "type": "integer", "format": "int32" }, "Moves": { "type": "integer", "format": "int32" }, "BeforeMachine": { "type": "string", "format": "time-span" }, "BeforeUnload": { "type": "string", "format": "time-span" }, "Occupied": { "type": "string", "format": "time-span" } } }, "SimulatedQueue": { "type": "object", "required": ["Hour", "Queue", "AvgSize", "MaxSize"], "properties": { "Hour": { "type": "integer", "format": "int64" }, "Queue": { "type": "string" }, "AvgSize": { "type": "number", "format": "double" }, "MaxSize": { "type": "integer", "format": "int32" } } }, "SimulatedInspectStand": { "type": "object", "required": ["Hour", "InspType", "Use"], "properties": { "Hour": { "type": "integer", "format": "int64" }, "InspType": { "type": "string" }, "Use": { "type": "string", "format": "time-span" }, "WaitForOper": { "type": "string", "format": "time-span" } } }, "AllocateDetails": { "allOf": [ { "$ref": "/schemas/fms-insight#/components/schemas/SimulationResults" }, { "type": "object", "properties": { "SimPartCompleted": { "type": "array", "items": { "$ref": "#/$defs/SimulatedPartCompleted" } }, "SimMachineUsage": { "type": "array", "items": { "$ref": "#/$defs/SimulatedMachine" } }, "SimLoadStationUsage": { "type": "array", "items": { "$ref": "#/$defs/SimulatedLoadStation" } }, "SimLaborUsage": { "type": "array", "items": { "$ref": "#/$defs/SimulatedLabor" } }, "SimPalletUsage": { "type": "array", "items": { "$ref": "#/$defs/SimulatedPallet" } }, "SimQueueUsage": { "type": "array", "items": { "$ref": "#/$defs/SimulatedQueue" } }, "SimInspectStands": { "type": "array", "items": { "$ref": "#/$defs/SimulatedInspectStand" } } } } ] } } }