{"openapi":"3.0.1","info":{"title":"Miridia Core API","version":"v1.0","description":"The Core API of Miridia, the supply chain and automation platform. Read https://docs.miridia.io/developers for authentication and conventions."},"paths":{"/api/Address/get-from-text":{"get":{"tags":["Address"],"operationId":"GetAddressFromText","parameters":[{"name":"text","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfAddressResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfAddressResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfAddressResponse"}}}}}}},"/api/ai-studio/query":{"post":{"tags":["AiStudio"],"summary":"Execute an ad-hoc read-only SELECT against the caller's org schema and return\r\nthe result set with column metadata. Powers the AI Studio chat data layer.","operationId":"ExecuteQuery","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteSqlRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ExecuteSqlRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ExecuteSqlRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfSqlQueryResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSqlQueryResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSqlQueryResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/bom":{"get":{"tags":["Boms"],"operationId":"GetBoms","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]},"post":{"tags":["Boms"],"operationId":"CreateBom","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBomCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateBomCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateBomCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/bom/{bomId}":{"get":{"tags":["Boms"],"operationId":"GetBom","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]},"put":{"tags":["Boms"],"operationId":"UpdateBom","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBomCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateBomCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateBomCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"delete":{"tags":["Boms"],"operationId":"DeleteBom","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/v1/bom/{bomId}/activate":{"post":{"tags":["Boms"],"operationId":"ActivateBom","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/bom/{bomId}/line-items":{"post":{"tags":["Boms"],"operationId":"AddBomLineItem","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddBomLineItemCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddBomLineItemCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddBomLineItemCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/bom/{bomId}/line-items/{lineItemId}":{"put":{"tags":["Boms"],"operationId":"UpdateBomLineItem","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"lineItemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBomLineItemCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateBomLineItemCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateBomLineItemCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"delete":{"tags":["Boms"],"operationId":"DeleteBomLineItem","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"lineItemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/bom/{bomId}/cost":{"get":{"tags":["Boms"],"operationId":"GetBomCost","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"asOfDate","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomCostBreakdownResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomCostBreakdownResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomCostBreakdownResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/bom/{bomId}/work-orders":{"get":{"tags":["Boms"],"summary":"Returns the work orders that used this bill of materials, in the same page shape as\r\nGET /work-orders.","operationId":"GetBomWorkOrders","parameters":[{"name":"bomId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/business/{businessId}":{"put":{"tags":["Business"],"operationId":"UpdateBusiness","parameters":[{"name":"businessId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}}}}},"x-permission":[{"module":"10","action":"Modify"}]}},"/api/business":{"post":{"tags":["Business"],"summary":"Creates an additional business within the authenticated caller's organization.\r\nUnlike organization registration (anonymous tenant onboarding — see\r\n!:OrganizationController), this operates inside an already-provisioned org schema\r\nand is permission-gated.","operationId":"CreateBusiness","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBusinessRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateBusinessRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateBusinessRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}}}}},"x-permission":[{"module":"10","action":"Modify"}]}},"/api/business/my-business":{"get":{"tags":["Business"],"summary":"returns current context for the logged in user.","operationId":"GetBusiness","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessResponse"}}}}},"x-permission":[{"module":"10","action":"View"}]}},"/api/business/default-configuration":{"get":{"tags":["Business"],"operationId":"GetMetadataForBusiness","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessDefaultSettings"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessDefaultSettings"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessDefaultSettings"}}}}}}},"/api/business/{businessId}/children":{"get":{"tags":["Business"],"operationId":"GetBusinessChildren","parameters":[{"name":"businessId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessResponse"}}}}},"x-permission":[{"module":"10","action":"View"}]}},"/api/carriers":{"get":{"tags":["Carriers"],"summary":"Returns the fulfillment provider catalog. Pass `?configured=true` to return only the\r\nproviders already configured for the current business instead of the full catalog.","operationId":"GetCarriers","parameters":[{"name":"configured","in":"query","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfFulfillmentProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfFulfillmentProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfFulfillmentProviderResponse"}}}}},"x-permission":[{"module":"6","action":"View"}]}},"/api/carriers/lookups":{"get":{"tags":["Carriers"],"operationId":"GetCarrierLookups","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderLookupWrapperResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderLookupWrapperResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderLookupWrapperResponse"}}}}},"x-permission":[{"module":"6","action":"View"}]}},"/api/carriers/configure":{"post":{"tags":["Carriers"],"operationId":"ConfigureCarrier","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FulfillmentProviderConfigureRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/FulfillmentProviderConfigureRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/FulfillmentProviderConfigureRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}}}}},"x-permission":[{"module":"6","action":"Modify"}]}},"/api/carriers/{carrierId}":{"get":{"tags":["Carriers"],"operationId":"GetFulfillmentProvider","parameters":[{"name":"carrierId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}}}}},"x-permission":[{"module":"6","action":"View"}]},"patch":{"tags":["Carriers"],"operationId":"UpdateCarrier","parameters":[{"name":"carrierId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFulfillmentProviderRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateFulfillmentProviderRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateFulfillmentProviderRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}}}}},"x-permission":[{"module":"6","action":"Modify"}]},"delete":{"tags":["Carriers"],"operationId":"DeleteConfiguredCarrier","parameters":[{"name":"carrierId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFulfillmentProviderResponse"}}}}},"x-permission":[{"module":"6","action":"Modify"}]}},"/api/carriers/contacts":{"get":{"tags":["Carriers"],"operationId":"GetFulfillmentContacts","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfContactResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfContactResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfContactResponse"}}}}},"x-permission":[{"module":"6","action":"View"}]},"post":{"tags":["Carriers"],"operationId":"AddFulfillmentContact","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContactCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateContactCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateContactCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}}}}},"x-permission":[{"module":"6","action":"Modify"}]}},"/api/carriers/contacts/{contactId}":{"put":{"tags":["Carriers"],"operationId":"UpdateFulfillmentContact","parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContactCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateContactCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateContactCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}}}}},"x-permission":[{"module":"6","action":"Modify"}]},"delete":{"tags":["Carriers"],"operationId":"DeleteFulfillmentContact","parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"6","action":"Delete"}]}},"/api/settings/business":{"get":{"tags":["Configurations"],"operationId":"GetAllBusinessConfigurations","parameters":[{"name":"keys","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfAppConfigurationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfAppConfigurationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfAppConfigurationResponse"}}}}},"x-permission":[{"module":"10","action":"View"}]},"patch":{"tags":["Configurations"],"operationId":"SaveBusinessAppConfiguration","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"text/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"10","action":"Modify"}]}},"/api/customer/configurations":{"get":{"tags":["Configurations"],"operationId":"GetAllBusinessCustomerAppConfigurations","parameters":[{"name":"customerId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BusinessCustomerAppConfigurationResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BusinessCustomerAppConfigurationResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BusinessCustomerAppConfigurationResponse"}}}}}},"x-permission":[{"module":"10","action":"View"}]}},"/api/customer/{customerId}/configuration":{"post":{"tags":["Configurations"],"operationId":"SaveBusinessCustomerAppConfiguration","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveCustomerAppConfigurationCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/SaveCustomerAppConfigurationCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/SaveCustomerAppConfigurationCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"10","action":"Modify"}]}},"/api/settings/{module}":{"get":{"tags":["Configurations"],"operationId":"GetBusinessConfigurationsByModule","parameters":[{"name":"module","in":"path","description":"The feature domains a role's permissions are scoped to — loosely aligned to entity types.\r\nPersisted as `business_role_permissions.module smallint`. Extend by appending new values\r\n(never renumber existing ones — the integer is the stored value).","required":true,"schema":{"$ref":"#/components/schemas/PermissionModule"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BusinessAppConfigurationResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BusinessAppConfigurationResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BusinessAppConfigurationResponse"}}}}}},"x-permission":[{"module":"10","action":"View"}]}},"/api/v1/CustomerGroups":{"get":{"tags":["CustomerGroups"],"operationId":"GetAllCustomerGroups","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfCustomerGroupResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfCustomerGroupResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfCustomerGroupResponse"}}}}},"x-permission":[{"module":"3","action":"View"}]},"post":{"tags":["CustomerGroups"],"operationId":"CreateCustomerGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerGroupCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerGroupCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateCustomerGroupCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]}},"/api/v1/CustomerGroups/{customerGroupId}":{"get":{"tags":["CustomerGroups"],"operationId":"GetCustomerGroup","parameters":[{"name":"customerGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}}}}},"x-permission":[{"module":"3","action":"View"}]},"put":{"tags":["CustomerGroups"],"operationId":"UpdateCustomerGroup","parameters":[{"name":"customerGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerGroupCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerGroupCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerGroupCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerGroupResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]},"delete":{"tags":["CustomerGroups"],"operationId":"DeleteCustomerGroup","parameters":[{"name":"customerGroupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"3","action":"Delete"}]}},"/api/v1/Customers":{"get":{"tags":["Customers"],"operationId":"GetAllCustomers","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfCustomerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfCustomerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfCustomerResponse"}}}}},"x-permission":[{"module":"3","action":"View"}]},"post":{"tags":["Customers"],"operationId":"CreateCustomer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateCustomerRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]}},"/api/v1/Customers/{customerId}/attachments":{"post":{"tags":["Customers"],"summary":"Step 2 of file attachment: associates a previously uploaded file (or a bare external link)\r\nwith this customer. Upload the file first via POST /api/files/single, then pass the returned\r\nFileAttachment id here — or pass Type=Link with Title+Url for a link with no backing file.","operationId":"AddCustomerFileAttachment","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]}},"/api/v1/Customers/{customerId}/attachments/{attachmentId}":{"delete":{"tags":["Customers"],"summary":"Removes a previously associated attachment (file or link) from this customer by its metadata\r\nattachment entry id. For file-backed entries the underlying blob row is left intact.","operationId":"RemoveCustomerFileAttachment","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}}}}},"x-permission":[{"module":"3","action":"Delete"}]}},"/api/v1/Customers/{customerId}/contacts/{contactId}":{"put":{"tags":["Customers"],"operationId":"UpdateCustomerContact","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContactCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateContactCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateContactCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]},"delete":{"tags":["Customers"],"operationId":"DeleteCustomerContact","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}}}}},"x-permission":[{"module":"3","action":"Delete"}]}},"/api/v1/Customers/{customerId}/contacts":{"post":{"tags":["Customers"],"operationId":"CreateCustomerContact","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContactCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateContactCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateContactCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfContactResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]}},"/api/v1/Customers/{customerId}":{"put":{"tags":["Customers"],"operationId":"UpdateCustomer","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]},"delete":{"tags":["Customers"],"operationId":"DeleteCustomer","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"3","action":"Delete"}]},"get":{"tags":["Customers"],"operationId":"GetCustomer","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}}}}},"x-permission":[{"module":"3","action":"View"}]}},"/api/v1/Customers/{customerId}/kpi-metrics":{"get":{"tags":["Customers"],"summary":"Returns aggregated KPI metrics for a customer: total orders, total revenue,\r\ntotal deliveries, fulfillment cost, and the customer's rank by order volume and by spend.","operationId":"GetKpiMetrics","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerKpiMetricsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerKpiMetricsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerKpiMetricsResponse"}}}}},"x-permission":[{"module":"3","action":"View"}]}},"/api/v1/Customers/{customerId}/sales-analytics":{"get":{"tags":["Customers"],"operationId":"GetSalesData","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerDetailSalesHistoryWrapperResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerDetailSalesHistoryWrapperResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerDetailSalesHistoryWrapperResponse"}}}}},"x-permission":[{"module":"3","action":"View"}]}},"/api/v1/Customers/delete-customers":{"put":{"tags":["Customers"],"operationId":"BulkDeleteCustomers","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerBulkDeleteCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CustomerBulkDeleteCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CustomerBulkDeleteCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"3","action":"Delete"}]}},"/api/v1/Customers/{customerId}/traces":{"get":{"tags":["Customers"],"summary":"Get customer activity traces","operationId":"GetActivityTraces","parameters":[{"name":"customerId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}}}}},"x-permission":[{"module":"3","action":"View"}]},"post":{"tags":["Customers"],"summary":"Add an activity trace to a customer","operationId":"AddActivityTrace","parameters":[{"name":"customerId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]}},"/api/v1/Customers/{customerId}/metadata":{"post":{"tags":["Customers"],"summary":"Merges the provided key/value pairs into the customer's free-form metadata dictionary.\r\nA non-null value adds or overwrites the key; a null value removes the key.","operationId":"AddCustomerMetadata","parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"text/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfCustomerResponse"}}}}},"x-permission":[{"module":"3","action":"Modify"}]}},"/api/v1/insights/dashboard/summary":{"get":{"tags":["DashboardInsights"],"summary":"Returns the dashboard summary metrics for the business.","operationId":"GetDashboardSummary","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDashboardSummaryResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDashboardSummaryResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDashboardSummaryResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/dashboard/shipment-volumes":{"get":{"tags":["DashboardInsights"],"summary":"Returns the shipment volume summary for the business.","operationId":"GetShipmentVolumes","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfVolumeSummaryResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVolumeSummaryResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVolumeSummaryResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/dashboard/dispatch-volumes":{"get":{"tags":["DashboardInsights"],"summary":"Returns the dispatch volume summary for the business.","operationId":"GetDispatchVolumes","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfVolumeSummaryResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVolumeSummaryResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVolumeSummaryResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/dashboard/top-customers":{"get":{"tags":["DashboardInsights"],"summary":"Returns the top customers by sales for the business.","operationId":"GetTopCustomers","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerRankingResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerRankingResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerRankingResponse"}}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/plans/overview":{"get":{"tags":["DeliveryPlans"],"operationId":"GetDispatchOverview","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchOverviewResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchOverviewResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchOverviewResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/plans/{dispatchId}":{"get":{"tags":["DeliveryPlans"],"operationId":"GetDispatch","parameters":[{"name":"dispatchId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]},"delete":{"tags":["DeliveryPlans"],"operationId":"DeleteDispatch","parameters":[{"name":"dispatchId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Delete"}]}},"/api/v1/plans/{deliveryPlanId}/timeline":{"get":{"tags":["DeliveryPlans"],"summary":"The milestone timestamps of the plan and of every shipment on it. The portal draws\r\nthis as a Gantt chart, so a reader can see how long each step of the delivery took.","operationId":"GetDeliveryPlanTimeline","parameters":[{"name":"deliveryPlanId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryPlanTimelineResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryPlanTimelineResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryPlanTimelineResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/plans/{deliveryPlanId}":{"put":{"tags":["DeliveryPlans"],"operationId":"UpdateDispatch","parameters":[{"name":"deliveryPlanId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchUpdateRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/DispatchUpdateRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/DispatchUpdateRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/plans/{deliveryPlanId}/shipments/{shipmentId}":{"delete":{"tags":["DeliveryPlans"],"operationId":"RemoveShipmentFromDispatch","parameters":[{"name":"deliveryPlanId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/plans/in-shipment/{shipmentId}":{"get":{"tags":["DeliveryPlans"],"summary":"This endpoint is required for the shipment details page. To retrieve the related dispatch information for that shipment.","operationId":"GetDispatchByShipmentId","parameters":[{"name":"shipmentId","in":"path","description":"The shipment id.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/plans/{deliveryPlanId}/shipments":{"post":{"tags":["DeliveryPlans"],"operationId":"AddShipment","parameters":[{"name":"deliveryPlanId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddShipmentToDispatchDto"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddShipmentToDispatchDto"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddShipmentToDispatchDto"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/plans/{dispatchId}/autobatch":{"post":{"tags":["DeliveryPlans"],"operationId":"AutoBatchShipments","parameters":[{"name":"dispatchId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/plans/code":{"get":{"tags":["DeliveryPlans"],"summary":"This endpoint is called since the dispatch code needs to be created before the dispatch itself is created.","operationId":"GetDispatchCode","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchCodeResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchCodeResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchCodeResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/plans":{"get":{"tags":["DeliveryPlans"],"operationId":"GetTrips","parameters":[{"name":"page","in":"query","schema":{"type":"integer","format":"int32","default":1}},{"name":"perPage","in":"query","schema":{"type":"integer","format":"int32","default":50}},{"name":"from","in":"query","schema":{"type":"string"}},{"name":"to","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfDispatchResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfDispatchResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfDispatchResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]},"post":{"tags":["DeliveryPlans"],"operationId":"SaveDispatch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/DispatchRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/DispatchRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDispatchResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/plans/unassigned-shipments":{"get":{"tags":["DeliveryPlans"],"summary":"Shipments not yet attached to any delivery plan/dispatch. Was previously wired to\r\nGetUnassignedDispatchesQuery (delivery plans with zero shipments — the wrong semantics,\r\nalways empty in practice); rewired to the same shipment-level query the plans UI needs.","operationId":"GetUnassignedShipments","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/DeliveryZones":{"get":{"tags":["DeliveryZones"],"operationId":"GetAllDeliveryZones","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfDeliveryZoneResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfDeliveryZoneResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfDeliveryZoneResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]},"post":{"tags":["DeliveryZones"],"operationId":"CreateDeliveryZone","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeliveryZoneCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateDeliveryZoneCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateDeliveryZoneCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/DeliveryZones/{deliveryZoneId}":{"get":{"tags":["DeliveryZones"],"operationId":"GetDeliveryZone","parameters":[{"name":"deliveryZoneId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]},"put":{"tags":["DeliveryZones"],"operationId":"UpdateDeliveryZone","parameters":[{"name":"deliveryZoneId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeliveryZoneCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateDeliveryZoneCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateDeliveryZoneCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDeliveryZoneResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]},"delete":{"tags":["DeliveryZones"],"operationId":"DeleteDeliveryZone","parameters":[{"name":"deliveryZoneId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Delete"}]}},"/api/v1/DeliveryZones/coordinates":{"get":{"tags":["DeliveryZones"],"operationId":"GetZonesInsideCoordinates","parameters":[{"name":"latitude","in":"query","schema":{"type":"number","format":"double"}},{"name":"longitude","in":"query","schema":{"type":"number","format":"double"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfDeliveryZoneResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfDeliveryZoneResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfDeliveryZoneResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/dimensions/presets":{"get":{"tags":["DimensionPreset"],"summary":"Returns the PackageSizes for a business defined in the integration settings","operationId":"GetPackageSizes","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DimensionPresetResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DimensionPresetResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DimensionPresetResponse"}}}}}},"x-permission":[{"module":"4","action":"View"}]},"post":{"tags":["DimensionPreset"],"summary":"Create a new package size preset","operationId":"CreateDimensionPreset","requestBody":{"description":"The dimension preset details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDimensionPresetCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateDimensionPresetCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateDimensionPresetCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/dimensions/templates":{"get":{"tags":["DimensionPreset"],"summary":"Returns the PackageSize templates for the country (without business ids)","operationId":"GetPackageSizeTemplates","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DimensionPresetResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DimensionPresetResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DimensionPresetResponse"}}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/dimensions/get-default-dimensions":{"get":{"tags":["DimensionPreset"],"operationId":"GetDefaultDimensions","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfGeometryFieldSymbol"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfGeometryFieldSymbol"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfGeometryFieldSymbol"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/dimensions/get-default-preset":{"get":{"tags":["DimensionPreset"],"operationId":"GetDefaultPackageSize","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/dimensions/presets/{presetId}":{"put":{"tags":["DimensionPreset"],"summary":"Update an existing package size preset","operationId":"UpdateDimensionPreset","parameters":[{"name":"presetId","in":"path","description":"The dimension preset id","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The updated dimension preset details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDimensionPresetCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateDimensionPresetCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateDimensionPresetCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDimensionPresetResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"delete":{"tags":["DimensionPreset"],"operationId":"DeletePackageSize","parameters":[{"name":"presetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/drivers":{"get":{"tags":["Driver"],"operationId":"GetDrivers","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DriverResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DriverResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DriverResponse"}}}}}}}},"/api/employees":{"get":{"tags":["Employee"],"operationId":"GetEmployees","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfPrimitiveUserAccountResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfPrimitiveUserAccountResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfPrimitiveUserAccountResponse"}}}}},"x-permission":[{"module":"7","action":"View"}]}},"/api/employee/{employeeId}/verify":{"post":{"tags":["Employee"],"operationId":"VerifyEmployee","parameters":[{"name":"employeeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"7","action":"Modify"}]}},"/api/employee/{employeeId}":{"delete":{"tags":["Employee"],"operationId":"DeleteEmployee","parameters":[{"name":"employeeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"7","action":"Delete"}]},"get":{"tags":["Employee"],"operationId":"GetEmployee","parameters":[{"name":"employeeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}}}}},"x-permission":[{"module":"7","action":"View"}]}},"/api/employee/{userId}":{"put":{"tags":["Employee"],"operationId":"UpdateEmployeeRoles","parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployeeRolesCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployeeRolesCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateEmployeeRolesCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"7","action":"Modify"}]}},"/api/employee/invite":{"post":{"tags":["Employee"],"operationId":"InviteTeamMember","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteTeamMemberCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/InviteTeamMemberCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/InviteTeamMemberCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"7","action":"Modify"}]}},"/api/employee/{employeeId}/remove/{businessId}":{"delete":{"tags":["Employee"],"operationId":"RemoveTeamMember","parameters":[{"name":"employeeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"businessId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"7","action":"Modify"}]}},"/api/Files/multiple":{"post":{"tags":["Files"],"summary":"Step 1 of file attachment: uploads multiple files to blob storage and returns their FileAttachment ids.\r\nPass each returned id to the target entity's POST /attachments endpoint to associate it.","operationId":"UploadFiles","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"string","format":"binary"}}}},"encoding":{"files":{"style":"form"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileUploadResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileUploadResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileUploadResponse"}}}}}}},"/api/Files/from-url":{"post":{"tags":["Files"],"summary":"Step 1 of file attachment (remote source): fetches one or more publicly reachable files by URL,\r\nstores them in blob storage, and returns their FileAttachment ids. Useful when the asset is\r\nalready hosted somewhere (a CDN, an integration's image URL) and only its URL is on hand.\r\nPass each returned id to the target entity's POST /attachments endpoint (or a product's imageIds).","operationId":"UploadFilesFromUrl","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFilesFromUrlCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UploadFilesFromUrlCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UploadFilesFromUrlCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileUploadResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileUploadResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileUploadResponse"}}}}}}},"/api/Files/{fileId}":{"delete":{"tags":["Files"],"summary":"Deletes a file attachment: the blob is removed from storage along with the\r\nbusiness_file_attachments row. Detach the file from its entity first (e.g. save\r\nthe product without the imageId) — references inside entity metadata are not cleaned up.","operationId":"DeleteFile","parameters":[{"name":"fileId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileAttachmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileAttachmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfFileAttachmentResponse"}}}}},"x-permission":[{"module":"10","action":"Delete"}]},"get":{"tags":["Files"],"operationId":"GetFile","parameters":[{"name":"fileId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK"}},"x-permission":[{"module":"10","action":"View"}]}},"/api/fulfillments/fulfillment-sub-types":{"get":{"tags":["Fulfillment"],"operationId":"GetFulfillmentSubTypes","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentSubTypeResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentSubTypeResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentSubTypeResponse"}}}}}},"x-permission":[{"module":"1","action":"View"}]}},"/api/fulfillments/fulfillment-types":{"get":{"tags":["Fulfillment"],"operationId":"GetFulfillmentTypes","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentTypeResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentTypeResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentTypeResponse"}}}}}},"x-permission":[{"module":"1","action":"View"}]}},"/api/fulfillments/fulfillment-requirements":{"get":{"tags":["Fulfillment"],"operationId":"GetFulfillmentRequirementTypes","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentRequirementTypeResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentRequirementTypeResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentRequirementTypeResponse"}}}}}},"x-permission":[{"module":"1","action":"View"}]}},"/api/fulfillments/fulfillment-service-delivery-types":{"get":{"tags":["Fulfillment"],"operationId":"GetFulfillmentServiceDeliveryTypes","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentServiceLevelResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentServiceLevelResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentServiceLevelResponse"}}}}}},"x-permission":[{"module":"1","action":"View"}]}},"/api/fulfillments/service-level-templates/{serviceLevelTemplateId}":{"delete":{"tags":["Fulfillment"],"operationId":"DeleteServiceLevelTemplate","parameters":[{"name":"serviceLevelTemplateId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"1","action":"Delete"}]}},"/api/fulfillments/service-level-templates":{"post":{"tags":["Fulfillment"],"operationId":"AddServiceLevelTemplate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceLevelTemplate"}},"text/json":{"schema":{"$ref":"#/components/schemas/ServiceLevelTemplate"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ServiceLevelTemplate"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"1","action":"Modify"}]},"get":{"tags":["Fulfillment"],"operationId":"GetServiceLevelTemplates","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLevelTemplate"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLevelTemplate"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceLevelTemplate"}}}}}},"x-permission":[{"module":"1","action":"View"}]}},"/api/Integrations/{providerId}/configure":{"post":{"tags":["Integrations"],"operationId":"ConfigureIntegration","parameters":[{"name":"providerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreConfigureIntegrationProviderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/PreConfigureIntegrationProviderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/PreConfigureIntegrationProviderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}}}}},"x-permission":[{"module":"6","action":"Modify"}]}},"/api/Integrations/{configuredProviderId}/activate":{"post":{"tags":["Integrations"],"operationId":"ActivateConfiguredProvider","parameters":[{"name":"configuredProviderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateIntegrationProviderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/ActivateIntegrationProviderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ActivateIntegrationProviderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}}}}},"x-permission":[{"module":"6","action":"Modify"}]}},"/api/Integrations/{configuredProviderId}/activate/callback":{"post":{"tags":["Integrations"],"summary":"OAuth callback activation endpoint for service-to-service calls (e.g. ShopifyHandler).\r\nAuthenticates via `X-Service-Token` header instead of a business API key — the\r\nbusiness context is resolved from configuredProviderId so this\r\nendpoint is not tied to any specific business.","operationId":"ActivateConfiguredProviderCallback","parameters":[{"name":"configuredProviderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateIntegrationProviderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/ActivateIntegrationProviderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ActivateIntegrationProviderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}}}}}}},"/api/Integrations/{configuredProviderId}/tokens":{"post":{"tags":["Integrations"],"summary":"Token refresh callback for workflow functions. After a function refreshes a provider\r\naccess token (Xero, Zoho, etc.) it pushes the rotated token back here so it gets\r\npersisted on `business_integration_providers`. Authentication uses the standard\r\nAPI-key header so the function can authenticate as the business.","operationId":"UpdateConfiguredProviderTokens","parameters":[{"name":"configuredProviderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConfiguredProviderTokensCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateConfiguredProviderTokensCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateConfiguredProviderTokensCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"6","action":"Modify"}]}},"/api/Integrations/{businessProviderId}":{"delete":{"tags":["Integrations"],"operationId":"RemoveConfiguredProvider","parameters":[{"name":"businessProviderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"6","action":"Modify"}]}},"/api/Integrations/{providerId}":{"get":{"tags":["Integrations"],"operationId":"GetIntegrationProvider","parameters":[{"name":"providerId","in":"path","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"configuredProviderId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationProviderResponse"}}}}},"x-permission":[{"module":"6","action":"View"}]}},"/api/Integrations":{"get":{"tags":["Integrations"],"summary":"Returns every available integration provider except fulfillment providers\r\n(which have a richer configuration model and live under `/api/fulfillment/providers`).\r\nThe frontend filters the result client-side by `type`.","operationId":"GetAllIntegrationProviders","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfIntegrationProviderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfIntegrationProviderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfIntegrationProviderResponse"}}}}},"x-permission":[{"module":"6","action":"View"}]}},"/api/v1/inventory/{inventoryRecordId}":{"get":{"tags":["Inventory"],"operationId":"GetInventoryRecord","parameters":[{"name":"inventoryRecordId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/by-product/{productId}":{"get":{"tags":["Inventory"],"operationId":"GetInventoryByProduct","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/by-location/{locationId}":{"get":{"tags":["Inventory"],"operationId":"GetInventoryByLocation","parameters":[{"name":"locationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/{inventoryRecordId}/movements":{"get":{"tags":["Inventory"],"operationId":"GetInventoryMovements","parameters":[{"name":"inventoryRecordId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryMovementResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryMovementResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryMovementResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/by-product/{productId}/cost-history":{"get":{"tags":["Inventory"],"operationId":"GetProductCostHistory","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductCostHistoryPointResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductCostHistoryPointResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductCostHistoryPointResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/adjust":{"post":{"tags":["Inventory"],"operationId":"AdjustInventory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdjustInventoryCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/AdjustInventoryCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AdjustInventoryCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/inventory/transfer":{"post":{"tags":["Inventory"],"operationId":"TransferInventory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferInventoryCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/TransferInventoryCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/TransferInventoryCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryRecordResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/inventory/{inventoryRecordId}/reorder-settings":{"put":{"tags":["Inventory"],"operationId":"SetReorderSettings","parameters":[{"name":"inventoryRecordId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetReorderSettingsRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/SetReorderSettingsRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/SetReorderSettingsRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryRecordResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/inventory/{inventoryRecordId}/reorder-history":{"get":{"tags":["Inventory"],"operationId":"GetReorderHistory","parameters":[{"name":"inventoryRecordId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfReorderHistoryResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfReorderHistoryResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfReorderHistoryResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/traceability/forward":{"get":{"tags":["Inventory"],"summary":"Tier-1 stock traceability, forward direction: from a purchase-order receipt, the shipments the\r\nFIFO walk infers drew stock from it, and their orders and customers. See\r\nstock_traceability_plan.md, Tier 1.","operationId":"GetStockTraceabilityForward","parameters":[{"name":"purchaseOrderId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"productId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfStockTraceabilityForwardResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfStockTraceabilityForwardResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfStockTraceabilityForwardResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/traceability/backward":{"get":{"tags":["Inventory"],"summary":"Tier-1 stock traceability, backward direction: from a customer shipment, the inbound movements\r\nthe FIFO walk infers supplied its stock, and the purchase order and supplier on each Purchase\r\nsource. See stock_traceability_plan.md, Tier 1.","operationId":"GetStockTraceabilityBackward","parameters":[{"name":"shipmentId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfStockTraceabilityBackwardResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfStockTraceabilityBackwardResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfStockTraceabilityBackwardResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/insights/inventory/days-of-cover":{"get":{"tags":["InventoryInsights"],"summary":"Returns the days-of-cover grid for the business: the on-hand quantity, the trailing demand,\r\nand the resulting days of cover, for every (product, location) inventory record. Defaults\r\nto the current day and a 28-day window when asOf/windowDays\r\nare not supplied.","operationId":"GetDaysOfCover","parameters":[{"name":"asOf","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"windowDays","in":"query","schema":{"type":"integer","format":"int32","default":28}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDaysOfCoverResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDaysOfCoverResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDaysOfCoverResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/inventory/lots":{"get":{"tags":["InventoryLots"],"operationId":"GetInventoryLots","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"productId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryLotResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryLotResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryLotResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/lots/{lotId}":{"get":{"tags":["InventoryLots"],"operationId":"GetInventoryLot","parameters":[{"name":"lotId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/lots/{lotId}/movements":{"get":{"tags":["InventoryLots"],"operationId":"GetInventoryLotMovements","parameters":[{"name":"lotId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryMovementResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryMovementResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfInventoryMovementResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/inventory/lots/{lotId}/notes":{"put":{"tags":["InventoryLots"],"summary":"Replaces the notes on a lot.","operationId":"UpdateInventoryLotNotes","parameters":[{"name":"lotId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryLotNotesRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryLotNotesRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateInventoryLotNotesRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/inventory/lots/{lotId}/attachments":{"post":{"tags":["InventoryLots"],"summary":"Step 2 of file attachment: associates a previously uploaded file with this lot.\r\nUpload the file first via POST /api/files/single, then pass the returned FileAttachment id here.","operationId":"AddInventoryLotFileAttachment","parameters":[{"name":"lotId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/inventory/lots/{lotId}/attachments/{attachmentId}":{"delete":{"tags":["InventoryLots"],"summary":"Removes a previously associated attachment (file or link) from this lot by its metadata\r\nattachment entry id. For file-backed entries the underlying blob row is left intact.","operationId":"RemoveInventoryLotFileAttachment","parameters":[{"name":"lotId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInventoryLotResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/insights/locations":{"get":{"tags":["LocationInsights"],"summary":"Returns aggregated insight metrics for every location in the business over the period.\r\nDefaults to the current calendar month when from/to\r\nare not supplied.","operationId":"GetLocationInsights","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfLocationInsightResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfLocationInsightResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfLocationInsightResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/locations/{locationId}":{"get":{"tags":["LocationInsights"],"summary":"Returns aggregated insight metrics for one location over the period. Defaults to the\r\ncurrent calendar month when from/to are not supplied.","operationId":"GetLocationInsight","parameters":[{"name":"locationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfLocationInsightResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfLocationInsightResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfLocationInsightResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/locations/{locationId}/top-products":{"get":{"tags":["LocationInsights"],"summary":"Returns the top-selling products at one location over the period, ordered by revenue.","operationId":"GetTopProducts","parameters":[{"name":"locationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"take","in":"query","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LocationTopProductResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LocationTopProductResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LocationTopProductResponse"}}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/locations/{locationId}/turnover-history":{"get":{"tags":["LocationInsights"],"summary":"Returns the monthly inventory turnover history for one location over the period.","operationId":"GetTurnoverHistory","parameters":[{"name":"locationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LocationTurnoverRowResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LocationTurnoverRowResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LocationTurnoverRowResponse"}}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/Locations":{"get":{"tags":["Locations"],"operationId":"GetAllLocations","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessLocationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessLocationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessLocationResponse"}}}}},"x-permission":[{"module":"10","action":"View"}]},"post":{"tags":["Locations"],"operationId":"CreateLocation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBusinessLocationCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateBusinessLocationCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateBusinessLocationCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}}}}},"x-permission":[{"module":"10","action":"Modify"}]}},"/api/v1/Locations/{locationId}":{"get":{"tags":["Locations"],"operationId":"GetLocation","parameters":[{"name":"locationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}}}}},"x-permission":[{"module":"10","action":"View"}]},"put":{"tags":["Locations"],"operationId":"UpdateLocation","parameters":[{"name":"locationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessLocationCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessLocationCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessLocationCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationResponse"}}}}},"x-permission":[{"module":"10","action":"Modify"}]}},"/api/v1/Locations/{locationId}/capabilities":{"get":{"tags":["Locations"],"summary":"Returns this location's procurement/fulfilment capability flags. A location with no\r\npersisted capabilities returns the no-restriction defaults (every flag true, no default\r\nfulfiller) rather than a 404.","operationId":"GetLocationCapabilities","parameters":[{"name":"locationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationCapabilitiesResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationCapabilitiesResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationCapabilitiesResponse"}}}}},"x-permission":[{"module":"10","action":"View"}]},"put":{"tags":["Locations"],"summary":"Replaces this location's procurement/fulfilment capability flags, creating the row on first\r\nwrite. Nothing acts on these flags today — they exist for the future sub-business hierarchy\r\nwork to express which locations may buy or fulfil for themselves.","operationId":"UpdateLocationCapabilities","parameters":[{"name":"locationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessLocationCapabilitiesCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessLocationCapabilitiesCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateBusinessLocationCapabilitiesCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationCapabilitiesResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationCapabilitiesResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessLocationCapabilitiesResponse"}}}}},"x-permission":[{"module":"10","action":"Modify"}]}},"/api/lookups/license-types":{"get":{"tags":["Lookup"],"summary":"Returns every license type. Filters to one country when countryCode is supplied.","operationId":"GetLicenseTypes","parameters":[{"name":"countryCode","in":"query","description":"Linked to lookup table lookup_country_code;\r\nThe numbers link to the dialing code listed on <example> https://www.iban.com/country-codes </example>\r\nFor future reference dialing codes containing '-' should be ignored","schema":{"$ref":"#/components/schemas/CountryCode"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LicenseTypeResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LicenseTypeResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LicenseTypeResponse"}}}}}},"x-permission":[{"module":"5","action":"View"}]}},"/api/v1/insights/network":{"get":{"tags":["NetworkInsights"],"summary":"Returns the network graph for the business over the period. Defaults to the current\r\ncalendar month when from/to are not supplied.","operationId":"GetNetworkInsight","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfNetworkInsightResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfNetworkInsightResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfNetworkInsightResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/notifications/user":{"get":{"tags":["Notification"],"summary":"Get notifications for the currently authenticated user.","operationId":"GetUserNotifications","parameters":[{"name":"includeRead","in":"query","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfNotificationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfNotificationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfNotificationResponse"}}}}},"x-permission":[{"module":"10","action":"View"}]}},"/api/notification":{"get":{"tags":["Notification"],"summary":"Get a single notification by id.\r\nReturns 404 if the notification does not exist.","operationId":"GetNotification","parameters":[{"name":"id","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfNotificationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfNotificationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfNotificationResponse"}}}}}}},"/api/notification/{id}":{"patch":{"tags":["Notification"],"summary":"Partially update a notification (currently only the read state).","operationId":"PatchNotification","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchNotificationRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/PatchNotificationRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/PatchNotificationRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}}}},"/api/notification/mark-all-read":{"patch":{"tags":["Notification"],"summary":"Marks all of the currently-authenticated user's unread notifications as read, in a\r\nsingle bulk update.","operationId":"MarkAllNotificationsRead","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfInt32"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInt32"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfInt32"}}}}}}},"/api/v1/integration/orders/{integrationId}":{"get":{"tags":["OrderIntegration"],"operationId":"GetOrder","parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"configuredProviderId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationOrderApiResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationOrderApiResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationOrderApiResponse"}}}}},"x-permission":[{"module":"1","action":"View"}]},"put":{"tags":["OrderIntegration"],"operationId":"UpdateOrder","parameters":[{"name":"integrationId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationUpdateOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/IntegrationUpdateOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/IntegrationUpdateOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationOrderApiResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationOrderApiResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfIntegrationOrderApiResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/integration/orders":{"post":{"tags":["OrderIntegration"],"operationId":"CreateOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderIntegrationCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateOrderIntegrationCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateOrderIntegrationCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders":{"post":{"tags":["Orders"],"operationId":"CreateOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateOrderRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateOrderRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]},"get":{"tags":["Orders"],"operationId":"GetOrders","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"sourceChannelId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"originLocationId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","description":"NOTE: Do not change the numeric assignment of values. The values are used in the database and should not be changed.","schema":{"$ref":"#/components/schemas/OrderStatus"}},{"name":"fromDate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"toDate","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"View"}]}},"/api/v1/Orders/delete":{"post":{"tags":["Orders"],"summary":"Bulk delete orders handled as HTTP POST (action endpoint for bulk operations)","operationId":"BulkDeleteOrders","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderDeleteCommand"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderDeleteCommand"}}},"application/*+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderDeleteCommand"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Delete"}]}},"/api/v1/Orders/{orderId}":{"get":{"tags":["Orders"],"operationId":"GetOrder","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"View"}]},"patch":{"tags":["Orders"],"summary":"Partially update an order's editable header fields: fulfillment type / sub-type /\r\nservice level, status (Cancelled/Complete only), payment-processed state, and\r\ncollection date. Only fields present (non-null) in the body are applied.","operationId":"PatchOrder","parameters":[{"name":"orderId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/PatchOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/PatchOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/add-dimension-preset":{"post":{"tags":["Orders"],"operationId":"AssignDimensionPreset","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifyOrderItemPresetCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/ModifyOrderItemPresetCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ModifyOrderItemPresetCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/shipments":{"post":{"tags":["Orders"],"summary":"Creates a `order_shipment` entry for the order.\r\nIf no order items are specified all unassigned order items will be assigned to the created shipment.","operationId":"CreateOrderShipment","parameters":[{"name":"orderId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderShipmentCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateOrderShipmentCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateOrderShipmentCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/shipments/{shipmentId}/items":{"put":{"tags":["Orders"],"summary":"Replaces the item set of a shipment that already belongs to the order. The shipment keeps its\r\nid and its code; only the items it carries change. An item taken from another shipment of the\r\norder moves across, and a shipment left with no items is deleted.","description":"The request body holds the complete item set, not a delta. An item of the shipment that is\r\nabsent from the list becomes unassigned. The list cannot be empty: to remove the shipment,\r\ndelete it. The request returns 409 when the shipment, or any shipment an item is taken from,\r\nhas moved past the Active status or carries a label, an invoice, a fulfillment request, or an\r\napproved quotation.","operationId":"UpdateOrderShipmentItems","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrderShipmentItemsCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateOrderShipmentItemsCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateOrderShipmentItemsCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/settings":{"patch":{"tags":["Orders"],"operationId":"UpdateOrderSettings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderSettingsUpdateCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/OrderSettingsUpdateCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/OrderSettingsUpdateCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSettingsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSettingsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSettingsResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]},"get":{"tags":["Orders"],"operationId":"GetOrderSettings","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSettingsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSettingsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSettingsResponse"}}}}},"x-permission":[{"module":"1","action":"View"}]}},"/api/v1/Orders/{orderId}/traces":{"get":{"tags":["Orders"],"summary":"Get order activity traces","operationId":"GetActivityTraces","parameters":[{"name":"orderId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}}}}},"x-permission":[{"module":"1","action":"View"}]},"post":{"tags":["Orders"],"operationId":"AddOrderTrace","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/attachments":{"post":{"tags":["Orders"],"summary":"Step 2 of file attachment: associates a previously uploaded file with this order.\r\nUpload the file first via POST /api/files/single, then pass the returned FileAttachment id here.","operationId":"AddOrderFileAttachment","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/attachments/{attachmentId}":{"delete":{"tags":["Orders"],"summary":"Removes a previously associated attachment (file or link) from this order by its metadata\r\nattachment entry id. For file-backed entries the underlying blob row is left intact.","operationId":"RemoveOrderFileAttachment","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/metadata":{"post":{"tags":["Orders"],"summary":"Merges the provided key/value pairs into the order's free-form metadata dictionary.\r\nA non-null value adds or overwrites the key; a null value removes the key.","operationId":"AddOrderMetadata","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"text/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/comments":{"get":{"tags":["Orders"],"summary":"Returns the user-authored comments on this order, oldest first.","operationId":"GetOrderComments","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderCommentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderCommentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfOrderCommentResponse"}}}}},"x-permission":[{"module":"1","action":"View"}]},"post":{"tags":["Orders"],"summary":"Adds a comment to the order, attributed to the authenticated user.","operationId":"AddOrderComment","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCommentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/OrderCommentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/OrderCommentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderCommentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderCommentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderCommentResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/comments/{commentId}":{"delete":{"tags":["Orders"],"summary":"Deletes a comment from the order.","operationId":"DeleteOrderComment","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/items/{orderItemId}":{"delete":{"tags":["Orders"],"summary":"Deletes an order item from the order","operationId":"DeleteOrderItem","parameters":[{"name":"orderId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"orderItemId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]},"patch":{"tags":["Orders"],"summary":"Updates an existing order item","operationId":"UpdateOrderItem","parameters":[{"name":"orderId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"orderItemId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrderItemRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateOrderItemRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateOrderItemRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/v1/Orders/{orderId}/items":{"post":{"tags":["Orders"],"summary":"Adds a new item to the order","operationId":"AddOrderItem","parameters":[{"name":"orderId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderItemRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateOrderItemRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateOrderItemRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderResponse"}}}}},"x-permission":[{"module":"1","action":"Modify"}]}},"/api/pdf/generate":{"post":{"tags":["PdfGenerator"],"summary":"Generates a PDF from HTML content and uploads it to blob storage","operationId":"GeneratePdfFromHtml","requestBody":{"description":"The HTML content and optional filename","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePdfFromHtmlCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/GeneratePdfFromHtmlCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/GeneratePdfFromHtmlCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}}}}}}},"/api/v1/pricelists":{"get":{"tags":["PriceLists"],"operationId":"GetPriceLists","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceListResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceListResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceListResponse"}}}}}},"x-permission":[{"module":"4","action":"View"}]},"post":{"tags":["PriceLists"],"operationId":"CreatePriceList","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePriceListCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreatePriceListCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreatePriceListCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/pricelists/{priceListId}":{"get":{"tags":["PriceLists"],"operationId":"GetPriceList","parameters":[{"name":"priceListId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]},"put":{"tags":["PriceLists"],"operationId":"UpdatePriceList","parameters":[{"name":"priceListId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePriceListCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdatePriceListCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdatePriceListCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"delete":{"tags":["PriceLists"],"operationId":"DeletePriceList","parameters":[{"name":"priceListId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/v1/pricelists/{priceListId}/items":{"post":{"tags":["PriceLists"],"operationId":"CreateItem","parameters":[{"name":"priceListId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePriceListItemCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreatePriceListItemCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreatePriceListItemCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListItemResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListItemResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListItemResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/pricelists/{priceListId}/items/{itemId}":{"put":{"tags":["PriceLists"],"operationId":"UpdateItem","parameters":[{"name":"priceListId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePriceListItemCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdatePriceListItemCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdatePriceListItemCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListItemResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListItemResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListItemResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"delete":{"tags":["PriceLists"],"operationId":"RemoveItem","parameters":[{"name":"priceListId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/v1/pricelists/{priceListId}/assignments":{"post":{"tags":["PriceLists"],"operationId":"AddAssignment","parameters":[{"name":"priceListId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddPriceListAssignmentCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddPriceListAssignmentCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddPriceListAssignmentCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListAssignmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListAssignmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceListAssignmentResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/pricelists/{priceListId}/assignments/{assignmentId}":{"delete":{"tags":["PriceLists"],"operationId":"RemoveAssignment","parameters":[{"name":"priceListId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"assignmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/v1/pricelists/resolve":{"get":{"tags":["PriceLists"],"summary":"Resolves the effective price for a product in a given context (channel / location /\r\ndelivery zone / customer group). Checks assigned price lists first (by priority), then\r\nfalls back to the product's price history. Returns 404 when neither source has a price.","operationId":"ResolvePrice","parameters":[{"name":"productId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"salesChannelId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"locationId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"deliveryZoneId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"customerGroupId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"customerId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"priceType","in":"query","description":"These values should not change since they are stored in the database as numbers.","schema":{"$ref":"#/components/schemas/PriceType"}},{"name":"asOf","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductPriceDetailsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductPriceDetailsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductPriceDetailsResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/products/groups/{groupId}":{"get":{"tags":["ProductGroups"],"operationId":"GetProductGroup","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]},"put":{"tags":["ProductGroups"],"operationId":"UpdateProductGroup","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductGroupCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateProductGroupCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateProductGroupCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"delete":{"tags":["ProductGroups"],"operationId":"DeleteProductGroup","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/v1/products/{parentProductId}/groups":{"post":{"tags":["ProductGroups"],"operationId":"CreateProductGroup","parameters":[{"name":"parentProductId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductGroupCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateProductGroupCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateProductGroupCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/products/groups/{groupId}/members":{"post":{"tags":["ProductGroups"],"operationId":"AddMember","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddProductGroupMemberCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddProductGroupMemberCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddProductGroupMemberCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductGroupResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/products/groups/{groupId}/members/{productId}":{"delete":{"tags":["ProductGroups"],"operationId":"RemoveMember","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/v1/integration/products":{"post":{"tags":["ProductIntegration"],"operationId":"CreateProduct","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductIntegrationCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateProductIntegrationCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateProductIntegrationCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductFamilyResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductFamilyResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductFamilyResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"put":{"tags":["ProductIntegration"],"operationId":"UpdateProduct","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductIntegrationCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateProductIntegrationCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateProductIntegrationCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/processes/{processId}":{"get":{"tags":["ProductionProcesses"],"operationId":"GetProductionProcess","parameters":[{"name":"processId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]},"put":{"tags":["ProductionProcesses"],"operationId":"UpdateProductionProcess","parameters":[{"name":"processId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductionProcessCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateProductionProcessCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateProductionProcessCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"delete":{"tags":["ProductionProcesses"],"operationId":"DeleteProductionProcess","parameters":[{"name":"processId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/v1/processes":{"post":{"tags":["ProductionProcesses"],"operationId":"CreateProductionProcess","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductionProcessCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateProductionProcessCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateProductionProcessCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/processes/{processId}/activate":{"post":{"tags":["ProductionProcesses"],"operationId":"ActivateProductionProcess","parameters":[{"name":"processId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductionProcessResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/Products":{"get":{"tags":["Products"],"operationId":"GetProducts","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]},"post":{"tags":["Products"],"operationId":"CreateProduct","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateProductRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateProductRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/Products/{productId}":{"get":{"tags":["Products"],"operationId":"GetProduct","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]},"put":{"tags":["Products"],"operationId":"UpdateProduct","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateProductRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateProductRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/Products/delete":{"post":{"tags":["Products"],"summary":"Bulk delete products handled as HTTP POST (action endpoint for bulk operations)","operationId":"BulkDeleteProducts","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeleteProductCommand"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeleteProductCommand"}}},"application/*+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeleteProductCommand"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Delete"}]}},"/api/v1/Products/{productId}/attachments":{"post":{"tags":["Products"],"summary":"Step 2 of file attachment: associates a previously uploaded file with this product.\r\nUpload the file first via POST /api/files/single, then pass the returned FileAttachment id here.","operationId":"AddProductFileAttachment","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/Products/{productId}/attachments/{attachmentId}":{"delete":{"tags":["Products"],"summary":"Removes an attachment entry (file or link) from this product. Pass the metadata\r\nattachment entry id, not the canonical file id. A file's blob row is left intact.","operationId":"RemoveProductFileAttachment","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/Products/default-geometry-fields":{"get":{"tags":["Products"],"operationId":"GetMetadataForBusiness","parameters":[{"name":"businessId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfSymbolicLocaleMetadata"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSymbolicLocaleMetadata"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSymbolicLocaleMetadata"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/sales-analytics/{productId}":{"get":{"tags":["Products"],"operationId":"GetSalesAnalytics","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductDetailSalesVolumeHistoryWrapper"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductDetailSalesVolumeHistoryWrapper"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductDetailSalesVolumeHistoryWrapper"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/traces":{"get":{"tags":["Products"],"summary":"Get product activity traces","operationId":"GetActivityTraces","parameters":[{"name":"productId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/bom-history":{"get":{"tags":["Products"],"summary":"Returns the cost-vs-selling margin time series for this product's active BOM.\r\nEach point represents the total BOM cost, selling price, and gross margin at a\r\ndistinct price-history date of the component products, plus today.","operationId":"GetProductBomHistory","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomMarginHistoryResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomMarginHistoryResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomMarginHistoryResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/bom":{"get":{"tags":["Products"],"summary":"Returns all BOMs for this product (ordered by revision number descending).","operationId":"GetProductBom","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfBomResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBomResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/bom/tree":{"get":{"tags":["Products"],"summary":"Returns the product's active BOM exploded into a fully-resolved nested tree with rolled-up cost.\r\nA product with no active BOM yields a single-node tree; an unknown product id is a 404.","operationId":"GetProductBomTree","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"asOfDate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"maxDepth","in":"query","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomTreeResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomTreeResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBomTreeResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/processes":{"get":{"tags":["Products"],"summary":"Returns all production processes for this product (ordered by revision number descending).","operationId":"GetProductProcesses","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductionProcessResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductionProcessResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductionProcessResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/shipments":{"get":{"tags":["Products"],"summary":"Returns the most recent shipments that contain the given product.","operationId":"GetProductShipments","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductShipmentResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/prices":{"post":{"tags":["Products"],"summary":"Appends a new price history entry to a product. Each call records a discrete history row;\r\nexisting entries are never mutated.","operationId":"AddProductPrice","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddProductPriceRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddProductPriceRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddProductPriceRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductPriceDetailsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductPriceDetailsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductPriceDetailsResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]},"get":{"tags":["Products"],"summary":"Returns the price history (newest first) for a product, optionally filtered by type and date range.\r\nFor a point-in-time lookup (\"price as of date X\") request a single page bounded by date,\r\ne.g. `?to=X&pageSize=1`; the current price is also exposed on the product response.","operationId":"GetProductPriceHistory","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"priceType","in":"query","description":"These values should not change since they are stored in the database as numbers.","schema":{"$ref":"#/components/schemas/PriceType"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductPriceDetailsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductPriceDetailsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfProductPriceDetailsResponse"}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/price-lists":{"get":{"tags":["Products"],"summary":"Returns every price list that holds an override for this product, with the scopes each list\r\napplies to. Live lists come first, then the cheapest override first. A product that no list\r\nprices returns an empty array — its default price applies everywhere.","operationId":"GetProductPriceLists","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductPriceListResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductPriceListResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductPriceListResponse"}}}}}},"x-permission":[{"module":"4","action":"View"}]}},"/api/v1/Products/{productId}/metadata":{"post":{"tags":["Products"],"summary":"Merges the provided key/value pairs into the product's free-form metadata dictionary.\r\nA non-null value adds or overwrites the key; a null value removes the key.","operationId":"AddProductMetadata","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"text/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/Products/{productId}/suppliers":{"get":{"tags":["Products"],"summary":"Returns every supplier linked to this product, primary first. A product with no supplier\r\nlink returns an empty array.","operationId":"GetProductSuppliers","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductSupplierResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductSupplierResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductSupplierResponse"}}}}}},"x-permission":[{"module":"4","action":"View"}]},"post":{"tags":["Products"],"summary":"Links a supplier to this product, or updates the existing link when the (product, supplier)\r\npair already exists. Setting `isPrimary` demotes the product's current primary link.\r\nThe primary link is what a new purchase-order line and a new purchase order default their\r\nprice and expected date from.","operationId":"UpsertProductSupplier","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertProductSupplierCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpsertProductSupplierCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpsertProductSupplierCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductSupplierResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductSupplierResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfProductSupplierResponse"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/Products/{productId}/suppliers/{supplierId}":{"delete":{"tags":["Products"],"summary":"Removes the link between this product and the given supplier.","operationId":"DeleteProductSupplier","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"supplierId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"4","action":"Modify"}]}},"/api/v1/purchase-orders":{"get":{"tags":["PurchaseOrders"],"operationId":"GetPurchaseOrders","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"supplierId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","description":"NOTE: Do not change the numeric assignment of values. The values are used in the database and should not be changed.","schema":{"$ref":"#/components/schemas/PurchaseOrderStatus"}},{"name":"destinationLocationId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"fromDate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"toDate","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfPurchaseOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfPurchaseOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfPurchaseOrderResponse"}}}}},"x-permission":[{"module":"13","action":"View"}]},"post":{"tags":["PurchaseOrders"],"operationId":"CreatePurchaseOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}}}}},"x-permission":[{"module":"13","action":"Modify"}]}},"/api/v1/purchase-orders/{purchaseOrderId}":{"get":{"tags":["PurchaseOrders"],"operationId":"GetPurchaseOrder","parameters":[{"name":"purchaseOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}}}}},"x-permission":[{"module":"13","action":"View"}]},"patch":{"tags":["PurchaseOrders"],"operationId":"PatchPurchaseOrder","parameters":[{"name":"purchaseOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchPurchaseOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/PatchPurchaseOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/PatchPurchaseOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}}}}},"x-permission":[{"module":"13","action":"Modify"}]}},"/api/v1/purchase-orders/{purchaseOrderId}/traces":{"get":{"tags":["PurchaseOrders"],"summary":"Get purchase order activity traces","operationId":"GetActivityTraces","parameters":[{"name":"purchaseOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}}}}},"x-permission":[{"module":"13","action":"View"}]}},"/api/v1/purchase-orders/{purchaseOrderId}/items":{"post":{"tags":["PurchaseOrders"],"operationId":"AddPurchaseOrderItem","parameters":[{"name":"purchaseOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderItemRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderItemRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderItemRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}}}}},"x-permission":[{"module":"13","action":"Modify"}]}},"/api/v1/purchase-orders/{purchaseOrderId}/items/{itemId}":{"delete":{"tags":["PurchaseOrders"],"operationId":"RemovePurchaseOrderItem","parameters":[{"name":"purchaseOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}}}}},"x-permission":[{"module":"13","action":"Modify"}]}},"/api/v1/purchase-orders/{purchaseOrderId}/shipments":{"post":{"tags":["PurchaseOrders"],"operationId":"CreatePurchaseOrderShipment","parameters":[{"name":"purchaseOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderShipmentCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderShipmentCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreatePurchaseOrderShipmentCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"13","action":"Modify"}]}},"/api/v1/purchase-orders/{purchaseOrderId}/receipts":{"post":{"tags":["PurchaseOrders"],"operationId":"ReceivePurchaseOrder","parameters":[{"name":"purchaseOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceivePurchaseOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/ReceivePurchaseOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ReceivePurchaseOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPurchaseOrderResponse"}}}}},"x-permission":[{"module":"13","action":"Modify"}]}},"/api/push-notification/subscription-token":{"get":{"tags":["PushNotification"],"operationId":"GetVapidToken","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}}}}}}},"/api/rates":{"get":{"tags":["Rates"],"summary":"Retrieve the pricing matrix (configured pricing) for the requested business","operationId":"GetConfiguredRates","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceMatrixResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceMatrixResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PriceMatrixResponse"}}}}}},"x-permission":[{"module":"2","action":"View"}]},"post":{"tags":["Rates"],"summary":"Create a new price matrix","operationId":"CreatePriceMatrix","requestBody":{"description":"The price matrix details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePriceMatrixCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreatePriceMatrixCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreatePriceMatrixCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceMatrixResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceMatrixResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceMatrixResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/rates/discounts":{"get":{"tags":["Rates"],"summary":"Retrieve the list of all discounts applied to price matrices for a business","operationId":"GetPricingDiscounts","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DiscountMatrixResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DiscountMatrixResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DiscountMatrixResponse"}}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/rates/{rateId}/discounts":{"post":{"tags":["Rates"],"summary":"Create a new discount for a price matrix","operationId":"CreateDiscountMatrix","parameters":[{"name":"rateId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The discount matrix details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDiscountMatrixCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateDiscountMatrixCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateDiscountMatrixCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDiscountMatrixResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDiscountMatrixResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDiscountMatrixResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/rates/{rateId}/discounts/{discountId}":{"put":{"tags":["Rates"],"summary":"Update an existing discount for a price matrix","operationId":"UpdateDiscountMatrix","parameters":[{"name":"rateId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"discountId","in":"path","description":"The discount matrix id","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The updated discount matrix details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDiscountMatrixCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateDiscountMatrixCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateDiscountMatrixCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfDiscountMatrixResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDiscountMatrixResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfDiscountMatrixResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]},"delete":{"tags":["Rates"],"summary":"Delete a price discount","operationId":"DeletePriceDiscount","parameters":[{"name":"rateId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"discountId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Delete"}]}},"/api/rates/{rateId}":{"put":{"tags":["Rates"],"summary":"Update an existing price matrix","operationId":"UpdatePriceMatrix","parameters":[{"name":"rateId","in":"path","description":"The price matrix id","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"The updated price matrix details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePriceMatrixCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdatePriceMatrixCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdatePriceMatrixCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceMatrixResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceMatrixResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPriceMatrixResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]},"delete":{"tags":["Rates"],"summary":"Delete a price matrix","operationId":"DeletePriceMatrix","parameters":[{"name":"rateId","in":"path","description":"","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Delete"}]}},"/api/v1/roles":{"get":{"tags":["Roles"],"summary":"Returns all roles for the current business.","operationId":"GetAllRoles","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleResponse"}}}}}},"x-permission":[{"module":"7","action":"View"}]},"post":{"tags":["Roles"],"summary":"Creates a new custom role for the current business.","operationId":"CreateRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateRoleCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateRoleCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}}}}},"x-permission":[{"module":"7","action":"Modify"}]}},"/api/v1/roles/{roleId}":{"patch":{"tags":["Roles"],"summary":"Partially updates a role: metadata (title, description, type, scope) and/or a full\r\npermission-matrix replace. All fields are optional; only supplied fields are applied.","operationId":"PatchRole","parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchRoleCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/PatchRoleCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/PatchRoleCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}}}}},"x-permission":[{"module":"7","action":"Modify"}]},"delete":{"tags":["Roles"],"summary":"Deletes a role. Returns 400 if the role is a system role.","operationId":"DeleteRole","parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"7","action":"Modify"}]},"get":{"tags":["Roles"],"summary":"Returns a single role, including its full permission matrix.","operationId":"GetRole","parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}}}}},"x-permission":[{"module":"7","action":"View"}]}},"/api/v1/roles/{roleId}/restore-defaults":{"post":{"tags":["Roles"],"summary":"Restores a system role's permission matrix to the seeded defaults. Only valid for\r\nsystem roles; the repository will throw for non-system roles with no matching default.","operationId":"RestoreRoleDefaults","parameters":[{"name":"roleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfRoleResponse"}}}}},"x-permission":[{"module":"7","action":"Modify"}]}},"/api/v1/SalesChannels":{"get":{"tags":["SalesChannels"],"operationId":"GetAllSalesChannels","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SalesChannelResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SalesChannelResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SalesChannelResponse"}}}}}},"x-permission":[{"module":"10","action":"View"}]}},"/api/v1/SalesChannels/{salesChannelId}":{"get":{"tags":["SalesChannels"],"operationId":"GetSalesChannel","parameters":[{"name":"salesChannelId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfSalesChannelResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSalesChannelResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSalesChannelResponse"}}}}},"x-permission":[{"module":"10","action":"View"}]}},"/api/v1/insights/sales/history":{"get":{"tags":["SalesInsights"],"summary":"Returns the daily order sales history for the business. With no from\r\nand no to, this keeps the trailing six-month default of\r\nDispatch.Application.Handlers.Queries.Dashboard.GetOrderSalesHistoryQuery. With at least one bound, this resolves the period\r\nwith M:Dispatch.Application.Contracts.Analytics.InsightPeriod.Resolve(System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.Nullable{System.DateTime}).","operationId":"GetSalesHistory","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSalesVolumeHistoryWrapperResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSalesVolumeHistoryWrapperResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfOrderSalesVolumeHistoryWrapperResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/sales/by-channel":{"get":{"tags":["SalesInsights"],"summary":"Returns aggregated sales insight metrics for every sales channel in the business over the\r\nperiod. Defaults to the current calendar month when from/to\r\nare not supplied. Every non-deleted sales channel gets a row, with zeros and empty lists\r\nwhen it has no order in the period.","operationId":"GetSalesByChannel","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfChannelSalesInsightResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfChannelSalesInsightResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfChannelSalesInsightResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/sales/by-location":{"get":{"tags":["SalesInsights"],"summary":"Returns sales metrics for every location and every sales channel in the business, one\r\nbucket for each calendar month that the period touches, plus a set of heatmap points for\r\nonline and marketplace orders. Defaults to the current calendar month when\r\nfrom/to are not supplied. Every non-deleted location\r\nand every non-deleted sales channel gets a row in every bucket, with zeros when it has no\r\norder in that month.","operationId":"GetSalesByLocation","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfLocationSalesInsightResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfLocationSalesInsightResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfLocationSalesInsightResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/schedule/events":{"get":{"tags":["Schedule"],"operationId":"GetScheduleEvents","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"mine","in":"query","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfScheduleEventOccurrenceResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfScheduleEventOccurrenceResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfScheduleEventOccurrenceResponse"}}}}},"x-permission":[{"module":"16","action":"View"}]},"post":{"tags":["Schedule"],"operationId":"CreateScheduleEvent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScheduleEventCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateScheduleEventCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateScheduleEventCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}}}}},"x-permission":[{"module":"16","action":"Modify"}]}},"/api/v1/schedule/events/{scheduleEventId}":{"get":{"tags":["Schedule"],"operationId":"GetScheduleEvent","parameters":[{"name":"scheduleEventId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}}}}},"x-permission":[{"module":"16","action":"View"}]},"put":{"tags":["Schedule"],"operationId":"UpdateScheduleEvent","parameters":[{"name":"scheduleEventId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScheduleEventCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateScheduleEventCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateScheduleEventCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfScheduleEventResponse"}}}}},"x-permission":[{"module":"16","action":"Modify"}]},"delete":{"tags":["Schedule"],"operationId":"DeleteScheduleEvent","parameters":[{"name":"scheduleEventId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"scope","in":"query","description":"How far a schedule event delete reaches. Not persisted — a command parameter only.","schema":{"$ref":"#/components/schemas/ScheduleEventDeleteScope"}},{"name":"occurrenceDate","in":"query","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"16","action":"Delete"}]}},"/api/v1/shipments/overview":{"get":{"tags":["Shipment"],"operationId":"GetShipmentOverview","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentOverview"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentOverview"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentOverview"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/shipments/{shipmentId}":{"put":{"tags":["Shipment"],"operationId":"UpdateShipment","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateShipmentCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateShipmentCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateShipmentCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]},"patch":{"tags":["Shipment"],"summary":"Partially update a shipment's status and/or pickup/delivery/departure dates. Only\r\nfields present (non-null) in the body are applied. Absorbs the former dates-only\r\nendpoint; `Status` is a raw override (same power as the full PUT update).","operationId":"PatchShipment","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchShipmentCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/PatchShipmentCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/PatchShipmentCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]},"delete":{"tags":["Shipment"],"operationId":"DeleteShipment","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Delete"}]},"get":{"tags":["Shipment"],"operationId":"GetShipment","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/shipments":{"post":{"tags":["Shipment"],"operationId":"CreateShipment","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShipmentCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateShipmentCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateShipmentCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]},"get":{"tags":["Shipment"],"operationId":"GetShipments","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"from","in":"query","schema":{"type":"string"}},{"name":"to","in":"query","schema":{"type":"string"}},{"name":"customerId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/shipments/unassigned":{"get":{"tags":["Shipment"],"operationId":"GetUnassignedShipments","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/shipments/delete":{"post":{"tags":["Shipment"],"summary":"Bulk delete shipments handled as HTTP POST (action endpoint for bulk operations)","operationId":"BulkDeleteShipments","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeleteShipmentCommand"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeleteShipmentCommand"}}},"application/*+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeleteShipmentCommand"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Delete"}]}},"/api/v1/shipments/{shipmentId}/traces":{"get":{"tags":["Shipment"],"operationId":"GetShipmentTraces","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentTraceResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentTraceResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentTraceResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/shipments/{shipmentId}/collect":{"post":{"tags":["Shipment"],"summary":"Once a carrier has been assigned to a shipment, a collection can be requested by scheduling\r\na collection date.","operationId":"RequestShipmentCollection","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestShipmentCollectionRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/RequestShipmentCollectionRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/RequestShipmentCollectionRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/comments":{"get":{"tags":["Shipment"],"summary":"Returns the user-authored comments on this shipment, oldest first.","operationId":"GetShipmentComments","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentCommentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentCommentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentCommentResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]},"post":{"tags":["Shipment"],"summary":"Adds a comment to the shipment, attributed to the authenticated user.","operationId":"AddShipmentComment","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShipmentCommentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ShipmentCommentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ShipmentCommentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentCommentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentCommentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentCommentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/comments/{commentId}":{"delete":{"tags":["Shipment"],"summary":"Deletes a comment from the shipment.","operationId":"DeleteShipmentComment","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/quotations":{"get":{"tags":["Shipment"],"summary":"Retrieves all quotations for a shipment.","operationId":"GetShipmentQuotations","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentQuotationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentQuotationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfShipmentQuotationResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/v1/shipments/{shipmentId}/quotations/{quotationId}":{"get":{"tags":["Shipment"],"summary":"Retrieves one quotation of a shipment.","operationId":"GetShipmentQuotation","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"quotationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentQuotationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentQuotationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentQuotationResponse"}}}}},"x-permission":[{"module":"2","action":"View"}]},"delete":{"tags":["Shipment"],"summary":"Deletes one quotation of a shipment. The accepted quotation cannot be deleted.","operationId":"DeleteShipmentQuotation","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"quotationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/quotations/{quotationId}/accept":{"post":{"tags":["Shipment"],"summary":"Accepts one quotation of a shipment. Any other accepted quotation of the same shipment is\r\nreset, so a shipment never carries two accepted prices.","operationId":"AcceptShipmentQuotation","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"quotationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]},"delete":{"tags":["Shipment"],"summary":"Withdraws the acceptance of a quotation. The quotation stays, and the shipment carries no\r\naccepted price until one is accepted again.","operationId":"WithdrawShipmentQuotationAcceptance","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"quotationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/quotations/refresh":{"post":{"tags":["Shipment"],"summary":"Clears the quotations of a shipment and asks the carriers to quote it again. The new prices\r\narrive through the integration callback, so the response returns the shipment, not the\r\nquotations.","operationId":"RefreshShipmentQuotations","parameters":[{"name":"shipmentId","in":"path","description":"The shipment GUID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"fulfillmentProviderId","in":"query","description":"Limits the request to one carrier","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/waypoints":{"post":{"tags":["Shipment"],"operationId":"CreateShipmentWaypoint","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShipmentWaypointCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateShipmentWaypointCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateShipmentWaypointCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentWaypointResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentWaypointResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentWaypointResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/waypoints/{waypointId}":{"delete":{"tags":["Shipment"],"operationId":"DeleteShipmentWaypoint","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"waypointId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentWaypointResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentWaypointResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentWaypointResponse"}}}}},"x-permission":[{"module":"2","action":"Delete"}]}},"/api/v1/shipments/{shipmentId}/attachments":{"post":{"tags":["Shipment"],"summary":"Step 2 of file attachment: associates a previously uploaded file with this shipment.\r\nUpload the file first via POST /api/files/single, then pass the returned FileAttachment id here.","operationId":"AddShipmentFileAttachment","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/attachments/{attachmentId}":{"delete":{"tags":["Shipment"],"summary":"Removes a previously associated attachment (file or link) from this shipment by its metadata\r\nattachment entry id. For file-backed entries the underlying blob row is left intact.","operationId":"RemoveShipmentFileAttachment","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/shipments/{shipmentId}/metadata":{"post":{"tags":["Shipment"],"summary":"Merges the provided key/value pairs into the shipment's free-form metadata dictionary.\r\nA non-null value adds or overwrites the key; a null value removes the key.","operationId":"AddShipmentMetadata","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"text/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}},"application/*+json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/integration/shipments/quotations":{"post":{"tags":["ShipmentIntegration"],"operationId":"CreateShipmentQuotation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShipmentQuotationIntegrationCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateShipmentQuotationIntegrationCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateShipmentQuotationIntegrationCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentQuotationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentQuotationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfShipmentQuotationResponse"}}}}},"x-permission":[{"module":"2","action":"Modify"}]}},"/api/v1/insights/suppliers":{"get":{"tags":["SupplierInsights"],"summary":"Returns aggregated purchase-order performance metrics for every supplier in the business,\r\nin one round trip. Defaults to the trailing 90 days when from/\r\nto are not supplied.","operationId":"GetAllSupplierInsights","parameters":[{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfSupplierMetricsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfSupplierMetricsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfSupplierMetricsResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/insights/suppliers/{supplierId}":{"get":{"tags":["SupplierInsights"],"summary":"Returns aggregated purchase-order performance metrics for one supplier. Defaults to the\r\ntrailing 90 days when from/to are not supplied.","operationId":"GetSupplierInsight","parameters":[{"name":"supplierId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierMetricsResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierMetricsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierMetricsResponse"}}}}},"x-permission":[{"module":"11","action":"View"}]}},"/api/v1/suppliers":{"get":{"tags":["Suppliers"],"operationId":"GetSuppliers","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfSupplierResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfSupplierResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfSupplierResponse"}}}}},"x-permission":[{"module":"12","action":"View"}]},"post":{"tags":["Suppliers"],"operationId":"CreateSupplier","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSupplierCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateSupplierCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateSupplierCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}}}}},"x-permission":[{"module":"12","action":"Modify"}]}},"/api/v1/suppliers/{supplierId}":{"get":{"tags":["Suppliers"],"operationId":"GetSupplier","parameters":[{"name":"supplierId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}}}}},"x-permission":[{"module":"12","action":"View"}]},"put":{"tags":["Suppliers"],"operationId":"UpdateSupplier","parameters":[{"name":"supplierId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSupplierCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateSupplierCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateSupplierCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfSupplierResponse"}}}}},"x-permission":[{"module":"12","action":"Modify"}]},"delete":{"tags":["Suppliers"],"operationId":"DeleteSupplier","parameters":[{"name":"supplierId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"12","action":"Delete"}]}},"/api/v1/teams":{"get":{"tags":["Teams"],"operationId":"GetTeams","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"isEnabled","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfTeamResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfTeamResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfTeamResponse"}}}}},"x-permission":[{"module":"7","action":"View"}]},"post":{"tags":["Teams"],"operationId":"CreateTeam","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeamCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateTeamCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateTeamCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}}}}},"x-permission":[{"module":"7","action":"Modify"}]}},"/api/v1/teams/{teamId}":{"get":{"tags":["Teams"],"operationId":"GetTeam","parameters":[{"name":"teamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}}}}},"x-permission":[{"module":"7","action":"View"}]},"put":{"tags":["Teams"],"operationId":"UpdateTeam","parameters":[{"name":"teamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTeamCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateTeamCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateTeamCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTeamResponse"}}}}},"x-permission":[{"module":"7","action":"Modify"}]},"delete":{"tags":["Teams"],"operationId":"DeleteTeam","parameters":[{"name":"teamId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"7","action":"Delete"}]}},"/api/v1/transfer-orders":{"get":{"tags":["TransferOrders"],"operationId":"GetTransferOrders","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"originLocationId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"destinationLocationId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","description":"NOTE: Do not change the numeric assignment of values. The values are used in the database and should not be changed.","schema":{"$ref":"#/components/schemas/TransferOrderStatus"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfTransferOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfTransferOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfTransferOrderResponse"}}}}},"x-permission":[{"module":"15","action":"View"}]},"post":{"tags":["TransferOrders"],"summary":"Creates a transfer order as Draft (default — a direct DC-to-DC rebalance not yet approved)\r\nor Requested (a replenishment request from the receiving side).","operationId":"CreateTransferOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTransferOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateTransferOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateTransferOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}}}}},"x-permission":[{"module":"15","action":"Modify"}]}},"/api/v1/transfer-orders/{transferOrderId}":{"get":{"tags":["TransferOrders"],"operationId":"GetTransferOrder","parameters":[{"name":"transferOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}}}}},"x-permission":[{"module":"15","action":"View"}]},"patch":{"tags":["TransferOrders"],"summary":"Partial update of status (guarded transitions) and editable header fields.","operationId":"PatchTransferOrder","parameters":[{"name":"transferOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchTransferOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/PatchTransferOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/PatchTransferOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}}}}},"x-permission":[{"module":"15","action":"Modify"}]}},"/api/v1/transfer-orders/{transferOrderId}/traces":{"get":{"tags":["TransferOrders"],"summary":"Get transfer order activity traces","operationId":"GetActivityTraces","parameters":[{"name":"transferOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfActivityTrace"}}}}},"x-permission":[{"module":"15","action":"View"}]}},"/api/v1/transfer-orders/{transferOrderId}/dispatch":{"post":{"tags":["TransferOrders"],"summary":"Dispatches an Approved transfer order: TransferOut at the origin, quantity_in_transit\r\nincremented at the destination.","operationId":"DispatchTransferOrder","parameters":[{"name":"transferOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchTransferOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/DispatchTransferOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/DispatchTransferOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}}}}},"x-permission":[{"module":"15","action":"Modify"}]}},"/api/v1/transfer-orders/{transferOrderId}/receipts":{"post":{"tags":["TransferOrders"],"summary":"Receives some or all of an in-transit transfer order: TransferIn at the destination,\r\nquantity_in_transit decremented by the same amount.","operationId":"ReceiveTransferOrder","parameters":[{"name":"transferOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceiveTransferOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/ReceiveTransferOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ReceiveTransferOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfTransferOrderResponse"}}}}},"x-permission":[{"module":"15","action":"Modify"}]}},"/api/Triggers/{entityType}":{"get":{"tags":["Triggers"],"operationId":"GetWorkflowTriggers","parameters":[{"name":"entityType","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DispatchEntityType"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowTriggerResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowTriggerResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowTriggerResponse"}}}}}},"x-permission":[{"module":"9","action":"View"}]}},"/api/user/my-account":{"get":{"tags":["User"],"summary":"The portal bootstrap endpoint: resolvable from a valid JWT and the\r\nresolved tenant alone, with no `X-Business-Id` header required. Returns the profile plus\r\nthe businesses the user can access in this org, so the client can then pick a business and\r\nattach the header on every following request. Also mounted at `GET /api/me`.","operationId":"MyAccount","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}}}}}}},"/api/me":{"get":{"tags":["User"],"summary":"The portal bootstrap endpoint: resolvable from a valid JWT and the\r\nresolved tenant alone, with no `X-Business-Id` header required. Returns the profile plus\r\nthe businesses the user can access in this org, so the client can then pick a business and\r\nattach the header on every following request. Also mounted at `GET /api/me`.","operationId":"MyAccount","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfPrimitiveUserAccountResponse"}}}}}}},"/api/user":{"put":{"tags":["User"],"operationId":"UpdateDetails","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserProfileRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateUserProfileRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateUserProfileRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}}}},"/api/vehicle":{"post":{"tags":["Vehicle"],"operationId":"CreateVehicle","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVehicleCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateVehicleCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateVehicleCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}}}}},"x-permission":[{"module":"5","action":"Modify"}]}},"/api/vehicle/{vehicleId}":{"put":{"tags":["Vehicle"],"operationId":"UpdateVehicle","parameters":[{"name":"vehicleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVehicleCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateVehicleCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateVehicleCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}}}}},"x-permission":[{"module":"5","action":"Modify"}]},"delete":{"tags":["Vehicle"],"operationId":"DeleteVehicle","parameters":[{"name":"vehicleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"5","action":"Delete"}]},"get":{"tags":["Vehicle"],"operationId":"GetVehicle","parameters":[{"name":"vehicleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleResponse"}}}}},"x-permission":[{"module":"5","action":"View"}]}},"/api/vehicle/upload":{"post":{"tags":["Vehicle"],"operationId":"UploadFile","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfString"}}}}},"x-permission":[{"module":"5","action":"Modify"}]}},"/api/vehicle/confirm-upload":{"post":{"tags":["Vehicle"],"operationId":"ConfirmUpload","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmVehicleUploadRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ConfirmVehicleUploadRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ConfirmVehicleUploadRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"5","action":"Modify"}]}},"/api/vehicles":{"get":{"tags":["Vehicle"],"operationId":"GetAllVehiclesForCurrentBusinessContext","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfVehicleResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfVehicleResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfVehicleResponse"}}}}},"x-permission":[{"module":"5","action":"View"}]}},"/api/vehicle/location/{vehicleId}":{"get":{"tags":["Vehicle"],"operationId":"GetVehicleLocation","parameters":[{"name":"vehicleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","schema":{"type":"string"}},{"name":"to","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleLocationResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleLocationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleLocationResponse"}}}}},"x-permission":[{"module":"5","action":"View"}]}},"/api/tracking/devices":{"get":{"tags":["Vehicle"],"operationId":"GetAllDevices","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfTrackingDeviceResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfTrackingDeviceResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfTrackingDeviceResponse"}}}}},"x-permission":[{"module":"5","action":"View"}]}},"/api/tracking/add-device":{"post":{"tags":["Vehicle"],"operationId":"CreateAndLinkVehicleTracker","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVehicleTrackerCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateVehicleTrackerCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateVehicleTrackerCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleTrackerResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleTrackerResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfVehicleTrackerResponse"}}}}},"x-permission":[{"module":"5","action":"Modify"}]}},"/api/vehicle/travel-history/{vehicleId}":{"get":{"tags":["Vehicle"],"operationId":"GetTravelHistory","parameters":[{"name":"vehicleId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfVehicleTravelHistory"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfVehicleTravelHistory"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfVehicleTravelHistory"}}}}},"x-permission":[{"module":"5","action":"View"}]}},"/api/waybills":{"get":{"tags":["Waybill"],"operationId":"FetchDriverWaybills","responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfWaybillDto"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWaybillDto"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWaybillDto"}}}}},"x-permission":[{"module":"2","action":"View"}]}},"/api/waybill/download/{shipmentId}":{"get":{"tags":["Waybill"],"operationId":"DownloadWaybill","parameters":[{"name":"shipmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"inline","in":"query","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK"}},"x-permission":[{"module":"2","action":"View"}]}},"/api/workflows/resume-workflow":{"post":{"tags":["Workflow"],"operationId":"ResumeWorkflow","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeWorkflowRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ResumeWorkflowRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ResumeWorkflowRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}}}},"/api/workflows/{entityType}/configured":{"get":{"tags":["Workflow"],"operationId":"GetConfiguredWorkflows","parameters":[{"name":"entityType","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DispatchEntityType"}},{"name":"managed","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessIntegrationProviderWorkflowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessIntegrationProviderWorkflowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessIntegrationProviderWorkflowResponse"}}}}},"x-permission":[{"module":"9","action":"View"}]}},"/api/workflows/configured/{workflowId}":{"patch":{"tags":["Workflow"],"operationId":"PatchConfiguredWorkflow","parameters":[{"name":"workflowId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchConfiguredWorkflowRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/PatchConfiguredWorkflowRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/PatchConfiguredWorkflowRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}}}}},"x-permission":[{"module":"9","action":"Modify"}]},"put":{"tags":["Workflow"],"operationId":"UpdateConfiguredWorkflow","parameters":[{"name":"workflowId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConfiguredWorkflowRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateConfiguredWorkflowRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateConfiguredWorkflowRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}}}}},"x-permission":[{"module":"9","action":"Modify"}]},"delete":{"tags":["Workflow"],"operationId":"DeleteConfiguredWorkflow","parameters":[{"name":"workflowId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}}}}},"x-permission":[{"module":"9","action":"Delete"}]}},"/api/workflows/{entityType}/configure-positions":{"post":{"tags":["Workflow"],"operationId":"ConfigureWorkflowPosition","parameters":[{"name":"entityType","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DispatchEntityType"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigureIntegrationProviderWorkflowPositionCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/ConfigureIntegrationProviderWorkflowPositionCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ConfigureIntegrationProviderWorkflowPositionCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessIntegrationProviderWorkflowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessIntegrationProviderWorkflowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfBusinessIntegrationProviderWorkflowResponse"}}}}},"x-permission":[{"module":"9","action":"Modify"}]}},"/api/workflows/configure":{"post":{"tags":["Workflow"],"operationId":"ConfigureWorkflow","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigureWorkflowCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/ConfigureWorkflowCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ConfigureWorkflowCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBusinessIntegrationProviderWorkflowResponse"}}}}},"x-permission":[{"module":"9","action":"Modify"}]}},"/api/workflows/templates/{workflowId}":{"get":{"tags":["Workflow"],"summary":"Get's the list of templates configured for the provided workflow id","operationId":"GetWorkflowTemplate","parameters":[{"name":"workflowId","in":"path","description":"The workflow (trigger) id","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationProviderWorkflowTemplateResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationProviderWorkflowTemplateResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationProviderWorkflowTemplateResponse"}}}}}},"x-permission":[{"module":"9","action":"View"}]}},"/api/workflows/{entityType}/actions":{"get":{"tags":["Workflow"],"operationId":"GetActionableWorkflows","parameters":[{"name":"entityType","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DispatchEntityType"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExecutableIntegrationProviderWorkflowResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExecutableIntegrationProviderWorkflowResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExecutableIntegrationProviderWorkflowResponse"}}}}}},"x-permission":[{"module":"9","action":"View"}]}},"/api/workflows/{entityType}/actions/{actionId}":{"post":{"tags":["Workflow"],"operationId":"ExecuteAction","parameters":[{"name":"entityType","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DispatchEntityType"}},{"name":"actionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteWorkflowActionRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/ExecuteWorkflowActionRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/ExecuteWorkflowActionRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfExecuteWorkflowActionResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfExecuteWorkflowActionResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfExecuteWorkflowActionResponse"}}}}},"x-permission":[{"module":"9","action":"View"}]}},"/api/v1/work-orders":{"get":{"tags":["WorkOrders"],"operationId":"GetWorkOrders","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"productId","in":"query","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","description":"These values should not change since they are stored in the database as a native PG enum.\r\nLifecycle of a work order (an as-run factory record).","schema":{"$ref":"#/components/schemas/WorkOrderStatus"}},{"name":"fromDate","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"toDate","in":"query","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"View"}]},"post":{"tags":["WorkOrders"],"operationId":"CreateWorkOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateWorkOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateWorkOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}":{"get":{"tags":["WorkOrders"],"operationId":"GetWorkOrder","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"View"}]},"put":{"tags":["WorkOrders"],"operationId":"UpdateWorkOrder","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/revisions":{"get":{"tags":["WorkOrders"],"operationId":"GetWorkOrderRevisions","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderRevisionResponse"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderRevisionResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderRevisionResponse"}}}}}},"x-permission":[{"module":"14","action":"View"}]}},"/api/v1/work-orders/{workOrderId}/start":{"post":{"tags":["WorkOrders"],"operationId":"StartWorkOrder","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/steps":{"post":{"tags":["WorkOrders"],"operationId":"AddWorkOrderStep","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkOrderStepCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddWorkOrderStepCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddWorkOrderStepCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/steps/{stepId}":{"delete":{"tags":["WorkOrders"],"operationId":"DeleteWorkOrderStep","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"stepId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]},"put":{"tags":["WorkOrders"],"operationId":"UpdateWorkOrderStep","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"stepId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderStepCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderStepCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderStepCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/complete":{"post":{"tags":["WorkOrders"],"operationId":"CompleteWorkOrder","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteWorkOrderCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CompleteWorkOrderCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CompleteWorkOrderCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/cancel":{"post":{"tags":["WorkOrders"],"operationId":"CancelWorkOrder","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/attachments":{"post":{"tags":["WorkOrders"],"summary":"Step 2 of file attachment: associates a previously uploaded file with this work order.\r\nUpload the file first via POST /api/files/single, then pass the returned FileAttachment id here.","operationId":"AddWorkOrderFileAttachment","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddFileAttachmentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/attachments/{attachmentId}":{"delete":{"tags":["WorkOrders"],"summary":"Removes a previously associated attachment (file or link) from this work order by its\r\nmetadata attachment entry id. For file-backed entries the underlying blob row is left intact.","operationId":"RemoveWorkOrderFileAttachment","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/traces":{"post":{"tags":["WorkOrders"],"summary":"Records a manual activity trace against the work order. The four lifecycle points (create,\r\nstart, complete, cancel) already write their own trace automatically.","operationId":"AddWorkOrderTrace","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/AddActivityTraceRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/comments":{"get":{"tags":["WorkOrders"],"summary":"Returns the user-authored comments on this work order, oldest first.","operationId":"GetWorkOrderComments","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderCommentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderCommentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderCommentResponse"}}}}},"x-permission":[{"module":"14","action":"View"}]},"post":{"tags":["WorkOrders"],"summary":"Adds a comment to the work order, attributed to the authenticated user.","operationId":"AddWorkOrderComment","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkOrderCommentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/WorkOrderCommentRequest"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/WorkOrderCommentRequest"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderCommentResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderCommentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderCommentResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-orders/{workOrderId}/comments/{commentId}":{"delete":{"tags":["WorkOrders"],"summary":"Deletes a comment from the work order.","operationId":"DeleteWorkOrderComment","parameters":[{"name":"workOrderId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-order-templates":{"get":{"tags":["WorkOrderTemplates"],"operationId":"GetWorkOrderTemplates","parameters":[{"name":"Page","in":"query","schema":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},{"name":"PageSize","in":"query","schema":{"maximum":100,"minimum":1,"type":"integer","format":"int32"}},{"name":"$orderby","in":"query","description":"Example: \"created_at desc\" or \"name asc\"","schema":{"type":"string"}},{"name":"$filter","in":"query","description":"Apply a ODATA style filter to the query to add a fixed constraint.\r\nFor example, if you want to filter by the creation date, you would set the filter to \"created_at ge 2022-01-01\".\r\nOr if you want to filter by a specific status, you would set the filter to \"status eq 'active'\".","schema":{"type":"string"}},{"name":"$search","in":"query","description":"Provide a search value which would inherit the 'CONTAINS' behaviour.","schema":{"type":"string"}},{"name":"productId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderTemplateResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderTemplateResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/PagedResultOfWorkOrderTemplateResponse"}}}}},"x-permission":[{"module":"14","action":"View"}]},"post":{"tags":["WorkOrderTemplates"],"operationId":"CreateWorkOrderTemplate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkOrderTemplateCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateWorkOrderTemplateCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/CreateWorkOrderTemplateCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]}},"/api/v1/work-order-templates/{templateId}":{"get":{"tags":["WorkOrderTemplates"],"operationId":"GetWorkOrderTemplate","parameters":[{"name":"templateId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}}}}},"x-permission":[{"module":"14","action":"View"}]},"put":{"tags":["WorkOrderTemplates"],"operationId":"UpdateWorkOrderTemplate","parameters":[{"name":"templateId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderTemplateCommand"}},"text/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderTemplateCommand"}},"application/*+json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderTemplateCommand"}}}},"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfWorkOrderTemplateResponse"}}}}},"x-permission":[{"module":"14","action":"Modify"}]},"delete":{"tags":["WorkOrderTemplates"],"operationId":"DeleteWorkOrderTemplate","parameters":[{"name":"templateId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"application/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}},"text/json":{"schema":{"$ref":"#/components/schemas/SingleResultOfBoolean"}}}}},"x-permission":[{"module":"14","action":"Delete"}]}}},"components":{"schemas":{"ActionMessage":{"type":"object","properties":{"title":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"level":{"$ref":"#/components/schemas/NotificationLevel"},"icon":{"$ref":"#/components/schemas/MdiIcon"},"code":{"type":"string","description":"The Notification code / Suggestion code for this suggestion","nullable":true}},"additionalProperties":false,"description":"Action messages surface to the API and provide more detailed user feedback for handled exceptions or errors."},"ActivateIntegrationProviderCommand":{"type":"object","properties":{"configuredProviderId":{"type":"string","format":"uuid"},"activationValues":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"ActivityTrace":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"activityType":{"$ref":"#/components/schemas/ActivityType"},"userId":{"type":"string","format":"uuid","nullable":true},"code":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"source":{"type":"string","nullable":true},"actionLink":{"type":"string","nullable":true},"level":{"$ref":"#/components/schemas/NotificationLevel"},"dateOfActivity":{"type":"string","format":"date-time"},"isDashboardOnly":{"type":"boolean"},"icon":{"$ref":"#/components/schemas/MdiIcon"}},"additionalProperties":false,"description":"An integration trace stores information about changes to specific entities in the system\r\nThese do not generally surface to the database put are passed around between services to stack errors and notifications.\r\nRefer to Dispatch.Application.Composite.ActionMessage. An activity trace becomes an action message once the response to the client is sent."},"ActivityType":{"enum":["System","User"],"type":"string"},"AddActivityTraceRequest":{"required":["message","title"],"type":"object","properties":{"title":{"minLength":1,"type":"string"},"message":{"minLength":1,"type":"string"},"code":{"type":"string","nullable":true},"source":{"type":"string","nullable":true},"actionLink":{"type":"string","nullable":true},"level":{"$ref":"#/components/schemas/NotificationLevel"},"icon":{"$ref":"#/components/schemas/MdiIcon"}},"additionalProperties":false},"AddBomLineItemCommand":{"type":"object","properties":{"bomId":{"type":"string","format":"uuid"},"componentProductId":{"type":"string","format":"uuid"},"quantityRequired":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"scrapFactorPercent":{"type":"number","format":"double"},"sortOrder":{"type":"integer","format":"int32","nullable":true},"notes":{"type":"string","nullable":true}},"additionalProperties":false},"AddFileAttachmentRequest":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/MetadataAttachmentType"},"fileId":{"type":"string","description":"Guid of a `business_file_attachments` row. Required when Dispatch.Application.Contracts.Request.Shared.AddFileAttachmentRequest.Type is `File`.","format":"uuid","nullable":true},"title":{"type":"string","description":"Required when Dispatch.Application.Contracts.Request.Shared.AddFileAttachmentRequest.Type is `Link`. Ignored for `File`.","nullable":true},"url":{"type":"string","description":"Required when Dispatch.Application.Contracts.Request.Shared.AddFileAttachmentRequest.Type is `Link`. Ignored for `File`.","nullable":true},"description":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Adds an attachment to an entity's metadata attachment collection. Two shapes, discriminated by\r\nDispatch.Application.Contracts.Request.Shared.AddFileAttachmentRequest.Type:\r\n<list type=\"bullet\"><item>Dispatch.Application.Enums.Shared.MetadataAttachmentType.File (default) — step 2 of file attachment: Dispatch.Application.Contracts.Request.Shared.AddFileAttachmentRequest.FileId\r\nis required and refers to a `business_file_attachments` row produced by\r\n`POST /api/files/single`. Title, file URL and content type are resolved server-side from that row.</item><item>Dispatch.Application.Enums.Shared.MetadataAttachmentType.Link — a bare external link with no backing file row.\r\nDispatch.Application.Contracts.Request.Shared.AddFileAttachmentRequest.Title and Dispatch.Application.Contracts.Request.Shared.AddFileAttachmentRequest.Url are required and taken as-is from the request;\r\n`FileAttachmentId` on the resulting metadata entry stays `Guid.Empty`.</item></list>\r\nPer-type required fields are enforced by the handler (conditional requireds can't be expressed via\r\ndata annotations alone), which returns a 400 via Dispatch.Application.Exceptions.BadRequestException\r\non violation."},"AddPriceListAssignmentCommand":{"type":"object","properties":{"priceListId":{"type":"string","format":"uuid"},"scopeType":{"$ref":"#/components/schemas/PriceListScopeType"},"scopeId":{"type":"string","format":"uuid"},"priority":{"type":"integer","format":"int32"}},"additionalProperties":false},"AddProductGroupMemberCommand":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid","nullable":true},"newProduct":{"$ref":"#/components/schemas/CreateProductRequest"},"optionValues":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"position":{"type":"integer","format":"int32","nullable":true}},"additionalProperties":false},"AddProductPriceRequest":{"type":"object","properties":{"subTotal":{"minimum":0,"type":"number","format":"double"},"totalPrice":{"minimum":0,"type":"number","format":"double"},"totalTax":{"minimum":0,"type":"number","format":"double"},"totalDiscount":{"minimum":0,"type":"number","format":"double"},"discount":{"minimum":0,"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxIncluded":{"type":"boolean"},"taxRate":{"maximum":100,"minimum":0,"type":"number","format":"double"},"taxType":{"$ref":"#/components/schemas/TaxType"},"priceType":{"$ref":"#/components/schemas/PriceType"},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"effectiveDate":{"type":"string","description":"When this price should take effect. Defaults to now.","format":"date-time","nullable":true},"notes":{"type":"string","nullable":true},"priceUnit":{"$ref":"#/components/schemas/UnitOfMeasure"},"pricePackQuantity":{"minimum":0.0001,"type":"number","description":"The pack size this price covers. Per-unit price = TotalPrice / PricePackQuantity.\r\nDefaults to 1.","format":"double"}},"additionalProperties":false,"description":"Payload for appending a single price history entry to a product or variant.\r\nDistinct from Dispatch.Application.Contracts.Request.Products.CreateProductPriceRequest, which represents the\r\ninitial price seeded as part of product creation."},"AddShipmentToDispatchDto":{"required":["shipmentId"],"type":"object","properties":{"shipmentId":{"type":"string","format":"uuid"}},"additionalProperties":false},"AddWorkOrderStepCommand":{"type":"object","properties":{"workOrderId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"instructions":{"type":"string","description":"Rich-text (HTML) instructions entered by a person. Not sanitized server-side.","nullable":true},"position":{"type":"integer","description":"The 1-based step number the new step should take. Every existing step at or after this\r\nposition moves one place later. Omit to append the step at the end.","format":"int32","nullable":true},"assignedToUserId":{"type":"string","description":"The user who should carry out this step. Optional; null leaves it unassigned.","format":"uuid","nullable":true},"requiresQualityCheck":{"type":"boolean","description":"Marks the new step as a quality checkpoint. Defaults to false — a new step never starts\r\nwith a recorded result."},"changeNote":{"type":"string","description":"Optional note describing the change, stored on the revision row it creates.","nullable":true}},"additionalProperties":false,"description":"Adds a step to a work order that is still Planned. The new step starts pending, the same\r\nstatus a create-time step starts in. Writes a revision row recording the pre-add state and\r\nbumps the work order's revision number, the same as `UpdateWorkOrderCommand`."},"AddressResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"placeId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"fullAddress":{"type":"string","nullable":true},"street":{"type":"string","nullable":true},"suburb":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"postcode":{"type":"string","nullable":true},"unit":{"type":"string","nullable":true},"number":{"type":"string","nullable":true},"province":{"type":"string","nullable":true},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"}},"additionalProperties":false},"AdjustInventoryCommand":{"required":["locationId","productId","quantity"],"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"locationId":{"type":"string","format":"uuid"},"quantity":{"type":"number","format":"double"},"movementType":{"$ref":"#/components/schemas/InventoryMovementType"},"notes":{"maxLength":500,"minLength":0,"type":"string","nullable":true},"effectiveDate":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Apply a manual inventory adjustment at a specific location.\r\nQuantity is signed: positive = stock increase, negative = stock decrease.\r\nIf no inventory record exists for the (product, location) tuple, one is created."},"AppConfigurationResponse":{"type":"object","properties":{"key":{"type":"string","nullable":true},"value":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true}},"additionalProperties":false},"BillingDefaultSettings":{"type":"object","properties":{"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"currencyAlias":{"type":"string","nullable":true},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"countryPhoneExtension":{"type":"string","nullable":true},"taxType":{"$ref":"#/components/schemas/TaxType"},"taxRate":{"type":"number","format":"double"}},"additionalProperties":false},"BomCostBreakdownResponse":{"type":"object","properties":{"bomId":{"type":"string","format":"uuid"},"asOfDate":{"type":"string","format":"date-time"},"lineCosts":{"type":"array","items":{"$ref":"#/components/schemas/BomLineCostResponse"},"nullable":true},"materialSubtotal":{"type":"number","format":"double"},"scrapTotal":{"type":"number","format":"double"},"productionSubtotal":{"type":"number","format":"double"},"productionCosts":{"type":"array","items":{"$ref":"#/components/schemas/BomProductionCostResponse"},"description":"Per-cost-line detail behind ProductionSubtotal — the ResolvedCost values sum to it.","nullable":true},"totalCost":{"type":"number","description":"Batch cost — to produce OutputQuantity finished units.","format":"double"},"outputQuantity":{"type":"number","description":"The BOM's batch yield (finished units per run).","format":"double"},"unitMaterialCost":{"type":"number","format":"double"},"unitProductionCost":{"type":"number","format":"double"},"unitCost":{"type":"number","description":"Cost per finished unit (TotalCost ÷ OutputQuantity) — compares to SellingPrice.","format":"double"},"sellingPrice":{"type":"number","format":"double","nullable":true},"grossMargin":{"type":"number","description":"Per-unit margin: SellingPrice − UnitCost.","format":"double","nullable":true},"marginPercent":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"BomCostLineRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true},"costType":{"$ref":"#/components/schemas/BomCostType"},"costAmount":{"type":"number","format":"double"},"glAccountCode":{"type":"string","nullable":true},"sortOrder":{"type":"integer","format":"int32"}},"additionalProperties":false},"BomCostLineResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"description":{"type":"string","nullable":true},"costType":{"$ref":"#/components/schemas/BomCostType"},"costAmount":{"type":"number","format":"double"},"glAccountCode":{"type":"string","nullable":true},"sortOrder":{"type":"integer","format":"int32"}},"additionalProperties":false},"BomCostType":{"enum":["FixedPerUnit","Percentage","HourlyRate"],"type":"string","description":"These values should not change since they are stored in the database as a native PG enum.\r\nClassifies a production cost line on a BOM (labour/freight/overhead)."},"BomLineCostResponse":{"type":"object","properties":{"lineItemId":{"type":"string","format":"uuid"},"componentProductId":{"type":"string","format":"uuid"},"componentTitle":{"type":"string","nullable":true},"unitPrice":{"type":"number","description":"Price of one CostedUnit (pack-normalised).","format":"double"},"quantityRequired":{"type":"number","description":"Recipe quantity as authored, in RecipeUnit.","format":"double"},"recipeUnit":{"$ref":"#/components/schemas/UnitOfMeasure"},"costedQuantity":{"type":"number","description":"Recipe quantity converted into the price's unit (what UnitPrice multiplies).","format":"double"},"costedUnit":{"$ref":"#/components/schemas/UnitOfMeasure"},"unitMismatch":{"type":"boolean","description":"True when the recipe unit couldn't convert to the price unit; raw quantity was used."},"scrapFactorPercent":{"type":"number","format":"double"},"baseMaterialCost":{"type":"number","format":"double"},"lineMaterialCost":{"type":"number","format":"double"}},"additionalProperties":false},"BomLineItemRequest":{"type":"object","properties":{"componentProductId":{"type":"string","format":"uuid"},"quantityRequired":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"scrapFactorPercent":{"type":"number","format":"double"},"sortOrder":{"type":"integer","format":"int32"},"notes":{"type":"string","nullable":true}},"additionalProperties":false},"BomLineItemResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"componentProductId":{"type":"string","format":"uuid"},"componentTitle":{"type":"string","nullable":true},"componentCode":{"type":"string","nullable":true},"componentSku":{"type":"string","nullable":true},"componentType":{"$ref":"#/components/schemas/ProductType"},"quantityRequired":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"scrapFactorPercent":{"type":"number","format":"double"},"sortOrder":{"type":"integer","format":"int32"},"notes":{"type":"string","nullable":true},"isExpandable":{"type":"boolean"}},"additionalProperties":false},"BomMarginHistoryResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"bomId":{"type":"string","format":"uuid","nullable":true},"points":{"type":"array","items":{"$ref":"#/components/schemas/BomMarginPointResponse"},"nullable":true}},"additionalProperties":false},"BomMarginPointResponse":{"type":"object","properties":{"date":{"type":"string","format":"date-time"},"totalCost":{"type":"number","description":"Batch cost at this date (to produce OutputQuantity units).","format":"double"},"unitCost":{"type":"number","description":"Cost per finished unit at this date — the series to plot against SellingPrice.","format":"double"},"sellingPrice":{"type":"number","format":"double","nullable":true},"grossMargin":{"type":"number","format":"double","nullable":true},"marginPercent":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"BomProductionCostResponse":{"type":"object","properties":{"costLineId":{"type":"string","format":"uuid"},"description":{"type":"string","nullable":true},"costType":{"$ref":"#/components/schemas/BomCostType"},"costAmount":{"type":"number","description":"The amount as authored on the cost line. For Percentage this is the percentage, not money.","format":"double"},"glAccountCode":{"type":"string","nullable":true},"sortOrder":{"type":"integer","format":"int32"},"resolvedCost":{"type":"number","description":"The money this line contributes to the batch, after its cost type is applied.","format":"double"}},"additionalProperties":false},"BomResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"parentProductId":{"type":"string","format":"uuid"},"parentProductTitle":{"type":"string","nullable":true},"parentProductCode":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"bomType":{"$ref":"#/components/schemas/BomType"},"status":{"$ref":"#/components/schemas/BomStatus"},"revisionNumber":{"type":"integer","format":"int32"},"effectiveDate":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time","nullable":true},"assemblyInstructions":{"type":"string","nullable":true},"outputQuantity":{"type":"number","format":"double"},"lineItems":{"type":"array","items":{"$ref":"#/components/schemas/BomLineItemResponse"},"nullable":true},"costLines":{"type":"array","items":{"$ref":"#/components/schemas/BomCostLineResponse"},"nullable":true},"dateModified":{"type":"string","format":"date-time"},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"BomStatus":{"enum":["Draft","Active","Blocked","Superseded"],"type":"string","description":"These values should not change since they are stored in the database as a native PG enum.\r\nBOMs are superseded, never mutated — the active revision is the current recipe."},"BomTreeNodeResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"sku":{"type":"string","nullable":true},"productType":{"$ref":"#/components/schemas/ProductType"},"bomId":{"type":"string","description":"The active BOM expanded for this node (null = leaf).","format":"uuid","nullable":true},"bomLineItemId":{"type":"string","description":"The parent line that introduced this node (null on the root).","format":"uuid","nullable":true},"quantityPerParent":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"scrapFactorPercent":{"type":"number","format":"double"},"unitCost":{"type":"number","description":"Rolled-up cost per unit of this node, at AsOfDate.","format":"double","nullable":true},"unitMismatch":{"type":"boolean"},"isExpandable":{"type":"boolean","description":"Has an active BOM (true even if the depth cap pruned its children)."},"truncated":{"type":"boolean","description":"Expandable but not expanded (hit the depth cap)."},"isCyclic":{"type":"boolean","description":"Appeared in its own ancestry; not expanded."},"children":{"type":"array","items":{"$ref":"#/components/schemas/BomTreeNodeResponse"},"nullable":true}},"additionalProperties":false},"BomTreeResponse":{"type":"object","properties":{"rootProductId":{"type":"string","format":"uuid"},"asOfDate":{"type":"string","format":"date-time"},"maxDepth":{"type":"integer","description":"The deepest level actually reached in the rendered tree (root = 0).","format":"int32"},"truncated":{"type":"boolean","description":"True if any branch hit the depth cap."},"hasCycle":{"type":"boolean","description":"True if a circular reference was detected and broken."},"root":{"$ref":"#/components/schemas/BomTreeNodeResponse"}},"additionalProperties":false},"BomType":{"enum":["Assembly","Kit"],"type":"string","description":"These values should not change since they are stored in the database as a native PG enum.\r\nAssembly: components are consumed and produce a finished good.\r\nKit: components are packed together but remain individually identifiable."},"BusinessAppConfigurationResponse":{"type":"object","properties":{"key":{"type":"string","nullable":true},"value":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true},"active":{"type":"boolean"},"editable":{"type":"boolean"}},"additionalProperties":false},"BusinessCustomerAppConfigurationResponse":{"type":"object","properties":{"key":{"type":"string","nullable":true},"value":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true},"active":{"type":"boolean"}},"additionalProperties":false},"BusinessDefaultSettings":{"type":"object","properties":{"geometryConfiguration":{"$ref":"#/components/schemas/GeometryDefaultSettings"},"billingConfiguration":{"$ref":"#/components/schemas/BillingDefaultSettings"}},"additionalProperties":false},"BusinessFulfillmentProviderResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"defaultOption":{"type":"boolean"},"accountNumber":{"type":"string","nullable":true},"contactEmail":{"type":"string","nullable":true},"dateOfExpiry":{"type":"string","format":"date-time"},"contactPerson":{"$ref":"#/components/schemas/PrimitiveUserResponse"}},"additionalProperties":false},"BusinessIntegrationProviderResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"active":{"type":"boolean","description":"Active is true if the business provider is currently set as active"}},"additionalProperties":false,"description":"Returns the combined values of the RootECommerceProvider and the BusinessECommerceProvider entities."},"BusinessIntegrationProviderWorkflowResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"entityId":{"type":"string","format":"uuid","nullable":true},"entityType":{"$ref":"#/components/schemas/DispatchEntityType"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"isManaged":{"type":"boolean","description":"True when Cargopilot provisioned this workflow. A managed workflow cannot be deleted,\r\nwhich DeleteIntegrationProviderWorkflowCommandHandler enforces."},"isSingleAction":{"type":"boolean","description":"True when the workflow shows in the details page menu of its entity type."},"isMultiAction":{"type":"boolean","description":"True when the workflow shows in the list page bulk menu of its entity type."},"accessToken":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"position":{"type":"integer","format":"int32"},"integrationProviderWorkflow":{"$ref":"#/components/schemas/WorkflowTriggerResponse"}},"additionalProperties":false},"BusinessLocationCapabilitiesResponse":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"mayCreatePurchaseOrders":{"type":"boolean"},"mayRequestTransferOrders":{"type":"boolean"},"mayFulfillTransferOrders":{"type":"boolean"},"mayCreateSalesOrders":{"type":"boolean"},"mayProduce":{"type":"boolean"},"defaultFulfillmentLocationId":{"type":"string","format":"uuid","nullable":true},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"}},"additionalProperties":false},"BusinessLocationResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"locationType":{"$ref":"#/components/schemas/BusinessLocationType"},"isDefault":{"type":"boolean"},"address":{"$ref":"#/components/schemas/AddressResponse"},"code":{"type":"string","description":"Optional free-text internal reference code for the location (e.g. \"WH-01\"). Display-only.","nullable":true},"canProduce":{"type":"boolean","description":"Derived: true when the location's capability row says it may produce, otherwise\r\n            true only for a factory or warehouse location type. Drives the production location picker."},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"}},"additionalProperties":false},"BusinessLocationType":{"enum":["Office","Warehouse","Storefront","Remote","Other","Headquarters","Factory"],"type":"string"},"BusinessResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"registeredName":{"type":"string","nullable":true},"registrationNumber":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"requiresOrderIntegration":{"type":"boolean"},"requiresOrderFulfillment":{"type":"boolean"},"requiresAccountingIntegration":{"type":"boolean"},"requiresDispatchBuilder":{"type":"boolean"},"billingAddress":{"$ref":"#/components/schemas/AddressResponse"},"shippingAddress":{"$ref":"#/components/schemas/AddressResponse"},"currentUser":{"$ref":"#/components/schemas/PrimitiveUserResponse"}},"additionalProperties":false},"BusinessType":{"enum":["Unknown","Simple","Logistics","Forwarder","OnlineMerchant","Retailer","Supplier","Distributor","Exporting","Warehouse"],"type":"string","description":"<remarks>Do not change the numeric allocations for type names</remarks>"},"ChannelLocationSalesResponse":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"orders":{"type":"integer","format":"int32"},"revenue":{"type":"number","format":"double"}},"additionalProperties":false,"description":"Sales for one origin location, for one sales channel over a period."},"ChannelSalesInsightResponse":{"type":"object","properties":{"salesChannelId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"kind":{"$ref":"#/components/schemas/SalesChannelKind"},"connectionStatus":{"$ref":"#/components/schemas/ConnectionStatus"},"providerTitle":{"type":"string","description":"The title of the configured provider. Null with no configured provider.","nullable":true},"providerDateModified":{"type":"string","description":"The last-modified date of the configured provider. Null with no configured provider.","format":"date-time","nullable":true},"periodFrom":{"type":"string","format":"date-time"},"periodTo":{"type":"string","format":"date-time"},"currency":{"type":"string","description":"The most common sale currency in the period. Null with no sales.","nullable":true},"orders":{"type":"integer","format":"int32"},"revenue":{"type":"number","format":"double"},"averageOrderValue":{"type":"number","description":"Revenue divided by orders, rounded to two decimals. Zero when orders is zero.","format":"double"},"previousOrders":{"type":"integer","format":"int32"},"previousRevenue":{"type":"number","format":"double"},"statusBreakdown":{"type":"array","items":{"$ref":"#/components/schemas/ChannelStatusBreakdownResponse"},"nullable":true},"topProducts":{"type":"array","items":{"$ref":"#/components/schemas/ChannelTopProductResponse"},"nullable":true},"locations":{"type":"array","items":{"$ref":"#/components/schemas/ChannelLocationSalesResponse"},"nullable":true}},"additionalProperties":false,"description":"Aggregated sales metrics for one sales channel over a period."},"ChannelStatusBreakdownResponse":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/OrderStatus"},"count":{"type":"integer","format":"int32"}},"additionalProperties":false,"description":"The order count for one order status, for one sales channel over a period."},"ChannelTopProductResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"sku":{"type":"string","nullable":true},"units":{"type":"number","format":"double"},"revenue":{"type":"number","format":"double"}},"additionalProperties":false,"description":"A top-selling product for one sales channel over a period."},"CollectionPreference":{"enum":["NotAllocated","SameDay","NextDay","TwoDays","ThreeDays","FourDays","FiveDays"],"type":"string"},"CollectionPreferenceResponse":{"type":"object","properties":{"title":{"type":"string","nullable":true},"collectionPreference":{"$ref":"#/components/schemas/CollectionPreference"}},"additionalProperties":false},"CollectionRequest":{"type":"object","properties":{"dateOfCollection":{"type":"string","format":"date-time"},"estimatedDateOfCollection":{"type":"string","format":"date-time"},"dateOfScheduledCollection":{"type":"string","format":"date-time"},"earliestDateOfCollection":{"type":"string","format":"date-time"},"latestDateOfCollection":{"type":"string","format":"date-time"},"collectBeforeTime":{"pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$","type":"string","nullable":true},"collectAfterTime":{"pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$","type":"string","nullable":true},"additionalRemarks":{"type":"string","nullable":true}},"additionalProperties":false},"CollectionResponse":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/AddressResponse"},"instructions":{"type":"string","nullable":true},"contact":{"$ref":"#/components/schemas/ContactResponse"},"businessName":{"type":"string","nullable":true},"collectAfterTime":{"type":"string","description":"Formatted in HH not hh (24 hours)","nullable":true},"collectBeforeTime":{"type":"string","description":"Formatted in HH not hh (24 hours)","nullable":true},"dateOfCollection":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"CompleteWorkOrderCommand":{"type":"object","properties":{"workOrderId":{"type":"string","format":"uuid"},"producedQuantity":{"type":"number","format":"double"},"scrappedQuantity":{"type":"number","format":"double"},"scrapReason":{"type":"string","description":"Explains the scrapped quantity. Required when Dispatch.Application.Handlers.Commands.WorkOrders.CompleteWorkOrder.CompleteWorkOrderCommand.ScrappedQuantity is greater than\r\nzero; must be left blank when it is zero.","nullable":true},"actualEnd":{"type":"string","format":"date-time","nullable":true},"productionLocationId":{"type":"string","description":"Optional production location. Used when the work order has no location set (or to override\r\nit). A location is required to post inventory movements on completion.","format":"uuid","nullable":true},"materialConsumption":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderMaterialConsumptionRequest"},"description":"Optional per-material actual consumption. Materials not listed here are backflushed at their\r\nplanned quantity.","nullable":true},"outputLotNumber":{"type":"string","description":"Optional lot number for the produced output. When given, a lot row is created and the\r\nproduced (AssemblyProduction) movement is stamped with it.","nullable":true},"outputLotExpiryDate":{"type":"string","description":"Optional expiry date for the lot named by Dispatch.Application.Handlers.Commands.WorkOrders.CompleteWorkOrder.CompleteWorkOrderCommand.OutputLotNumber.","format":"date-time","nullable":true},"serialNumbers":{"type":"array","items":{"type":"string"},"description":"Optional serial numbers for the produced output. Must not exceed Dispatch.Application.Handlers.Commands.WorkOrders.CompleteWorkOrder.CompleteWorkOrderCommand.ProducedQuantity\r\nand must not contain a duplicate value. Linked to the lot when Dispatch.Application.Handlers.Commands.WorkOrders.CompleteWorkOrder.CompleteWorkOrderCommand.OutputLotNumber\r\nis also given.","nullable":true}},"additionalProperties":false},"ConfigureIntegrationProviderWorkflowPositionCommand":{"required":["workflowIds"],"type":"object","properties":{"entityType":{"$ref":"#/components/schemas/DispatchEntityType"},"workflowIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"additionalProperties":false},"ConfigureWorkflowCommand":{"required":["description","title"],"type":"object","properties":{"triggerId":{"type":"integer","description":"The workflow trigger id. Leave this at zero for a workflow with no trigger, that is a\r\nmenu action only. Give either this value or Dispatch.Application.Handlers.Commands.Integrations.ConfigureWorkflow.ConfigureWorkflowCommand.EntityType.","format":"int32"},"title":{"minLength":1,"type":"string"},"description":{"minLength":1,"type":"string"},"templateId":{"type":"integer","description":"The workflow template if the user selected one.\r\nOtherwise this will be empty.","format":"int32"},"entityType":{"$ref":"#/components/schemas/DispatchEntityType"},"isSingleAction":{"type":"boolean","description":"Shows this workflow as a menu action on the entity details page."},"isMultiAction":{"type":"boolean","description":"Shows this workflow as a bulk menu action on the entity list page."}},"additionalProperties":false},"ConfirmVehicleUploadRequest":{"required":["uploadId"],"type":"object","properties":{"uploadId":{"minLength":1,"type":"string"}},"additionalProperties":false,"description":"Payload confirming a previously uploaded vehicle CSV file, triggering the bulk import."},"ConnectionStatus":{"enum":["Connected","Disconnected","Error"],"type":"string"},"ContactResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"mobileNumber":{"type":"string","nullable":true}},"additionalProperties":false},"CostingMethod":{"enum":["WeightedAverage","Fifo"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"CountryCode":{"enum":["Invalid","Global","FallbackZa","Be","De","Lu","Nl","Za","Zw","Gb","Us","Zm"],"type":"string","description":"Linked to lookup table lookup_country_code;\r\nThe numbers link to the dialing code listed on <example> https://www.iban.com/country-codes </example>\r\nFor future reference dialing codes containing '-' should be ignored"},"CreateAddressRequest":{"required":["city","country","latitude","longitude","postcode","street"],"type":"object","properties":{"placeId":{"maxLength":100,"minLength":0,"type":"string","format":"string","nullable":true},"name":{"maxLength":50,"minLength":0,"type":"string","format":"string","nullable":true},"website":{"maxLength":100,"minLength":0,"type":"string","format":"uri","nullable":true},"fullAddress":{"maxLength":500,"minLength":0,"type":"string","nullable":true},"street":{"maxLength":80,"minLength":0,"type":"string","format":"string"},"suburb":{"maxLength":80,"minLength":0,"type":"string","format":"string","nullable":true},"city":{"maxLength":80,"minLength":0,"type":"string"},"country":{"maxLength":80,"minLength":0,"type":"string"},"postcode":{"maxLength":15,"minLength":0,"type":"string","format":"postal-code"},"unit":{"maxLength":10,"minLength":0,"type":"string","nullable":true},"number":{"maxLength":20,"minLength":0,"type":"string","format":"postal-code","nullable":true},"province":{"maxLength":80,"minLength":0,"type":"string","format":"string","nullable":true},"latitude":{"maximum":90,"minimum":-90,"type":"number","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","format":"double"}},"additionalProperties":false},"CreateBomCommand":{"type":"object","properties":{"parentProductId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"bomType":{"$ref":"#/components/schemas/BomType"},"status":{"$ref":"#/components/schemas/BomStatus"},"revisionNumber":{"type":"integer","format":"int32"},"effectiveDate":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time","nullable":true},"assemblyInstructions":{"type":"string","nullable":true},"outputQuantity":{"type":"number","format":"double"},"lineItems":{"type":"array","items":{"$ref":"#/components/schemas/BomLineItemRequest"},"nullable":true},"costLines":{"type":"array","items":{"$ref":"#/components/schemas/BomCostLineRequest"},"nullable":true}},"additionalProperties":false},"CreateBusinessLocationCommand":{"required":["address","title"],"type":"object","properties":{"businessId":{"type":"string","format":"uuid"},"title":{"maxLength":255,"minLength":0,"type":"string"},"description":{"type":"string","nullable":true},"locationType":{"$ref":"#/components/schemas/BusinessLocationType"},"address":{"$ref":"#/components/schemas/UpdateAddressRequest"},"code":{"maxLength":50,"minLength":0,"type":"string","nullable":true}},"additionalProperties":false},"CreateBusinessRequest":{"required":["address","displayName","email","phoneNumber"],"type":"object","properties":{"registeredName":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"displayName":{"maxLength":50,"minLength":0,"type":"string"},"phoneNumber":{"minLength":1,"type":"string","format":"tel"},"website":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"email":{"minLength":1,"type":"string","format":"email"},"registrationNumber":{"maxLength":30,"minLength":0,"type":"string","nullable":true},"requiresOrderIntegration":{"type":"boolean"},"requiresOrderFulfillment":{"type":"boolean"},"requiresAccountingIntegration":{"type":"boolean"},"requiresDispatchBuilder":{"type":"boolean"},"multipleBranches":{"type":"boolean"},"address":{"$ref":"#/components/schemas/CreateAddressRequest"},"businessType":{"$ref":"#/components/schemas/BusinessType"}},"additionalProperties":false},"CreateContactCommand":{"required":["email","firstName","title"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"customerId":{"type":"string","format":"uuid"},"title":{"maxLength":50,"minLength":1,"type":"string"},"description":{"maxLength":1000,"minLength":1,"type":"string","nullable":true},"firstName":{"maxLength":50,"minLength":1,"type":"string"},"lastName":{"maxLength":50,"minLength":1,"type":"string","nullable":true},"email":{"minLength":1,"type":"string","format":"email"},"phoneNumber":{"type":"string","format":"tel","nullable":true},"mobileNumber":{"type":"string","format":"tel","nullable":true}},"additionalProperties":false},"CreateCustomerGroupCommand":{"required":["title"],"type":"object","properties":{"title":{"maxLength":255,"minLength":0,"type":"string"},"description":{"maxLength":2000,"minLength":0,"type":"string","nullable":true}},"additionalProperties":false},"CreateCustomerIntegrationCommand":{"required":["context","customer"],"type":"object","properties":{"customer":{"$ref":"#/components/schemas/CreateCustomerRequest"},"context":{"$ref":"#/components/schemas/IntegrationContextRequest"}},"additionalProperties":false,"description":"The incoming request to create a customer from an external integration. Composes a\r\nDispatch.Application.Contracts.Request.Customers.CreateCustomerRequest with the integration context so the underlying\r\ncustomer payload is defined exactly once."},"CreateCustomerRequest":{"required":["contacts","shippingAddress"],"type":"object","properties":{"contacts":{"type":"array","items":{"$ref":"#/components/schemas/CreateContactCommand"}},"phoneNumber":{"maxLength":20,"minLength":0,"type":"string","format":"tel","nullable":true},"email":{"maxLength":50,"minLength":0,"type":"string","format":"email","nullable":true},"website":{"maxLength":100,"minLength":0,"type":"string","format":"uri","nullable":true},"isBusiness":{"type":"boolean"},"businessName":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"title":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"groupId":{"type":"string","description":"The customer group this customer belongs to, if any. Used as a price-list assignment scope.","format":"uuid","nullable":true},"shippingAddress":{"$ref":"#/components/schemas/CreateAddressRequest"},"billingAddress":{"$ref":"#/components/schemas/CreateAddressRequest"},"additionalAddresses":{"type":"array","items":{"$ref":"#/components/schemas/CreateAddressRequest"},"nullable":true},"dateCreated":{"type":"string","description":"When the customer was created. Optional; defaults to now. Lets seeded/synthetic data show customer acquisition over time rather than all on seed day.","format":"date-time","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"CreateDeliveryZoneCommand":{"required":["geoZones","title"],"type":"object","properties":{"title":{"maxLength":100,"minLength":0,"type":"string"},"description":{"maxLength":500,"minLength":0,"type":"string","nullable":true},"geoZones":{"type":"array","items":{"$ref":"#/components/schemas/GeoZone"}}},"additionalProperties":false},"CreateDimensionPresetCommand":{"type":"object","properties":{"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"title":{"maxLength":200,"minLength":0,"type":"string","nullable":true},"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"defaultOption":{"type":"boolean"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"countryCode":{"$ref":"#/components/schemas/CountryCode"}},"additionalProperties":false},"CreateDiscountMatrixCommand":{"type":"object","properties":{"priceMatrixId":{"type":"string","description":"The price matrix id to associate this discount with","format":"uuid"},"title":{"type":"string","nullable":true},"discountType":{"$ref":"#/components/schemas/DiscountType"},"discountBy":{"type":"number","format":"double"},"minPackageCount":{"type":"integer","format":"int32"},"maxPackageCount":{"type":"integer","format":"int32"}},"additionalProperties":false},"CreateOrderIntegrationCommand":{"required":["context","customer","order","orderItems"],"type":"object","properties":{"order":{"$ref":"#/components/schemas/CreateOrderRequest"},"customer":{"$ref":"#/components/schemas/CreateCustomerIntegrationCommand"},"orderItems":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationOrderItemRequest"}},"context":{"$ref":"#/components/schemas/IntegrationContextRequest"}},"additionalProperties":false,"description":"Incoming order creation request from an external integration. Composes a\r\nDispatch.Application.Contracts.Request.Orders.CreateOrderRequest with the integration-specific customer, order items,\r\nand context. The handler resolves the customer + product integrations and populates\r\nDispatch.Application.Contracts.Request.Orders.CreateOrderRequest.CustomerId and Dispatch.Application.Contracts.Request.Orders.CreateOrderRequest.Items\r\nbefore delegating to the standard order pipeline — external callers should leave\r\nthose two properties empty."},"CreateOrderItemRequest":{"required":["quantity"],"type":"object","properties":{"productId":{"type":"string","format":"uuid","nullable":true},"quantity":{"type":"number","description":"Used when a product is assigned to a order","format":"double"},"dimensionPresetId":{"type":"string","format":"uuid","nullable":true},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primaryImageUrl":{"type":"string","nullable":true},"weight":{"type":"number","format":"double"},"weightType":{"$ref":"#/components/schemas/WeightType"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"subTotal":{"type":"number","description":"Null (or zero, matching the old non-nullable default) means \"resolve this from price lists /\r\nprice history\". A non-zero value is a LINE TOTAL and is used unchanged. See\r\nDispatch.Application.Interfaces.Services.IOrderLinePricingService.","format":"double","nullable":true},"totalPrice":{"type":"number","format":"double","nullable":true},"totalTax":{"type":"number","format":"double","nullable":true},"totalDiscount":{"type":"number","format":"double","nullable":true},"discount":{"type":"number","format":"double","nullable":true},"discountType":{"$ref":"#/components/schemas/DiscountType"}},"additionalProperties":false,"description":"Not an Dispatch.Application.Interfaces.Domain.Billing.IBillingLineItemValue — its\r\nbilling fields are deliberately nullable (see below), which that non-nullable-decimal interface\r\ncan't express."},"CreateOrderRequest":{"required":["customerId","destinationAddress","items","locationId"],"type":"object","properties":{"customerId":{"type":"string","format":"uuid"},"locationId":{"type":"string","description":"The location/store this order originates at (its address becomes the order origin).","format":"uuid"},"salesChannelId":{"type":"string","description":"The sales channel (medium) this order comes through. Optional: when omitted, a manual order\r\nfalls back to the business's default (\"Direct\") channel, and an integration-ingested order\r\nresolves the channel backed by its configured provider.","format":"uuid","nullable":true},"description":{"type":"string","nullable":true},"purchaseOrderNumber":{"type":"string","description":"The customer's purchase order number, when this order is created from a received customer PO.","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"weightType":{"$ref":"#/components/schemas/WeightType"},"paymentProcessed":{"type":"boolean"},"paymentMethod":{"$ref":"#/components/schemas/PaymentMethod"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"fulfillmentSubType":{"$ref":"#/components/schemas/FulfillmentSubType"},"serviceLevel":{"$ref":"#/components/schemas/ServiceLevel"},"dateOfScheduledCollection":{"type":"string","format":"date-time","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/CreateOrderItemRequest"}},"destinationAddress":{"$ref":"#/components/schemas/CreateAddressRequest"},"billing":{"$ref":"#/components/schemas/OrderBillingRequest"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"effectiveDate":{"type":"string","description":"When the order actually occurred. Optional; defaults to now. Lets backdated/synthetic orders carry a true business date distinct from the row's write timestamp.","format":"date-time","nullable":true}},"additionalProperties":false},"CreateOrderShipmentCommand":{"required":["orderId","orderItems"],"type":"object","properties":{"orderId":{"type":"string","format":"uuid"},"orderItems":{"type":"array","items":{"type":"string","format":"uuid"}},"dateCreated":{"type":"string","description":"When the shipment was created. Optional; defaults to now. Lets seeded/synthetic shipments be backdated to their order's date.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Command to create a shipment from an order"},"CreatePriceListCommand":{"required":["title"],"type":"object","properties":{"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"status":{"$ref":"#/components/schemas/PriceListStatus"},"effectiveFrom":{"type":"string","format":"date-time","nullable":true},"effectiveTo":{"type":"string","format":"date-time","nullable":true},"pricingMode":{"$ref":"#/components/schemas/PriceListPricingMode"},"adjustmentType":{"$ref":"#/components/schemas/PriceAdjustmentType"},"adjustmentValue":{"type":"number","format":"double","nullable":true},"roundingStep":{"type":"number","format":"double"}},"additionalProperties":false},"CreatePriceListItemCommand":{"type":"object","properties":{"priceListId":{"type":"string","description":"The price list to which this item belongs.","format":"uuid"},"productId":{"type":"string","format":"uuid"},"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxRate":{"type":"number","format":"double"},"taxIncluded":{"type":"boolean"},"taxType":{"$ref":"#/components/schemas/TaxType"},"priceUnit":{"$ref":"#/components/schemas/UnitOfMeasure"},"pricePackQuantity":{"type":"number","format":"double"},"basis":{"$ref":"#/components/schemas/PriceListItemBasis"},"adjustmentType":{"$ref":"#/components/schemas/PriceAdjustmentType"},"adjustmentValue":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":"Creates a new per-product price override on a price list. Create-only — the handler rejects\r\nthe request with a conflict if an item already exists for the product on this list; use\r\nDispatch.Application.Handlers.Commands.PriceLists.UpdatePriceListItem.UpdatePriceListItemCommand\r\nto change an existing item."},"CreatePriceMatrixCommand":{"type":"object","properties":{"title":{"type":"string","nullable":true},"rate":{"type":"number","format":"double"},"distanceBasedRate":{"type":"number","format":"double"},"minWeight":{"type":"number","format":"double"},"maxWeight":{"type":"number","format":"double","nullable":true},"deliveryDaysMin":{"type":"integer","format":"int32"},"deliveryDaysMax":{"type":"integer","format":"int32"},"serviceLevel":{"$ref":"#/components/schemas/ServiceLevel"},"limitOn":{"$ref":"#/components/schemas/LimitOn"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"businessDimensionPresetId":{"type":"string","description":"The id of the business dimension preset to link to this price matrix.","format":"uuid"},"originZoneId":{"type":"string","description":"The id of the origin zone for zone-based pricing. Null means any origin.","format":"uuid","nullable":true},"destinationZoneId":{"type":"string","description":"The id of the destination zone for zone-based pricing. Null means any destination.","format":"uuid","nullable":true}},"additionalProperties":false},"CreateProductGroupCommand":{"required":["name"],"type":"object","properties":{"parentProductId":{"type":"string","description":"The product the group is spun off from; auto-added as the family primary. Set from the route.","format":"uuid","nullable":true},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"optionAxes":{"type":"array","items":{"type":"string"},"nullable":true},"parentOptionValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-axis values for the parent member (e.g. {\"Size\":\"500ml\"}). Empty if omitted.","nullable":true},"members":{"type":"array","items":{"$ref":"#/components/schemas/CreateProductGroupMember"},"nullable":true}},"additionalProperties":false},"CreateProductGroupMember":{"type":"object","properties":{"productId":{"type":"string","format":"uuid","nullable":true},"newProduct":{"$ref":"#/components/schemas/CreateProductRequest"},"optionValues":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"position":{"type":"integer","format":"int32","nullable":true}},"additionalProperties":false,"description":"A member to place in a new group: EITHER an existing product (Dispatch.Application.Handlers.Commands.ProductGroups.CreateProductGroup.CreateProductGroupMember.ProductId) OR a\r\nbrand-new product to mint (Dispatch.Application.Handlers.Commands.ProductGroups.CreateProductGroup.CreateProductGroupMember.NewProduct) — exactly one must be set."},"CreateProductIntegrationCommand":{"required":["variants"],"type":"object","properties":{"group":{"$ref":"#/components/schemas/IntegrationProductGroupRequest"},"variants":{"minItems":1,"type":"array","items":{"$ref":"#/components/schemas/IntegrationProductVariantRequest"}}},"additionalProperties":false,"description":"The incoming request to import a product family from an external integration. One endpoint covers\r\nall cases: a single \"default variant\" (one variant, no group), a multi-variant family (the backend\r\nmaterializes a group), or an incremental sync that attaches a variant to an existing family."},"CreateProductPriceRequest":{"type":"object","properties":{"subTotal":{"minimum":0,"type":"number","format":"double"},"totalPrice":{"minimum":0,"type":"number","format":"double"},"totalTax":{"minimum":0,"type":"number","format":"double"},"totalDiscount":{"minimum":0,"type":"number","format":"double"},"discount":{"minimum":0,"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxIncluded":{"type":"boolean"},"taxRate":{"maximum":100,"minimum":0,"type":"number","format":"double"},"taxType":{"$ref":"#/components/schemas/TaxType"}},"additionalProperties":false},"CreateProductRequest":{"required":["title"],"type":"object","properties":{"sku":{"type":"string","nullable":true},"title":{"maxLength":100,"minLength":0,"type":"string"},"description":{"maxLength":1000,"minLength":0,"type":"string","description":"Provides a summary of the product","nullable":true},"body":{"type":"string","nullable":true},"price":{"$ref":"#/components/schemas/CreateProductPriceRequest"},"geometry":{"$ref":"#/components/schemas/ProductDimensionRequest"},"productType":{"$ref":"#/components/schemas/ProductType"},"status":{"$ref":"#/components/schemas/ProductStatus"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"barcode":{"type":"string","nullable":true},"upc":{"type":"string","nullable":true},"ean":{"type":"string","nullable":true},"mpn":{"type":"string","nullable":true},"purchasable":{"type":"boolean"},"isSellable":{"type":"boolean"},"isPurchasable":{"type":"boolean"},"isTaxable":{"type":"boolean"},"requiresShipping":{"type":"boolean"},"tags":{"type":"array","items":{"type":"string"},"nullable":true},"imageIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Images which have been uploaded via the FileController.","nullable":true},"imageUrls":{"type":"array","items":{"type":"string"},"nullable":true},"defaultImageUrl":{"type":"string","nullable":true},"groupAssignment":{"$ref":"#/components/schemas/ProductGroupAssignmentRequest"},"supplierId":{"type":"string","format":"uuid","nullable":true},"dateCreated":{"type":"string","description":"When the product was created. Optional; defaults to now. Lets seeded/synthetic catalogs show products appearing over time rather than all on seed day.","format":"date-time","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"CreateProductionProcessCommand":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/ProcessStatus"},"revisionNumber":{"type":"integer","format":"int32"},"effectiveDate":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time","nullable":true},"steps":{"type":"array","items":{"$ref":"#/components/schemas/ProcessStepRequest"},"nullable":true}},"additionalProperties":false},"CreatePurchaseOrderCommand":{"type":"object","properties":{"supplierId":{"type":"string","format":"uuid"},"destinationLocationId":{"type":"string","format":"uuid"},"sourceTransferOrderId":{"type":"string","description":"Optional demand-source link — see Dispatch.Application.Models.Aggregates.PurchaseOrders.PurchaseOrder.SourceTransferOrderId.","format":"uuid","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"expectedDeliveryDate":{"type":"string","format":"date-time","nullable":true},"effectiveDate":{"type":"string","description":"Order/placement date. Defaults to now when omitted.","format":"date-time","nullable":true},"description":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/CreatePurchaseOrderItemRequest"},"nullable":true}},"additionalProperties":false},"CreatePurchaseOrderItemRequest":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"quantityOrdered":{"type":"number","format":"double"},"unitCost":{"type":"number","description":"The unit cost for this line. When omitted, it defaults to the product's primary supplier\r\nlink's `LastQuotedPrice`; when neither is available it is zero.","format":"double","nullable":true},"totalTax":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":"A line item supplied when creating a purchase order or adding an item to a Draft one."},"CreatePurchaseOrderShipmentCommand":{"type":"object","properties":{"purchaseOrderId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"dateCreated":{"type":"string","description":"When the shipment was created. Optional; defaults to now.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Creates an inbound shipment for a purchase order and links it via the shipment join table."},"CreateRoleCommand":{"type":"object","properties":{"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"roleType":{"$ref":"#/components/schemas/RoleType"},"scope":{"$ref":"#/components/schemas/RoleScope"},"permissions":{"type":"object","properties":{"Orders":{"$ref":"#/components/schemas/PermissionAction"},"Shipments":{"$ref":"#/components/schemas/PermissionAction"},"Customers":{"$ref":"#/components/schemas/PermissionAction"},"Products":{"$ref":"#/components/schemas/PermissionAction"},"Vehicles":{"$ref":"#/components/schemas/PermissionAction"},"Integrations":{"$ref":"#/components/schemas/PermissionAction"},"TeamAndRoles":{"$ref":"#/components/schemas/PermissionAction"},"Billing":{"$ref":"#/components/schemas/PermissionAction"},"Workflows":{"$ref":"#/components/schemas/PermissionAction"},"Settings":{"$ref":"#/components/schemas/PermissionAction"},"Insights":{"$ref":"#/components/schemas/PermissionAction"},"Suppliers":{"$ref":"#/components/schemas/PermissionAction"},"PurchaseOrders":{"$ref":"#/components/schemas/PermissionAction"},"WorkOrders":{"$ref":"#/components/schemas/PermissionAction"},"TransferOrders":{"$ref":"#/components/schemas/PermissionAction"},"Schedule":{"$ref":"#/components/schemas/PermissionAction"}},"additionalProperties":false,"nullable":true}},"additionalProperties":false},"CreateScheduleEventCommand":{"required":["title"],"type":"object","properties":{"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"type":{"$ref":"#/components/schemas/ScheduleEventType"},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","format":"date-time"},"recurrence":{"$ref":"#/components/schemas/ScheduleRecurrenceRequest"},"assignees":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleEventAssigneeRequest"},"nullable":true}},"additionalProperties":false},"CreateShipmentCommand":{"required":["handlingType"],"type":"object","properties":{"requiresApproval":{"type":"boolean"},"description":{"maxLength":3000,"minLength":0,"type":"string","nullable":true},"handlingType":{"$ref":"#/components/schemas/HandlingType"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"status":{"$ref":"#/components/schemas/ShipmentStatus"},"hasDimensions":{"type":"boolean"},"geometry":{"$ref":"#/components/schemas/ShipmentDimensionsRequest"},"dateOfDeparture":{"type":"string","format":"date-time","nullable":true},"delivery":{"$ref":"#/components/schemas/DeliveryRequest"},"collection":{"$ref":"#/components/schemas/CollectionRequest"},"customerId":{"type":"string","format":"uuid"}},"additionalProperties":false},"CreateShipmentQuotationIntegrationCommand":{"type":"object","properties":{"quotation":{"$ref":"#/components/schemas/CreateShipmentQuotationRequest"},"context":{"$ref":"#/components/schemas/IntegrationContextRequest"}},"additionalProperties":false},"CreateShipmentQuotationRequest":{"required":["serviceLevelText"],"type":"object","properties":{"providerId":{"type":"integer","description":"The root provider id for the quotation. Not the configured provider integration id.","format":"int32"},"shipmentId":{"type":"string","format":"uuid"},"orderId":{"type":"string","format":"uuid","nullable":true},"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"serviceLevelText":{"minLength":1,"type":"string"},"serviceLevelDescription":{"type":"string","nullable":true},"discountType":{"$ref":"#/components/schemas/DiscountType"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"currency":{"$ref":"#/components/schemas/CurrencyCode"},"taxIncluded":{"type":"boolean"},"collection":{"$ref":"#/components/schemas/CollectionRequest"},"delivery":{"$ref":"#/components/schemas/DeliveryRequest"},"items":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentItemRequest"},"nullable":true}},"additionalProperties":false},"CreateShipmentWaypointCommand":{"required":["locationId"],"type":"object","properties":{"shipmentId":{"type":"string","format":"uuid"},"locationId":{"type":"string","format":"uuid"},"title":{"maxLength":150,"minLength":0,"type":"string","nullable":true}},"additionalProperties":false},"CreateSupplierCommand":{"required":["createContact","title"],"type":"object","properties":{"title":{"maxLength":100,"minLength":0,"type":"string"},"description":{"maxLength":500,"minLength":0,"type":"string","nullable":true},"contactId":{"type":"string","description":"The contact could optionally already exist and be provided from a dropdown list.","format":"uuid","nullable":true},"createContact":{"$ref":"#/components/schemas/CreateContactCommand"},"addressId":{"type":"string","description":"Optional reference to an existing `business_addresses` row (the supplier's origin\r\naddress). Not created here — attach an id already persisted via the address CRUD.","format":"uuid","nullable":true},"paymentTerms":{"maxLength":50,"minLength":0,"type":"string","nullable":true},"defaultLeadTimeDays":{"type":"integer","format":"int32","nullable":true},"code":{"maxLength":50,"minLength":0,"type":"string","nullable":true},"defaultCurrency":{"$ref":"#/components/schemas/CurrencyCode"}},"additionalProperties":false},"CreateTeamCommand":{"required":["name"],"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true},"memberUserIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false},"CreateTransferOrderCommand":{"required":["destinationLocationId","items","originLocationId"],"type":"object","properties":{"originLocationId":{"type":"string","format":"uuid"},"destinationLocationId":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/TransferOrderStatus"},"expectedArrivalDate":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/CreateTransferOrderItemRequest"},"nullable":true}},"additionalProperties":false,"description":"Creates a transfer order. Dispatch.Application.Handlers.Commands.TransferOrders.CreateTransferOrder.CreateTransferOrderCommand.Status accepts only Dispatch.Application.Enums.Entities.TransferOrders.TransferOrderStatus.Draft\r\n(default — a direct DC-to-DC rebalance not yet approved) or Dispatch.Application.Enums.Entities.TransferOrders.TransferOrderStatus.Requested\r\n(a replenishment request from the receiving side — `RequestedBy` is stamped from the ambient\r\nuser context). Any other status is rejected; later transitions go through PATCH/dispatch/receive."},"CreateTransferOrderItemRequest":{"required":["productId","quantity"],"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"quantity":{"type":"number","format":"double"}},"additionalProperties":false,"description":"A line item supplied on transfer-order creation."},"CreateVehicleCommand":{"required":["dateOfLicenseExpiry","licensePlate","make","model","vehicleType"],"type":"object","properties":{"licensePlate":{"maxLength":50,"minLength":0,"type":"string"},"dateOfLicenseExpiry":{"type":"string","format":"date-time"},"licenseDisc":{"type":"string","nullable":true},"vehicleIdentificationNumber":{"type":"string","nullable":true},"model":{"maxLength":50,"minLength":0,"type":"string"},"make":{"maxLength":50,"minLength":0,"type":"string"},"acquisitionDate":{"type":"string","format":"date-time","nullable":true},"vehicleType":{"$ref":"#/components/schemas/VehicleType"}},"additionalProperties":false},"CreateVehicleTrackerCommand":{"type":"object","properties":{"vehicleId":{"type":"string","format":"uuid"},"emei":{"type":"string","nullable":true}},"additionalProperties":false},"CreateWorkOrderCommand":{"type":"object","properties":{"outputProductId":{"type":"string","format":"uuid"},"reference":{"type":"string","nullable":true},"productionLocationId":{"type":"string","format":"uuid"},"assignedToUserId":{"type":"string","description":"The user who should run this work order. Optional; null leaves it unassigned.","format":"uuid","nullable":true},"plannedQuantity":{"type":"number","format":"double"},"scheduledStart":{"type":"string","format":"date-time","nullable":true},"description":{"type":"string","description":"Rich-text (HTML) description entered by a person. Not sanitized server-side.","nullable":true},"templateId":{"type":"string","description":"Optional work order template. When given, its description prefills the work order's\r\ndescription if the request supplies none, and its steps are appended after the\r\nprocess-snapshot steps with continuing step numbers.","format":"uuid","nullable":true}},"additionalProperties":false},"CreateWorkOrderTemplateCommand":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"outputProductId":{"type":"string","format":"uuid","nullable":true},"defaultQuantity":{"type":"number","format":"double","nullable":true},"defaultProductionLocationId":{"type":"string","format":"uuid","nullable":true},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderTemplateStepRequest"},"nullable":true}},"additionalProperties":false},"CurrencyCode":{"enum":["Invalid","Eur","Usd","Gbp","Zar","Zmw"],"type":"string","description":"Native PostgreSQL enum type `currency_code` (registered in NpgsqlEnumDataSource).\r\nMember names map to snake_case PG labels (e.g. Zar → 'zar'); the [EnumMember] values are the\r\nISO-4217 codes used for JSON serialization. Symbols/metadata come from CurrencyResponse, not a lookup table."},"CurrencyResponse":{"type":"object","properties":{"iso4217":{"type":"string","nullable":true},"utf8Symbol":{"type":"string","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"}},"additionalProperties":false},"CustomerBulkDeleteCommand":{"required":["customers"],"type":"object","properties":{"customers":{"type":"array","items":{"$ref":"#/components/schemas/DeleteCustomerCommand"}}},"additionalProperties":false},"CustomerDetailSalesHistoryResponse":{"type":"object","properties":{"sales":{"type":"integer","format":"int32"},"valueOfSales":{"type":"number","format":"double"},"date":{"type":"string","format":"date-time"}},"additionalProperties":false},"CustomerDetailSalesHistoryWrapperResponse":{"type":"object","properties":{"customerId":{"type":"string","format":"uuid"},"currency":{"$ref":"#/components/schemas/CurrencyResponse"},"salesThisMonth":{"type":"integer","format":"int32"},"salesSinceLastWeek":{"type":"number","format":"double"},"salesSinceLastMonth":{"type":"number","format":"double"},"items":{"type":"array","items":{"$ref":"#/components/schemas/CustomerDetailSalesHistoryResponse"},"nullable":true}},"additionalProperties":false},"CustomerGroupResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"additionalProperties":false},"CustomerIntegrationProviderResponse":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/PrimitiveIntegrationProviderResponse"},"customer":{"$ref":"#/components/schemas/CustomerResponse"}},"additionalProperties":false},"CustomerKpiMetricsResponse":{"type":"object","properties":{"totalOrders":{"type":"integer","format":"int32"},"totalRevenue":{"type":"number","format":"double"},"totalDeliveries":{"type":"integer","format":"int32"},"fulfillmentCost":{"type":"number","format":"double"},"rankByVolume":{"type":"integer","description":"1-based rank among all customers by order count (most orders = rank 1).","format":"int32"},"rankByValue":{"type":"integer","description":"1-based rank among all customers by total spend (highest spend = rank 1).","format":"int32"}},"additionalProperties":false,"description":"Aggregated KPI metrics for a single customer."},"CustomerRankingResponse":{"type":"object","properties":{"sales":{"type":"integer","format":"int32"},"totalValue":{"type":"number","format":"double"},"customerId":{"type":"string","format":"uuid"},"fullName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}},"additionalProperties":false},"CustomerResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"isBusiness":{"type":"boolean"},"title":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"businessName":{"type":"string","nullable":true},"groupId":{"type":"string","description":"The customer group this customer belongs to, if any. Used as a price-list assignment scope.","format":"uuid","nullable":true},"phoneNumber":{"maxLength":20,"minLength":0,"type":"string","description":"This would generally represent the phone number for the customer if the customer is a business.\r\nOtherwise, the contact details should be part of the contact, and not the customer.","nullable":true},"integrationType":{"$ref":"#/components/schemas/IntegrationProviderType"},"dateCreated":{"type":"string","format":"date-time"},"billingAddress":{"$ref":"#/components/schemas/AddressResponse"},"shippingAddress":{"$ref":"#/components/schemas/AddressResponse"},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/CustomerIntegrationProviderResponse"},"nullable":true},"contacts":{"type":"array","items":{"$ref":"#/components/schemas/ContactResponse"},"nullable":true},"primaryContact":{"$ref":"#/components/schemas/ContactResponse"},"parent":{"$ref":"#/components/schemas/CustomerResponse"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/MetadataFileAttachment"},"nullable":true},"totalSales":{"type":"integer","format":"int32"},"totalSpent":{"type":"number","format":"double"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"DashboardSummaryResponse":{"type":"object","properties":{"monthlyCustomerOverview":{"$ref":"#/components/schemas/ReportSummaryResponse"},"monthlyShipmentOverview":{"$ref":"#/components/schemas/ReportSummaryResponse"},"monthlyDispatchOverview":{"$ref":"#/components/schemas/ReportSummaryResponse"},"monthlyOrderOverview":{"$ref":"#/components/schemas/ReportSummaryResponse"},"weeklyShipmentOverview":{"$ref":"#/components/schemas/ReportSummaryResponse"},"weeklyDispatchOverview":{"$ref":"#/components/schemas/ReportSummaryResponse"}},"additionalProperties":false,"description":"Response DTO for the dashboard summary endpoint (six period-comparison widgets)."},"DayOfWeek":{"enum":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"type":"string"},"DaysOfCoverCellResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"locationId":{"type":"string","format":"uuid"},"quantityOnHand":{"type":"number","format":"double"},"averageDailyDemand":{"type":"number","description":"Units of the product ordered from this origin location per day, over the trailing window.","format":"double"},"daysOfCover":{"type":"number","description":"QuantityOnHand divided by AverageDailyDemand. Null when AverageDailyDemand is zero.","format":"double","nullable":true},"previousDaysOfCover":{"type":"number","description":"The same calculation with demand from the window directly before the current one, and the\r\nsame QuantityOnHand. Null when the previous window's demand is zero.","format":"double","nullable":true},"reorderPoint":{"type":"number","format":"double"}},"additionalProperties":false,"description":"One cell of the days-of-cover grid: the on-hand quantity, the trailing demand, and the days of\r\ncover for one product at one location."},"DaysOfCoverLocationResponse":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"locationType":{"$ref":"#/components/schemas/BusinessLocationType"}},"additionalProperties":false,"description":"One location on the days-of-cover location axis."},"DaysOfCoverProductResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"sku":{"type":"string","nullable":true}},"additionalProperties":false,"description":"One product on the days-of-cover product axis."},"DaysOfCoverResponse":{"type":"object","properties":{"asOf":{"type":"string","format":"date-time"},"windowDays":{"type":"integer","format":"int32"},"products":{"type":"array","items":{"$ref":"#/components/schemas/DaysOfCoverProductResponse"},"nullable":true},"locations":{"type":"array","items":{"$ref":"#/components/schemas/DaysOfCoverLocationResponse"},"nullable":true},"cells":{"type":"array","items":{"$ref":"#/components/schemas/DaysOfCoverCellResponse"},"nullable":true}},"additionalProperties":false,"description":"The days-of-cover projection for a business: the on-hand quantity, the trailing demand, and\r\nthe resulting days of cover, for every (product, location) inventory record."},"DeleteCustomerCommand":{"type":"object","properties":{"customerId":{"type":"string","format":"uuid"}},"additionalProperties":false,"description":"Command to delete a customer."},"DeleteProductCommand":{"required":["id"],"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"additionalProperties":false},"DeleteShipmentCommand":{"required":["id"],"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"additionalProperties":false},"DeliveryPlanShipmentTimelineResponse":{"type":"object","properties":{"shipmentId":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/ShipmentStatus"},"orderId":{"type":"string","format":"uuid","nullable":true},"orderCode":{"type":"string","nullable":true},"orderKind":{"$ref":"#/components/schemas/TimelineOrderKind"},"orderPlaced":{"type":"string","format":"date-time","nullable":true},"orderCreated":{"type":"string","format":"date-time","nullable":true},"shipmentCreated":{"type":"string","format":"date-time","nullable":true},"addedToPlan":{"type":"string","format":"date-time","nullable":true},"departed":{"type":"string","format":"date-time","nullable":true},"collected":{"type":"string","format":"date-time","nullable":true},"delivered":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"The milestone timestamps of one shipment on a delivery plan. Every timestamp can\r\nbe null, because a step can still be pending."},"DeliveryPlanTimelineResponse":{"type":"object","properties":{"planId":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/DispatchStatuses"},"planCreated":{"type":"string","format":"date-time","nullable":true},"scheduledDeparture":{"type":"string","format":"date-time","nullable":true},"departed":{"type":"string","format":"date-time","nullable":true},"scheduledCompletion":{"type":"string","format":"date-time","nullable":true},"completed":{"type":"string","format":"date-time","nullable":true},"shipments":{"type":"array","items":{"$ref":"#/components/schemas/DeliveryPlanShipmentTimelineResponse"},"nullable":true}},"additionalProperties":false,"description":"The milestone timestamps of a delivery plan and of every shipment on it.\r\nThe portal draws this as a Gantt chart on the delivery plan details page."},"DeliveryRequest":{"type":"object","properties":{"estimatedDateOfDelivery":{"type":"string","format":"date-time"},"dateOfDelivery":{"type":"string","format":"date-time"},"earliestDateOfDelivery":{"type":"string","format":"date-time"},"latestDateOfDelivery":{"type":"string","format":"date-time"},"deliverBeforeTime":{"pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$","type":"string","nullable":true},"deliverAfterTime":{"pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$","type":"string","nullable":true},"additionalRemarks":{"type":"string","nullable":true}},"additionalProperties":false},"DeliveryResponse":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/AddressResponse"},"instructions":{"type":"string","nullable":true},"contact":{"$ref":"#/components/schemas/ContactResponse"},"businessName":{"type":"string","nullable":true},"deliverAfterTime":{"type":"string","description":"Formatted in HH not hh (24 hours)","nullable":true},"deliverBeforeTime":{"type":"string","description":"Formatted in HH not hh (24 hours)","nullable":true},"dateOfDelivery":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"DeliveryZoneResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"geoZones":{"type":"array","items":{"$ref":"#/components/schemas/GeoZone"},"nullable":true}},"additionalProperties":false},"DimensionPresetResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"vendor":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"title":{"maxLength":200,"minLength":0,"type":"string","nullable":true},"weight":{"type":"number","description":"The weight property acts as a limit for this specific box size.","format":"double"},"length":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"defaultOption":{"type":"boolean","description":"every business can have one package size preset set as the default option"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"dimensionType":{"$ref":"#/components/schemas/GeometryFieldSymbol"}},"additionalProperties":false},"DimensionTypeWithSymbols":{"type":"object","properties":{"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"volumeType":{"$ref":"#/components/schemas/VolumeType"},"lengthSymbol":{"type":"string","nullable":true},"weightSymbol":{"type":"string","nullable":true},"volumeSymbol":{"type":"string","nullable":true}},"additionalProperties":false},"DiscountMatrixResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"discountType":{"$ref":"#/components/schemas/DiscountType"},"discountBy":{"type":"number","format":"double"},"minPackageCount":{"type":"integer","format":"int32"},"maxPackageCount":{"type":"integer","format":"int32"},"priceMatrix":{"$ref":"#/components/schemas/PrimitivePriceMatrixResponse"},"currency":{"$ref":"#/components/schemas/CurrencyResponse"},"originalRate":{"type":"number","format":"double"},"discountedRate":{"type":"number","format":"double"}},"additionalProperties":false},"DiscountType":{"enum":["None","Percentage","FixedValue"],"type":"string"},"DispatchCodeResponse":{"type":"object","properties":{"code":{"type":"string","nullable":true}},"additionalProperties":false},"DispatchEntityType":{"enum":["None","Customer","Contact","Product","Order","Shipment","IntegrationProvider","Address","Business","Notification","Package","Supplier","User","WorkOrder","TransferOrder","PurchaseOrder","Bom","Vehicle"],"type":"string"},"DispatchOverviewResponse":{"type":"object","properties":{"total":{"type":"integer","format":"int32"},"active":{"type":"integer","format":"int32"},"pending":{"type":"integer","format":"int32"},"closed":{"type":"integer","format":"int32"},"complete":{"type":"integer","format":"int32"}},"additionalProperties":false},"DispatchRequest":{"type":"object","properties":{"shipmentIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"dispatchCode":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"driverIds":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true},"vehicleId":{"type":"integer","format":"int32"}},"additionalProperties":false},"DispatchResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"dispatchStatus":{"$ref":"#/components/schemas/DispatchStatuses"},"dateOfDeparture":{"type":"string","format":"date-time","nullable":true},"scheduledDateOfDeparture":{"type":"string","format":"date-time","nullable":true},"dateOfCompletion":{"type":"string","format":"date-time","nullable":true},"shipments":{"type":"array","items":{"$ref":"#/components/schemas/ShipmentResponse"},"nullable":true},"drivers":{"type":"array","items":{"$ref":"#/components/schemas/DriverResponse"},"nullable":true},"vehicle":{"$ref":"#/components/schemas/VehicleResponse"},"business":{"$ref":"#/components/schemas/BusinessResponse"}},"additionalProperties":false},"DispatchStatuses":{"enum":["Active","Pending","Dispatched","Cancelled","Complete","Draft","InTransit","Unassigned"],"type":"string"},"DispatchTransferOrderCommand":{"type":"object","properties":{"transferOrderId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"effectiveDate":{"type":"string","description":"Optional business-date override for the TransferOut movement and `DateDispatched` stamp\r\n(defaults to now) — see M:Dispatch.Application.Interfaces.Repositories.ITransferOrderRepository.Dispatch(Dispatch.Application.Models.Aggregates.TransferOrders.TransferOrder,System.Collections.Generic.IReadOnlyDictionary{System.Guid,System.Nullable{System.Decimal}},Dispatch.Application.Interfaces.Shared.IBusinessContext,System.Nullable{System.DateTime}).","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Dispatches an Approved transfer order: per item, records a TransferOut movement at the origin\r\nand increments `quantity_in_transit` at the destination. Only valid from Approved."},"DispatchUpdateRequest":{"required":["drivers","shipments"],"type":"object","properties":{"code":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"dispatchStatus":{"$ref":"#/components/schemas/DispatchStatuses"},"shipments":{"type":"array","items":{"$ref":"#/components/schemas/MultiSelectShipmentDto"}},"drivers":{"type":"array","items":{"$ref":"#/components/schemas/DriverIdAndName"}},"vehicle":{"$ref":"#/components/schemas/SelectVehicle"},"vehicleId":{"type":"integer","format":"int32","nullable":true},"dateModified":{"type":"string","format":"date-time"},"dateOfDeparture":{"type":"string","format":"date-time","nullable":true},"scheduledDateOfDeparture":{"type":"string","format":"date-time","nullable":true},"dateOfCompletion":{"type":"string","format":"date-time","nullable":true},"completed":{"type":"boolean"},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"DriverIdAndName":{"required":["id","name"],"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"minLength":1,"type":"string"}},"additionalProperties":false},"DriverRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idNumber":{"type":"string","nullable":true},"licenseNumber":{"type":"string","nullable":true},"licenseTypeId":{"type":"integer","format":"int32"},"licenseRenewalDate":{"type":"string","format":"date-time","nullable":true},"licenseIssuedDate":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"DriverResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"idNumber":{"type":"string","nullable":true},"licenseNumber":{"type":"string","nullable":true},"licenseTypeId":{"type":"integer","format":"int32"},"licenseRenewalDate":{"type":"string","format":"date-time","nullable":true},"licenseIssuedDate":{"type":"string","format":"date-time","nullable":true},"user":{"$ref":"#/components/schemas/DriverUserResponse"}},"additionalProperties":false},"DriverUserResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true}},"additionalProperties":false},"ExecutableIntegrationProviderWorkflowResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"isSingleAction":{"type":"boolean","description":"Shows on the entity details page menu."},"isMultiAction":{"type":"boolean","description":"Shows on the entity list bulk menu."}},"additionalProperties":false},"ExecuteSqlRequest":{"type":"object","properties":{"sql":{"type":"string","description":"A single read-only SELECT statement to run against the caller's org schema.","nullable":true},"maxRows":{"type":"integer","description":"Optional cap on returned rows (1–10000). Defaults to 1000 when omitted.","format":"int32","nullable":true}},"additionalProperties":false,"description":"Request body for the AI Studio ad-hoc query endpoint."},"ExecuteWorkflowActionRequest":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false,"description":"Payload for a workflow menu action. A single-action workflow takes one entity id. A\r\nmulti-action workflow can take many, and the handler posts one webhook call per id."},"ExecuteWorkflowActionResponse":{"type":"object","properties":{"succeeded":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true},"failed":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false,"description":"The per-id result of a workflow menu action. An id in Dispatch.Application.Contracts.Response.IntegrationProviders.ExecuteWorkflowActionResponse.Failed means the webhook\r\ncall for that entity did not return a success status."},"FileAttachmentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"contentType":{"type":"string","nullable":true},"fileName":{"type":"string","nullable":true},"fileUrl":{"type":"string","nullable":true},"dateSasTokenExpires":{"type":"string","format":"date-time"},"fileType":{"$ref":"#/components/schemas/FileType"}},"additionalProperties":false},"FileType":{"enum":["Unknown","Pdf","Doc","Docx","Xls","Xlsx","Png","Jpg","Jpeg","Gif","Bmp","Svg","Tiff","Txt","Csv","Zip","Webp"],"type":"string","description":"Don't change the numerical values as they are stored in the db."},"FileUploadResponse":{"type":"object","properties":{"fileAttachments":{"type":"array","items":{"$ref":"#/components/schemas/FileAttachmentResponse"},"nullable":true},"message":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentDeliveryType":{"enum":["Unknown","DoorToDoor","DoorToCollectionPoint","CollectionPointToDoor","CollectionPointToCollectionPoint","DoorToPort","PortToDoor","PortToPort","LockerToLocker"],"type":"string"},"FulfillmentDeliveryTypeModel":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Represents the delivery type.\r\nPerhaps the company only does warehouse to warehouse deliveries etc..."},"FulfillmentItemRequest":{"type":"object","properties":{"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"declaredValue":{"type":"number","format":"double","readOnly":true},"description":{"type":"string","nullable":true},"correlationId":{"type":"string","format":"uuid"}},"additionalProperties":false},"FulfillmentItemResponse":{"type":"object","properties":{"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"title":{"type":"string","nullable":true},"quantity":{"type":"number","format":"double"},"declaredValue":{"type":"number","format":"double"},"description":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentProviderConfigureRequest":{"required":["carrierId","contactId"],"type":"object","properties":{"carrierId":{"type":"integer","format":"int32"},"contactId":{"type":"string","format":"uuid"},"defaultOption":{"type":"boolean"},"configuredValues":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"FulfillmentProviderLookupWrapperResponse":{"type":"object","properties":{"deliveryTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentDeliveryTypeModel"},"nullable":true},"serviceTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentProviderServiceTypeModel"},"nullable":true},"requirementTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentRequirementTypeModel"},"nullable":true},"serviceLevels":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentServiceLevelModel"},"nullable":true},"subTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentSubTypeModel"},"nullable":true},"types":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentTypeModel"},"nullable":true}},"additionalProperties":false},"FulfillmentProviderResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"logoUrl":{"type":"string","nullable":true},"infoUrl":{"type":"string","nullable":true},"requiresUserAccount":{"type":"boolean"},"isThirdPartyProvider":{"type":"boolean"},"autoConfigure":{"type":"boolean"},"fulfillmentTypes":{"type":"array","items":{"type":"string"},"nullable":true},"configuredProvider":{"$ref":"#/components/schemas/BusinessFulfillmentProviderResponse"},"integrationType":{"$ref":"#/components/schemas/IntegrationType"},"actionLink":{"type":"string","nullable":true},"fields":{"type":"array","items":{"$ref":"#/components/schemas/MetadataConfigurationValue"},"nullable":true},"requiredFields":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"configuredValues":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"deliveryTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentDeliveryTypeModel"},"nullable":true},"serviceTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentProviderServiceTypeModel"},"nullable":true},"requirementTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentRequirementTypeModel"},"nullable":true},"serviceLevels":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentServiceLevelModel"},"nullable":true},"subTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentSubTypeModel"},"nullable":true},"types":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentTypeModel"},"nullable":true}},"additionalProperties":false},"FulfillmentProviderServiceTypeModel":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true}},"additionalProperties":false,"description":"This model represents the different services which the fulfillment provider provides."},"FulfillmentRequirementTypeModel":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentRequirementTypeResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentServiceLevelModel":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentServiceLevelResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentStatus":{"enum":["Unknown","Unassigned","PendingCollection","PendingDelivery","Fulfilled","Cancelled"],"type":"string","description":"NOTE: Don't change assigned values as they are used in the database."},"FulfillmentSubType":{"enum":["Unknown","GeneralPackage","FoodDelivery","MedicalDelivery","GroceriesDelivery","StandardPallet","StandardInternationalPallet","StandardUsPallet","StandardEuroPallet","CustomPallet","General10Ft","General20Ft","HighCube20Ft","General40Ft","HighCube40Ft","General45Ft","HighCube45Ft","FlatRack20FtWithSides","FlatRack20FtWithoutSides","FlatRack40FtWithSides","FlatRack40FtWithoutSides","OpenTop20Ft","OpenTop40Ft","Reefer20Ft","Reefer40Ft","MiniVan","DryVan","Flatbed","Tanker","AutoHauler","BoxTruck","Trailer","LowBoy","Dumper","Pickup","TowTruck","DumpTruck"],"type":"string","description":"NOTE: Don't change these numeric values to preserve data integrity\r\nLINKS to lookup_fulfillment_sub_types table"},"FulfillmentSubTypeModel":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"fulfillmentTypeId":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentSubTypeResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"fulfillmentTypeId":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentType":{"enum":["Unknown","Package","Pallet","Container","Miscellaneous"],"type":"string","description":"The fulfillment type represents the medium of transport being used for delivery\r\nI.e: Delivery Type, Cargo Type\r\nlinks to lookup_fulfillment_types table"},"FulfillmentTypeModel":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true}},"additionalProperties":false},"FulfillmentTypeResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"value":{"type":"string","nullable":true}},"additionalProperties":false},"GeneratePdfFromHtmlCommand":{"required":["htmlContent"],"type":"object","properties":{"htmlContent":{"minLength":1,"type":"string","description":"HTML content to convert to PDF"},"fileName":{"type":"string","description":"Optional filename for the PDF (without extension)","nullable":true}},"additionalProperties":false,"description":"Command to generate a PDF from HTML content"},"GeoZone":{"type":"object","properties":{"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"radiusInMeters":{"type":"integer","format":"int32"}},"additionalProperties":false},"Geometry":{"type":"object","properties":{"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"weightType":{"$ref":"#/components/schemas/WeightType"},"lengthType":{"$ref":"#/components/schemas/LengthType"}},"additionalProperties":false,"description":"Physical shipping geometry: the bounding measurements of an item plus the units they are\r\nexpressed in. The single canonical shape for dimensions across the domain — products,\r\nvariants, shipments, order/shipment line items, and dimension presets all hold one of these\r\ninstead of duplicating the `Weight`/`Width`/`Length`/`Height` quartet."},"GeometryAndCountryMetadata":{"type":"object","properties":{"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"weightType":{"$ref":"#/components/schemas/WeightType"},"lengthType":{"$ref":"#/components/schemas/LengthType"}},"additionalProperties":false},"GeometryDefaultSettings":{"type":"object","properties":{"weightType":{"$ref":"#/components/schemas/WeightType"},"weightAlias":{"type":"string","nullable":true},"lengthType":{"$ref":"#/components/schemas/LengthType"},"lengthAlias":{"type":"string","nullable":true}},"additionalProperties":false},"GeometryFieldSymbol":{"type":"object","properties":{"weightType":{"$ref":"#/components/schemas/WeightType"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"lengthSymbol":{"type":"string","nullable":true},"weightSymbol":{"type":"string","nullable":true}},"additionalProperties":false},"GeometryFieldsResponse":{"type":"object","properties":{"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"weightSymbol":{"type":"string","nullable":true},"lengthSymbol":{"type":"string","nullable":true}},"additionalProperties":false},"HandlingType":{"enum":["Unknown","Delivery","Collection","Unassigned"],"type":"string"},"HttpStatusCode":{"enum":["Continue","SwitchingProtocols","Processing","EarlyHints","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","RequestEntityTooLarge","RequestUriTooLong","UnsupportedMediaType","RequestedRangeNotSatisfiable","ExpectationFailed","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired"],"type":"string"},"IntegrationContextRequest":{"required":["configuredProviderId","id","idType"],"type":"object","properties":{"configuredProviderId":{"type":"string","format":"uuid"},"id":{"minLength":1,"type":"string"},"idType":{"$ref":"#/components/schemas/UidType"},"content":{"type":"string","description":"Can be used to store the raw data received from the external system.\r\nMaps to SerializedData...","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional metadata related to the integration object.","nullable":true},"reportedQuantity":{"type":"integer","description":"The available-to-sell quantity the provider reports for this product. The handler records it\r\non the integration link (`SyncedQuantity`) and reconciles it into inventory inline, as an\r\nabsolute stock-take adjustment. Null when the provider does not report a quantity.","format":"int32","nullable":true},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"IntegrationContextResponse":{"type":"object","properties":{"configuredProviderId":{"type":"string","format":"uuid"},"id":{"type":"string","nullable":true},"idType":{"$ref":"#/components/schemas/UidType"},"content":{"type":"string","nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"IntegrationCustomerResponse":{"type":"object","properties":{"integrationId":{"$ref":"#/components/schemas/Uid"},"integrationIdType":{"$ref":"#/components/schemas/UidType"},"customer":{"$ref":"#/components/schemas/CustomerResponse"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"integrationContext":{"$ref":"#/components/schemas/IntegrationContextResponse"}},"additionalProperties":false,"description":"The outgoing customer response from Dispatch to an external integration."},"IntegrationOrderApiResponse":{"type":"object","properties":{"id":{"type":"string","nullable":true,"readOnly":true},"customerId":{"type":"string","nullable":true,"readOnly":true},"integrationId":{"$ref":"#/components/schemas/Uid"},"integrationIdType":{"$ref":"#/components/schemas/UidType"},"integrationCustomerId":{"$ref":"#/components/schemas/Uid"},"order":{"$ref":"#/components/schemas/OrderResponse"},"customer":{"$ref":"#/components/schemas/IntegrationCustomerResponse"},"orderItems":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationOrderItemResponse"},"nullable":true},"integrationControls":{"$ref":"#/components/schemas/OrderIntegrationControls"},"integrationContext":{"$ref":"#/components/schemas/IntegrationContextResponse"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false,"description":"The response sent from Dispatch to the integration when creating or updating an order on the integration."},"IntegrationOrderItemRequest":{"type":"object","properties":{"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"quantity":{"type":"number","format":"double"},"taxIncluded":{"type":"boolean"},"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"weight":{"type":"number","format":"double"},"weightType":{"$ref":"#/components/schemas/WeightType"},"height":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"productIntegrationId":{"type":"string","description":"Identifies the linked product via its `business_product_integrations` id (the value\r\nreturned from the product-integration create endpoint). The integration must create the\r\nproduct first, then reference it here. When `null` the line item persists with no\r\nlinked product.","format":"uuid","nullable":true}},"additionalProperties":false},"IntegrationOrderItemResponse":{"required":["integrationId","integrationIdType","productIntegrationId","productIntegrationVariantId"],"type":"object","properties":{"integrationId":{"$ref":"#/components/schemas/Uid"},"integrationIdType":{"$ref":"#/components/schemas/UidType"},"productIntegrationId":{"$ref":"#/components/schemas/Uid"},"productIntegrationVariantId":{"$ref":"#/components/schemas/Uid"},"orderItem":{"$ref":"#/components/schemas/OrderItemResponse"},"product":{"$ref":"#/components/schemas/IntegrationProductResponse"},"integrationContext":{"$ref":"#/components/schemas/IntegrationContextResponse"}},"additionalProperties":false},"IntegrationProductGroupRequest":{"type":"object","properties":{"externalGroupId":{"type":"string","description":"The provider's family/product identifier (e.g. Shopify product GID). Drives idempotent re-sync and promotion.","nullable":true},"name":{"type":"string","description":"Display name for the family. Falls back to the primary variant's title when omitted.","nullable":true},"optionAxes":{"type":"array","items":{"type":"string"},"description":"The option axes the family varies along, e.g. [\"Size\", \"Colour\"].","nullable":true}},"additionalProperties":false,"description":"The umbrella family an integration import belongs to. A Cargopilot product group maps to the\r\nprovider's product (e.g. a Shopify Product); each variant maps to a member product.\r\nNull when the provider has no family concept (a single \"default variant\" import)."},"IntegrationProductResponse":{"type":"object","properties":{"integrationId":{"$ref":"#/components/schemas/Uid"},"integrationIdType":{"$ref":"#/components/schemas/UidType"},"integrationOriginDateCreated":{"type":"string","description":"The date the product was originally created.","format":"date-time"},"product":{"$ref":"#/components/schemas/ProductResponse"},"integrationContext":{"$ref":"#/components/schemas/IntegrationContextResponse"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"IntegrationProductVariantRequest":{"required":["context","product"],"type":"object","properties":{"product":{"$ref":"#/components/schemas/CreateProductRequest"},"context":{"$ref":"#/components/schemas/IntegrationContextRequest"},"optionValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-axis values for this variant against the family's option axes, e.g. {\"Size\":\"1L\"}.","nullable":true},"isPrimary":{"type":"boolean","description":"Whether this variant is the family primary (the umbrella's representative member)."}},"additionalProperties":false,"description":"One variant in a family import: the product to create/attach, its integration context, and its\r\nper-axis values. Equivalent to the old single-product integration body plus grouping metadata."},"IntegrationProviderResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"logoUrl":{"type":"string","nullable":true},"isConfigured":{"type":"boolean","description":"Active is true if the provider is configured for the business"},"configuredProvider":{"$ref":"#/components/schemas/BusinessIntegrationProviderResponse"},"integrationType":{"$ref":"#/components/schemas/IntegrationType"},"providerType":{"$ref":"#/components/schemas/IntegrationProviderType"},"autoConfigure":{"type":"boolean"},"actionLink":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"fields":{"type":"array","items":{"$ref":"#/components/schemas/MetadataConfigurationValue"},"nullable":true}},"additionalProperties":false,"description":"Represents the root ECommerce Provider from ecommerce_providers table"},"IntegrationProviderType":{"enum":["None","Commerce","Accounting","Erp","Crm","Fulfillment","Warehouse","WorkflowManager"],"type":"string"},"IntegrationProviderWorkflowTemplateResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"additionalProperties":false},"IntegrationType":{"enum":["Unknown","OneClick","Plugin","Bespoke","ApiKey"],"type":"string"},"IntegrationUpdateOrderCommand":{"required":["integrationContext"],"type":"object","properties":{"order":{"$ref":"#/components/schemas/UpdateOrderRequest"},"integrationContext":{"$ref":"#/components/schemas/IntegrationContextRequest"}},"additionalProperties":false,"description":"Responsible for handling incoming order update requests from external integrations."},"InventoryLotResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"productTitle":{"type":"string","nullable":true},"productCode":{"type":"string","nullable":true},"lotNumber":{"type":"string","nullable":true},"expiryDate":{"type":"string","format":"date-time","nullable":true},"workOrderId":{"type":"string","format":"uuid","nullable":true},"notes":{"type":"string","nullable":true},"serialNumbers":{"type":"array","items":{"$ref":"#/components/schemas/InventorySerialNumberResponse"},"nullable":true},"serialCount":{"type":"integer","format":"int32"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/MetadataFileAttachment"},"nullable":true},"dateModified":{"type":"string","format":"date-time"},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"InventoryMovementResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"movementType":{"$ref":"#/components/schemas/InventoryMovementType"},"quantity":{"type":"number","format":"double"},"balanceAfter":{"type":"number","format":"double"},"referenceType":{"type":"string","nullable":true},"referenceId":{"type":"string","format":"uuid","nullable":true},"notes":{"type":"string","nullable":true},"unitCost":{"type":"number","format":"double","nullable":true},"totalCost":{"type":"number","format":"double","nullable":true},"averageCostAfter":{"type":"number","description":"Running weighted-average cost after this movement. Null on rows predating the snapshot.","format":"double","nullable":true},"dateCreated":{"type":"string","format":"date-time"},"effectiveDate":{"type":"string","format":"date-time"}},"additionalProperties":false},"InventoryMovementType":{"enum":["Purchase","Sale","TransferIn","TransferOut","Adjustment","AssemblyConsumption","AssemblyProduction","Return","WriteOff"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"InventoryRecordResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"locationId":{"type":"string","format":"uuid"},"quantityOnHand":{"type":"number","format":"double"},"quantityReserved":{"type":"number","format":"double"},"quantityInTransit":{"type":"number","format":"double"},"quantityAvailable":{"type":"number","format":"double"},"reorderPoint":{"type":"number","format":"double"},"reorderQuantity":{"type":"number","format":"double"},"safetyStock":{"type":"number","format":"double"},"reorderPointSource":{"$ref":"#/components/schemas/ReorderPointSource"},"costingMethod":{"$ref":"#/components/schemas/CostingMethod"},"averageCost":{"type":"number","format":"double"},"lastPurchaseCost":{"type":"number","format":"double"},"lastStockTakeDate":{"type":"string","format":"date-time","nullable":true},"lastMovementDate":{"type":"string","format":"date-time","nullable":true},"movements":{"type":"array","items":{"$ref":"#/components/schemas/InventoryMovementResponse"},"nullable":true}},"additionalProperties":false},"InventorySerialNumberResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"serialNumber":{"type":"string","nullable":true},"lotId":{"type":"string","format":"uuid","nullable":true},"workOrderId":{"type":"string","format":"uuid","nullable":true},"status":{"$ref":"#/components/schemas/SerialNumberStatus"}},"additionalProperties":false},"InviteTeamMemberCommand":{"required":["email"],"type":"object","properties":{"email":{"minLength":1,"type":"string","format":"email"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/UserRoles"},"nullable":true}},"additionalProperties":false},"LengthType":{"enum":["Unknown","Centimeter","Meter","Inch","Foot"],"type":"string","description":"These value numbers should not change as they are stored as digits in the database."},"LicenseTypeResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"name":{"type":"string","nullable":true},"countryCodeId":{"$ref":"#/components/schemas/CountryCode"}},"additionalProperties":false},"LimitOn":{"enum":["Dimension","Volume"],"type":"string"},"LocationChannelSalesResponse":{"type":"object","properties":{"salesChannelId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"orders":{"type":"integer","format":"int32"},"revenue":{"type":"number","format":"double"}},"additionalProperties":false,"description":"Sales for one sales channel at one location over a period."},"LocationInsightResponse":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"locationType":{"$ref":"#/components/schemas/BusinessLocationType"},"currency":{"type":"string","description":"The most common sale currency in the period. Null with no sales.","nullable":true},"totalRevenue":{"type":"number","format":"double"},"totalCost":{"type":"number","format":"double"},"profit":{"type":"number","description":"Total revenue minus total cost.","format":"double"},"orders":{"type":"integer","format":"int32"},"averageOrderValue":{"type":"number","description":"Total revenue divided by the order count. Null when the order count is zero.","format":"double","nullable":true},"previousOrders":{"type":"integer","format":"int32"},"previousRevenue":{"type":"number","format":"double"},"inboundPurchaseOrders":{"type":"integer","format":"int32"},"inboundPurchaseValue":{"type":"number","format":"double"},"inboundTransfers":{"type":"integer","format":"int32"},"outboundTransfers":{"type":"integer","format":"int32"},"inventoryValue":{"type":"number","description":"Current inventory value at the location. This value is not scoped to the period.","format":"double"},"activeProducts":{"type":"integer","description":"Count of products with quantity on hand above zero. This value is not scoped to the period.","format":"int32"},"channels":{"type":"array","items":{"$ref":"#/components/schemas/LocationChannelSalesResponse"},"nullable":true},"periodFrom":{"type":"string","format":"date-time"},"periodTo":{"type":"string","format":"date-time"}},"additionalProperties":false,"description":"Aggregated sales, inbound, outbound and inventory metrics for one business location over a period."},"LocationSalesBucketChannelResponse":{"type":"object","properties":{"salesChannelId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"kind":{"$ref":"#/components/schemas/SalesChannelKind"},"orders":{"type":"integer","format":"int32"},"revenue":{"type":"number","format":"double"}},"additionalProperties":false,"description":"Sales for one sales channel over one calendar month."},"LocationSalesBucketLocationResponse":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"latitude":{"type":"number","description":"The coordinate of the location's address. Null when the location has no address.","format":"double","nullable":true},"longitude":{"type":"number","description":"The coordinate of the location's address. Null when the location has no address.","format":"double","nullable":true},"orders":{"type":"integer","format":"int32"},"revenue":{"type":"number","format":"double"},"averageOrderValue":{"type":"number","description":"Revenue divided by orders, rounded to two decimals. Zero when orders is zero.","format":"double"}},"additionalProperties":false,"description":"Sales for one business location over one calendar month."},"LocationSalesBucketResponse":{"type":"object","properties":{"month":{"type":"string","description":"The calendar month, in the form \"2026-08\".","nullable":true},"locations":{"type":"array","items":{"$ref":"#/components/schemas/LocationSalesBucketLocationResponse"},"nullable":true},"channels":{"type":"array","items":{"$ref":"#/components/schemas/LocationSalesBucketChannelResponse"},"nullable":true}},"additionalProperties":false,"description":"Sales metrics for every business location and every sales channel over one calendar month."},"LocationSalesInsightResponse":{"type":"object","properties":{"periodFrom":{"type":"string","format":"date-time"},"periodTo":{"type":"string","format":"date-time"},"currency":{"type":"string","description":"The most common sale currency in the period. Null with no sales.","nullable":true},"buckets":{"type":"array","items":{"$ref":"#/components/schemas/LocationSalesBucketResponse"},"nullable":true},"points":{"type":"array","items":{"$ref":"#/components/schemas/LocationSalesPointResponse"},"nullable":true}},"additionalProperties":false,"description":"Sales metrics for every business location and every sales channel, one bucket for each\r\ncalendar month that a period touches, plus a set of points for a heatmap of online and\r\nmarketplace orders."},"LocationSalesPointResponse":{"type":"object","properties":{"month":{"type":"string","description":"The calendar month, in the form \"2026-08\".","nullable":true},"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"orders":{"type":"integer","format":"int32"},"revenue":{"type":"number","format":"double"}},"additionalProperties":false,"description":"One heatmap point for online and marketplace orders over one calendar month, grouped by the\r\ndestination address rounded to two decimal places."},"LocationTopProductResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"sku":{"type":"string","nullable":true},"totalSold":{"type":"number","format":"double"},"totalRevenue":{"type":"number","format":"double"}},"additionalProperties":false,"description":"A top-selling product at one location over a period."},"LocationTurnoverRowResponse":{"type":"object","properties":{"period":{"type":"string","nullable":true},"totalIn":{"type":"number","format":"double"},"totalOut":{"type":"number","format":"double"},"netChange":{"type":"number","format":"double"}},"additionalProperties":false,"description":"One month of inventory turnover at one location. Dispatch.Application.Contracts.Response.Analytics.Locations.LocationTurnoverRowResponse.Period has the form `\"2026-08\"`."},"MdiIcon":{"enum":["None","SyncAlert","Autorenew","Check","CheckMarkedCircle","AlertCircle","TruckDeliveryOutline","TruckFastOutline","PackageCheck","Warehouse","SwapHorizontal","AccountCheck","AccountRemove","AccountCancel","Delete"],"type":"string","description":"Icons from Material Design Icons\r\nReference: https://pictogrammers.com/library/mdi/"},"MetadataAttachmentType":{"enum":["File","Link"],"type":"string","description":"Discriminates a Dispatch.Application.Contracts.Services.MetadataFileAttachment\r\nentry between an uploaded/blob-backed file and a bare external link (no backing\r\n`file_attachments` row). Serialized as a string (PascalCase) both over the wire and in the\r\nentity metadata jsonb blobs."},"MetadataConfigurationValue":{"type":"object","properties":{"key":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"isVisible":{"type":"boolean","description":"If this is true, it should be surfaced to the dashboard..."},"isRequired":{"type":"boolean","description":"If the user needs to provide this value when configuring the integration."},"isSecret":{"type":"boolean","description":"If this is true, it should be returned as a marked value in the API response.\r\nWe will show the first 5 characters and last 3 characters and remove the rest for security purposes."},"prefixMask":{"type":"string","nullable":true},"suffixMask":{"type":"string","nullable":true},"validationRegex":{"type":"string","description":"If there is regex to be applied to validate the value, it should be set here....","nullable":true},"validationMessage":{"type":"string","nullable":true},"value":{"type":"string","description":"The stored configuration value","nullable":true}},"additionalProperties":false},"MetadataFileAttachment":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"$ref":"#/components/schemas/MetadataAttachmentType"},"fileAttachmentId":{"type":"string","description":"Guid of the canonical Dispatch.Application.Models.Aggregates.Businesses.FileAttachment aggregate row.\r\nTitle / Url / ContentType are denormalised snapshots taken from\r\nthat row at the time the attachment was associated, so the metadata\r\nrenders without an extra lookup. The file_attachments row remains\r\nthe source of truth for the underlying blob. Left as `Guid.Empty`\r\nfor Dispatch.Application.Enums.Shared.MetadataAttachmentType.Link entries — there is no backing file row.","format":"uuid"},"title":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"contentType":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"additionalProperties":false,"description":"An attachment represents a metadata link to a Dispatch blob storage location which contains some file,\r\nOR a bare external link with no backing file (see Dispatch.Application.Contracts.Services.MetadataFileAttachment.Type).\r\nNot quite as complete as the normal Dispatch.Application.Models.Aggregates.Businesses.FileAttachment aggregate."},"ModifyOrderItemPresetCommand":{"required":["dimensionPresetId","items","orderId"],"type":"object","properties":{"orderId":{"type":"string","format":"uuid"},"items":{"type":"array","items":{"$ref":"#/components/schemas/OrderItemIdentity"}},"dimensionPresetId":{"type":"string","format":"uuid"},"removeDimensionPreset":{"type":"boolean"}},"additionalProperties":false},"MultiSelectShipmentDto":{"required":["id"],"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"additionalProperties":false},"NetworkEdgeKind":{"enum":["PurchaseOrder","TransferOrder","SalesOrder"],"type":"string","description":"The kind of edge in the supply-chain network graph."},"NetworkEdgeResponse":{"type":"object","properties":{"id":{"type":"string","nullable":true},"sourceId":{"type":"string","format":"uuid"},"targetId":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/NetworkEdgeKind"},"count":{"type":"integer","format":"int32"},"value":{"type":"number","format":"double"},"inTransitCount":{"type":"integer","description":"The count of orders on this edge that are still in transit. Zero for a sales edge.","format":"int32"},"inTransitValue":{"type":"number","description":"The value of orders on this edge that are still in transit. Zero for a sales edge.","format":"double"}},"additionalProperties":false,"description":"One edge in the supply-chain network graph: a flow of purchase orders, transfer orders, or\r\nsales orders between two nodes over a period."},"NetworkInsightResponse":{"type":"object","properties":{"periodFrom":{"type":"string","format":"date-time"},"periodTo":{"type":"string","format":"date-time"},"currency":{"type":"string","description":"The most common sale currency in the period. Null with no sales.","nullable":true},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/NetworkNodeResponse"},"nullable":true},"edges":{"type":"array","items":{"$ref":"#/components/schemas/NetworkEdgeResponse"},"nullable":true},"totals":{"$ref":"#/components/schemas/NetworkTotalsResponse"}},"additionalProperties":false,"description":"The supply-chain network graph for a business over a period: every supplier, location and\r\nsales-channel node, plus the purchase-order, transfer-order and sales-order edges between them."},"NetworkNodeKind":{"enum":["Supplier","Location","Channel"],"type":"string","description":"The kind of node in the supply-chain network graph."},"NetworkNodeResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"$ref":"#/components/schemas/NetworkNodeKind"},"title":{"type":"string","nullable":true},"locationType":{"$ref":"#/components/schemas/BusinessLocationType"},"channelKind":{"$ref":"#/components/schemas/SalesChannelKind"},"latitude":{"type":"number","description":"Set for a supplier node and a location node. Null when the address is missing.","format":"double","nullable":true},"longitude":{"type":"number","description":"Set for a supplier node and a location node. Null when the address is missing.","format":"double","nullable":true},"country":{"type":"string","description":"Set only for a Dispatch.Application.Enums.Analytics.NetworkNodeKind.Supplier node with an address.","nullable":true}},"additionalProperties":false,"description":"One node in the supply-chain network graph: a supplier, a location, or a sales channel."},"NetworkTotalsResponse":{"type":"object","properties":{"suppliers":{"type":"integer","format":"int32"},"locations":{"type":"integer","format":"int32"},"storefronts":{"type":"integer","format":"int32"},"warehouses":{"type":"integer","format":"int32"},"channels":{"type":"integer","format":"int32"},"purchaseSpend":{"type":"number","format":"double"},"salesRevenue":{"type":"number","format":"double"}},"additionalProperties":false,"description":"Summary counts and monetary totals for the supply-chain network graph over a period."},"NotificationLevel":{"enum":["Standard","Info","Warning","Error","Success","Recommendation"],"type":"string","description":"Set's the level for any notification (which also maps onto the front-end colors used)"},"NotificationPriority":{"enum":["Low","Medium","High","Maximum"],"type":"string"},"NotificationResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"readNotification":{"type":"boolean"},"priority":{"$ref":"#/components/schemas/NotificationPriority"},"type":{"$ref":"#/components/schemas/NotificationType"},"level":{"$ref":"#/components/schemas/NotificationLevel"},"actionLink":{"type":"string","nullable":true},"entityType":{"$ref":"#/components/schemas/DispatchEntityType"},"entityId":{"type":"string","format":"uuid","nullable":true},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time","nullable":true},"user":{"$ref":"#/components/schemas/PrimitiveUserResponse"}},"additionalProperties":false},"NotificationType":{"enum":["Default","Business","User"],"type":"string"},"OrderBillingRequest":{"type":"object","properties":{"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxIncluded":{"type":"boolean"},"taxType":{"$ref":"#/components/schemas/TaxType"},"taxRate":{"type":"number","format":"double"}},"additionalProperties":false},"OrderCarrierMetadata":{"type":"object","properties":{"carrierId":{"type":"string","format":"uuid"},"earliestCollection":{"type":"string","format":"date-time"},"collectionRequested":{"type":"string","format":"date-time","nullable":true},"collectionAfterRequest":{"type":"string","format":"date-time","nullable":true},"dateDelivered":{"type":"string","format":"date-time","nullable":true},"dateOfReturnRequested":{"type":"string","format":"date-time","nullable":true},"timeframe":{"type":"string","nullable":true},"requestedCollection":{"type":"boolean"},"shipmentLabelGenerated":{"type":"boolean"},"requestedReturn":{"type":"boolean"},"packageCount":{"type":"integer","format":"int32"},"packages":{"type":"array","items":{"$ref":"#/components/schemas/OrderPackageMetadata"},"nullable":true}},"additionalProperties":false},"OrderCommentRequest":{"required":["comment"],"type":"object","properties":{"comment":{"maxLength":4000,"minLength":0,"type":"string"}},"additionalProperties":false},"OrderCommentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"orderId":{"type":"string","format":"uuid"},"comment":{"type":"string","nullable":true},"user":{"$ref":"#/components/schemas/PrimitiveUserResponse"},"dateCreated":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"OrderDeleteCommand":{"required":["id"],"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"additionalProperties":false},"OrderIntegrationControls":{"type":"object","properties":{"hasResolvedWeightType":{"type":"boolean"},"hasResolvedLengthType":{"type":"boolean"},"hasResolvedCurrency":{"type":"boolean"},"hasResolvedCountry":{"type":"boolean"},"hasResolvedProduct":{"type":"boolean"},"hasResolvedCustomer":{"type":"boolean"}},"additionalProperties":false},"OrderIntegrationDetailsResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"integrationId":{"type":"string","description":"The integration id as displayed on the relevant integration","nullable":true},"provider":{"$ref":"#/components/schemas/PrimitiveIntegrationProviderResponse"}},"additionalProperties":false},"OrderItemIdentity":{"required":["id"],"type":"object","properties":{"id":{"type":"string","format":"uuid"}},"additionalProperties":false},"OrderItemResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"quantityOrdered":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"orderShipment":{"$ref":"#/components/schemas/OrderShipmentResponse"},"product":{"$ref":"#/components/schemas/ProductResponse"},"shipment":{"$ref":"#/components/schemas/ShipmentResponse"},"carrier":{"$ref":"#/components/schemas/PrimitiveIntegrationProviderResponse"},"dimensionPreset":{"$ref":"#/components/schemas/PrimitiveDimensionPreset"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primaryImageUrl":{"type":"string","nullable":true},"geometry":{"$ref":"#/components/schemas/GeometryFieldsResponse"},"billing":{"$ref":"#/components/schemas/PriceDetailsResponse"}},"additionalProperties":false,"description":"Order Item maps onto ProductOrder and contains a property with all of the product information."},"OrderPackageMetadata":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"dimensions":{"$ref":"#/components/schemas/Geometry"}},"additionalProperties":false},"OrderResponse":{"type":"object","properties":{"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"deliveryItemCount":{"type":"integer","format":"int32"},"orderItemCount":{"type":"number","description":"Total quantity of items ordered across all line items. Surfaced for list views.","format":"double"},"description":{"type":"string","nullable":true},"purchaseOrderNumber":{"type":"string","description":"The customer's purchase order number, when this order was raised from a received customer PO.","nullable":true},"billing":{"$ref":"#/components/schemas/PriceDetailsResponse"},"shippingCosts":{"$ref":"#/components/schemas/OrderShippingCostsResponse"},"fulfillmentStatus":{"$ref":"#/components/schemas/FulfillmentStatus"},"customerIpAddress":{"type":"string","nullable":true},"serviceLevel":{"$ref":"#/components/schemas/ServiceLevel"},"weightType":{"$ref":"#/components/schemas/WeightType"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"status":{"$ref":"#/components/schemas/OrderStatus"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"fulfillmentSubType":{"$ref":"#/components/schemas/FulfillmentSubType"},"dateOfScheduledCollection":{"type":"string","format":"date-time","nullable":true},"dateCreatedOnIntegration":{"type":"string","format":"date-time"},"effectiveDate":{"type":"string","format":"date-time"},"dateOfDeliveryCompletion":{"type":"string","format":"date-time","nullable":true},"dateImported":{"type":"string","format":"date-time"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"paymentProcessed":{"type":"boolean"},"paymentUrl":{"type":"string","nullable":true},"integrationOrderUrl":{"type":"string","nullable":true},"multiCarrier":{"type":"boolean"},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"paymentMethod":{"$ref":"#/components/schemas/PaymentMethod"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/MetadataFileAttachment"},"nullable":true},"orderItems":{"type":"array","items":{"$ref":"#/components/schemas/OrderItemResponse"},"nullable":true},"orderShipments":{"type":"array","items":{"$ref":"#/components/schemas/OrderShipmentResponse"},"nullable":true},"destinationAddress":{"$ref":"#/components/schemas/AddressResponse"},"originAddress":{"$ref":"#/components/schemas/AddressResponse"},"originLocationId":{"type":"string","description":"The location/store the order is attributed to (trace which store it came from).","format":"uuid"},"originLocationTitle":{"type":"string","nullable":true},"sourceChannelId":{"type":"string","description":"The sales channel (medium) the order came through.","format":"uuid"},"sourceChannelTitle":{"type":"string","nullable":true},"sourceChannel":{"$ref":"#/components/schemas/SalesChannelResponse"},"customer":{"$ref":"#/components/schemas/CustomerResponse"},"carrierMetadata":{"$ref":"#/components/schemas/OrderCarrierMetadata"},"dimensionType":{"$ref":"#/components/schemas/DimensionTypeWithSymbols"},"currencyMetadata":{"$ref":"#/components/schemas/CurrencyResponse"},"fulfillmentProviders":{"type":"array","items":{"$ref":"#/components/schemas/PrimitiveIntegrationProviderResponse"},"nullable":true},"packageSizes":{"type":"array","items":{"$ref":"#/components/schemas/PrimitiveDimensionPreset"},"nullable":true},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/OrderIntegrationDetailsResponse"},"nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"OrderSalesVolumeHistoryResponse":{"type":"object","properties":{"sales":{"type":"integer","format":"int32"},"valueOfSales":{"type":"number","format":"double"},"date":{"type":"string","format":"date-time"}},"additionalProperties":false},"OrderSalesVolumeHistoryWrapperResponse":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/CurrencyResponse"},"salesThisMonth":{"type":"integer","format":"int32"},"salesSinceLastWeek":{"type":"number","format":"double"},"salesSinceLastMonth":{"type":"number","format":"double"},"items":{"type":"array","items":{"$ref":"#/components/schemas/OrderSalesVolumeHistoryResponse"},"nullable":true}},"additionalProperties":false},"OrderSettingsResponse":{"type":"object","properties":{"autoAllocatePackagePresets":{"type":"boolean"},"autoAllocateFulfillmentProvider":{"type":"boolean"},"autoGroupOrderItems":{"type":"boolean"},"collectionPreferences":{"type":"array","items":{"$ref":"#/components/schemas/CollectionPreferenceResponse"},"nullable":true},"dimensionPresets":{"type":"array","items":{"$ref":"#/components/schemas/DimensionPresetResponse"},"nullable":true},"fulfillmentContacts":{"type":"array","items":{"$ref":"#/components/schemas/PrimitiveUserResponse"},"nullable":true},"fulfillmentProviders":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentProviderResponse"},"nullable":true},"fulfillmentTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentTypeResponse"},"nullable":true},"defaultFulfillmentProvider":{"type":"string","format":"uuid","nullable":true},"fulfillmentProvider":{"$ref":"#/components/schemas/FulfillmentProviderResponse"},"defaultFulfillmentContact":{"type":"string","format":"uuid","nullable":true},"fulfillmentContact":{"$ref":"#/components/schemas/PrimitiveUserResponse"},"defaultDimensionPreset":{"type":"string","format":"uuid","nullable":true},"dimensionPreset":{"$ref":"#/components/schemas/DimensionPresetResponse"},"defaultFulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentTypeResponse"},"defaultCollectionPreference":{"$ref":"#/components/schemas/CollectionPreference"},"collectionPreference":{"$ref":"#/components/schemas/CollectionPreferenceResponse"},"collectionPreferenceDate":{"type":"string","format":"date-time"}},"additionalProperties":false},"OrderSettingsUpdateCommand":{"type":"object","properties":{"autoAllocatePackagePresets":{"type":"boolean"},"autoAllocateFulfillmentProvider":{"type":"boolean"},"autoGroupOrderItems":{"type":"boolean"},"defaultDimensionPreset":{"type":"string","format":"uuid","nullable":true},"defaultFulfillmentContact":{"type":"string","format":"uuid","nullable":true},"defaultFulfillmentProvider":{"type":"string","format":"uuid","nullable":true},"defaultCollectionPreference":{"$ref":"#/components/schemas/CollectionPreference"}},"additionalProperties":false},"OrderShipmentResponse":{"type":"object","properties":{"shipmentQuotation":{"$ref":"#/components/schemas/ShipmentQuotationResponse"},"order":{"$ref":"#/components/schemas/OrderResponse"},"shipment":{"$ref":"#/components/schemas/ShipmentResponse"},"fulfillmentProvider":{"$ref":"#/components/schemas/PrimitiveIntegrationProviderResponse"},"canModifyItems":{"type":"boolean","description":"Whether the item set of this shipment can still be changed, through\r\n`PUT /orders/{orderId}/shipments/{shipmentId}/items`. False once the shipment leaves the\r\nActive status, or once a label, an invoice, a fulfillment request, an approved quotation, or\r\na manual lock names the load it carries. The client reads this rather than deriving the rule,\r\nso the portal and the API can never disagree."}},"additionalProperties":false},"OrderShippingCostsResponse":{"type":"object","properties":{"shippingSubTotal":{"type":"number","format":"double"},"shippingDiscount":{"type":"number","format":"double"},"shippingTax":{"type":"number","format":"double"},"shippingTotal":{"type":"number","format":"double"}},"additionalProperties":false},"OrderStatus":{"enum":["Unknown","New","PendingCollection","PendingDelivery","Complete","Cancelled","PendingReturn","Returned"],"type":"string","description":"NOTE: Do not change the numeric assignment of values. The values are used in the database and should not be changed."},"PagedResultOfActivityTrace":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ActivityTrace"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfAppConfigurationResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/AppConfigurationResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfBomResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/BomResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfBusinessIntegrationProviderWorkflowResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/BusinessIntegrationProviderWorkflowResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfBusinessLocationResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/BusinessLocationResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfBusinessResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/BusinessResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfChannelSalesInsightResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ChannelSalesInsightResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfContactResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ContactResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfCustomerGroupResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CustomerGroupResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfCustomerResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CustomerResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfDeliveryZoneResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/DeliveryZoneResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfDispatchResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/DispatchResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfFulfillmentProviderResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentProviderResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfIntegrationProviderResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationProviderResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfInventoryLotResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/InventoryLotResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfInventoryMovementResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/InventoryMovementResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfInventoryRecordResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/InventoryRecordResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfLocationInsightResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/LocationInsightResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfNotificationResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/NotificationResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfOrderCommentResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OrderCommentResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfOrderResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OrderResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfPrimitiveUserAccountResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/PrimitiveUserAccountResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfProductCostHistoryPointResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ProductCostHistoryPointResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfProductPriceDetailsResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ProductPriceDetailsResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfProductResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ProductResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfProductShipmentResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ProductShipmentResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfProductionProcessResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ProductionProcessResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfPurchaseOrderResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/PurchaseOrderResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfReorderHistoryResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ReorderHistoryResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfScheduleEventOccurrenceResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleEventOccurrenceResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfShipmentCommentResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ShipmentCommentResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfShipmentQuotationResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ShipmentQuotationResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfShipmentResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ShipmentResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfShipmentTraceResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ShipmentTraceResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfSupplierMetricsResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SupplierMetricsResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfSupplierResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SupplierResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfTeamResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TeamResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfTrackingDeviceResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TrackingDeviceResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfTransferOrderResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TransferOrderResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfVehicleResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/VehicleResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfVehicleTravelHistory":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/VehicleTravelHistory"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfWaybillDto":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/WaybillDto"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfWorkOrderCommentResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderCommentResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfWorkOrderResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PagedResultOfWorkOrderTemplateResponse":{"type":"object","properties":{"count":{"type":"integer","format":"int32","readOnly":true},"totalCount":{"type":"integer","format":"int32","readOnly":true},"page":{"type":"integer","format":"int32","readOnly":true},"finalPage":{"type":"integer","format":"int32","readOnly":true},"pageSize":{"type":"integer","format":"int32","readOnly":true},"hasMore":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"data":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderTemplateResponse"},"nullable":true,"readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true}},"additionalProperties":false},"PatchConfiguredWorkflowRequest":{"required":["isEnabled"],"type":"object","properties":{"isEnabled":{"type":"boolean"}},"additionalProperties":false,"description":"Payload for partially updating a configured workflow. Currently only the active state is patchable."},"PatchNotificationRequest":{"required":["read"],"type":"object","properties":{"read":{"type":"boolean"}},"additionalProperties":false,"description":"Payload for partially updating a notification. Currently only the read state is patchable."},"PatchOrderCommand":{"type":"object","properties":{"orderId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"fulfillmentSubType":{"$ref":"#/components/schemas/FulfillmentSubType"},"serviceLevel":{"$ref":"#/components/schemas/ServiceLevel"},"status":{"$ref":"#/components/schemas/OrderStatus"},"paymentProcessed":{"type":"boolean","nullable":true},"collectionDate":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Partial update of an order's editable header fields. Every field is nullable and only\r\napplied when non-null, so a caller can PATCH a single property without supplying (and\r\nclobbering) the rest of the order."},"PatchPurchaseOrderCommand":{"type":"object","properties":{"purchaseOrderId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"supplierId":{"type":"string","format":"uuid","nullable":true},"destinationLocationId":{"type":"string","format":"uuid","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"status":{"$ref":"#/components/schemas/PurchaseOrderStatus"},"expectedDeliveryDate":{"type":"string","format":"date-time","nullable":true},"description":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Partial update of a purchase order's header. Every field is nullable and only applied when\r\nnon-null. Dispatch.Application.Handlers.Commands.PurchaseOrders.PatchPurchaseOrder.PatchPurchaseOrderCommand.SupplierId/Dispatch.Application.Handlers.Commands.PurchaseOrders.PatchPurchaseOrder.PatchPurchaseOrderCommand.DestinationLocationId/Dispatch.Application.Handlers.Commands.PurchaseOrders.PatchPurchaseOrder.PatchPurchaseOrderCommand.CurrencyCode\r\nmay only change while the purchase order is Draft; Dispatch.Application.Handlers.Commands.PurchaseOrders.PatchPurchaseOrder.PatchPurchaseOrderCommand.Status follows the guarded\r\ntransition map in the handler (mirrors `PatchOrderCommandHandler`)."},"PatchRoleCommand":{"type":"object","properties":{"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"roleType":{"$ref":"#/components/schemas/RoleType"},"scope":{"$ref":"#/components/schemas/RoleScope"},"permissions":{"type":"object","properties":{"Orders":{"$ref":"#/components/schemas/PermissionAction"},"Shipments":{"$ref":"#/components/schemas/PermissionAction"},"Customers":{"$ref":"#/components/schemas/PermissionAction"},"Products":{"$ref":"#/components/schemas/PermissionAction"},"Vehicles":{"$ref":"#/components/schemas/PermissionAction"},"Integrations":{"$ref":"#/components/schemas/PermissionAction"},"TeamAndRoles":{"$ref":"#/components/schemas/PermissionAction"},"Billing":{"$ref":"#/components/schemas/PermissionAction"},"Workflows":{"$ref":"#/components/schemas/PermissionAction"},"Settings":{"$ref":"#/components/schemas/PermissionAction"},"Insights":{"$ref":"#/components/schemas/PermissionAction"},"Suppliers":{"$ref":"#/components/schemas/PermissionAction"},"PurchaseOrders":{"$ref":"#/components/schemas/PermissionAction"},"WorkOrders":{"$ref":"#/components/schemas/PermissionAction"},"TransferOrders":{"$ref":"#/components/schemas/PermissionAction"},"Schedule":{"$ref":"#/components/schemas/PermissionAction"}},"additionalProperties":false,"description":"When provided, replaces the full permission matrix for the role.","nullable":true}},"additionalProperties":false,"description":"Partial update of a role: metadata (title/description/type/scope) and/or a full permission-matrix\r\nreplace. Every field is nullable so a caller can PATCH just one concern without clobbering the\r\nother — when Dispatch.Application.Handlers.Commands.Roles.PatchRole.PatchRoleCommand.Permissions is supplied it fully replaces the matrix (mirroring the old\r\nSetRolePermissions behaviour); metadata fields are applied individually when non-null."},"PatchShipmentCommand":{"type":"object","properties":{"shipmentId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"status":{"$ref":"#/components/schemas/ShipmentStatus"},"dateOfPickup":{"type":"string","format":"date-time","nullable":true},"dateOfDelivery":{"type":"string","format":"date-time","nullable":true},"dateOfDeparture":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Partial update of a shipment's editable header fields. Every field is nullable and only\r\napplied when non-null, so a caller can PATCH a single property without supplying (and\r\nclobbering) the rest of the shipment. Absorbs the former dates-only endpoint."},"PatchTransferOrderCommand":{"type":"object","properties":{"transferOrderId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"status":{"$ref":"#/components/schemas/TransferOrderStatus"},"expectedArrivalDate":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Partial update of a transfer order's status and editable header fields. Every field is nullable\r\nand only applied when non-null. Dispatch.Application.Handlers.Commands.TransferOrders.PatchTransferOrder.PatchTransferOrderCommand.Status accepts only guarded transitions:\r\nRequested → Approved or Rejected; Draft → Approved (the direct-transfer path skips the request\r\nhop); Cancelled from any pre-dispatch state (Draft/Requested/Approved)."},"PaymentMethod":{"enum":["Unknown","Cash","Card","CashOnDelivery","CardOnDelivery","Eft","Crypto","Paypal","WireTransfer","DebitOrder"],"type":"string","description":""},"PermissionAction":{"enum":["None","View","Modify","Delete"],"type":"string","description":"The actions a role may perform within a Dispatch.Application.Enums.Entities.Auth.PermissionModule.\r\nA bitmask (the first `[Flags]` enum in the repo) persisted as `business_role_permissions.actions int`."},"PermissionModule":{"enum":["Orders","Shipments","Customers","Products","Vehicles","Integrations","TeamAndRoles","Billing","Workflows","Settings","Insights","Suppliers","PurchaseOrders","WorkOrders","TransferOrders","Schedule"],"type":"string","description":"The feature domains a role's permissions are scoped to — loosely aligned to entity types.\r\nPersisted as `business_role_permissions.module smallint`. Extend by appending new values\r\n(never renumber existing ones — the integer is the stored value)."},"PreConfigureIntegrationProviderCommand":{"type":"object","properties":{"providerId":{"type":"integer","description":"Represents the root provider id `lookup_integration_providers.id` (int).","format":"int32"},"configuredProviderId":{"type":"string","description":"Optionally if the integration has been 'seeded' for the business","format":"uuid","nullable":true},"configurationValues":{"type":"object","additionalProperties":{"type":"string"},"nullable":true}},"additionalProperties":false},"PriceAdjustmentType":{"enum":["Percentage","Amount"],"type":"string","description":"How a signed adjustment value applies to a base price. Dispatch.Application.Enums.Entities.PriceLists.PriceAdjustmentType.Percentage scales the base\r\nprice; Dispatch.Application.Enums.Entities.PriceLists.PriceAdjustmentType.Amount adds a flat value to it. These values should not change since they\r\nare stored in the database as a native PG enum."},"PriceDetailsResponse":{"type":"object","properties":{"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxIncluded":{"type":"boolean"},"taxRate":{"type":"number","format":"double"},"taxType":{"$ref":"#/components/schemas/TaxType"},"currency":{"$ref":"#/components/schemas/CurrencyResponse"}},"additionalProperties":false},"PriceListAssignmentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"scopeType":{"$ref":"#/components/schemas/PriceListScopeType"},"scopeId":{"type":"string","format":"uuid"},"priority":{"type":"integer","format":"int32"}},"additionalProperties":false},"PriceListItemBasis":{"enum":["Fixed","Pegged"],"type":"string","description":"Whether a price list item stores an absolute amount (Dispatch.Application.Enums.Entities.PriceLists.PriceListItemBasis.Fixed), or whether an\r\nadjustment applies to the product's base price at resolution time (Dispatch.Application.Enums.Entities.PriceLists.PriceListItemBasis.Pegged). A\r\npegged item keeps its money columns at zero; they are never read. These values should not\r\nchange since they are stored in the database as a native PG enum."},"PriceListItemResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"productTitle":{"type":"string","nullable":true},"productSku":{"type":"string","nullable":true},"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxRate":{"type":"number","format":"double"},"taxIncluded":{"type":"boolean"},"taxType":{"$ref":"#/components/schemas/TaxType"},"priceUnit":{"$ref":"#/components/schemas/UnitOfMeasure"},"pricePackQuantity":{"type":"number","format":"double"},"basis":{"$ref":"#/components/schemas/PriceListItemBasis"},"adjustmentType":{"$ref":"#/components/schemas/PriceAdjustmentType"},"adjustmentValue":{"type":"number","format":"double","nullable":true},"effectivePrice":{"$ref":"#/components/schemas/ProductPriceDetailsResponse"}},"additionalProperties":false},"PriceListPricingMode":{"enum":["Fixed","Relative"],"type":"string","description":"Whether a price list only prices the products that have an item row (Dispatch.Application.Enums.Entities.PriceLists.PriceListPricingMode.Fixed), or\r\nalso prices every other product through a rule applied to its base price (Dispatch.Application.Enums.Entities.PriceLists.PriceListPricingMode.Relative).\r\nThese values should not change since they are stored in the database as a native PG enum."},"PriceListResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"status":{"$ref":"#/components/schemas/PriceListStatus"},"effectiveFrom":{"type":"string","format":"date-time","nullable":true},"effectiveTo":{"type":"string","format":"date-time","nullable":true},"pricingMode":{"$ref":"#/components/schemas/PriceListPricingMode"},"adjustmentType":{"$ref":"#/components/schemas/PriceAdjustmentType"},"adjustmentValue":{"type":"number","format":"double","nullable":true},"roundingStep":{"type":"number","format":"double"},"items":{"type":"array","items":{"$ref":"#/components/schemas/PriceListItemResponse"},"nullable":true},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/PriceListAssignmentResponse"},"nullable":true}},"additionalProperties":false},"PriceListScopeType":{"enum":["SalesChannel","Location","DeliveryZone","CustomerGroup","Customer"],"type":"string","description":"The kind of business axis a price list is bound to via a price-list assignment. The assignment's\r\nscope_id points at a row of the corresponding table. These values should not change since they are\r\nstored in the database as a native PG enum."},"PriceListStatus":{"enum":["Active","Inactive"],"type":"string","description":"Whether a price list is in force. These values should not change since they are stored in the\r\ndatabase as a native PG enum. Independent of `EffectiveFrom`/`EffectiveTo` — a price\r\nlist can be active but outside its effective window, or inactive but inside it."},"PriceMatrixResponse":{"type":"object","properties":{"businessDimensionPreset":{"$ref":"#/components/schemas/DimensionPresetResponse"},"dimensionType":{"$ref":"#/components/schemas/GeometryFieldSymbol"},"currency":{"$ref":"#/components/schemas/CurrencyResponse"},"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"rate":{"type":"number","format":"double"},"distanceBasedRate":{"type":"number","format":"double"},"minWeight":{"type":"number","format":"double"},"maxWeight":{"type":"number","format":"double","nullable":true},"deliveryDaysMin":{"type":"integer","format":"int32"},"deliveryDaysMax":{"type":"integer","format":"int32"},"serviceLevel":{"$ref":"#/components/schemas/ServiceLevel"},"limitOn":{"$ref":"#/components/schemas/LimitOn"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"originZone":{"$ref":"#/components/schemas/DeliveryZoneResponse"},"destinationZone":{"$ref":"#/components/schemas/DeliveryZoneResponse"},"discounts":{"type":"array","items":{"$ref":"#/components/schemas/DiscountMatrixResponse"},"nullable":true}},"additionalProperties":false},"PriceResolutionBasis":{"enum":["FixedItem","PeggedItem","ListRule"],"type":"string","description":"Which rule won a price resolution: a fixed item's own stored amount, a pegged item's adjustment\r\nagainst the product base price, or a relative list's own rule with no item for the product. This\r\nis an application-only enum. PostgreSQL does not store it, and no migration registers it."},"PriceSource":{"enum":["Manual","SupplierUpdate","Import","Sync","Migration"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"PriceType":{"enum":["Selling","Purchase","Cost"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"PrimitiveDimensionPreset":{"type":"object","properties":{"title":{"type":"string","nullable":true},"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"id":{"type":"string","format":"uuid"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"}},"additionalProperties":false},"PrimitiveIntegrationProviderResponse":{"type":"object","properties":{"configuredProviderId":{"type":"string","format":"uuid","nullable":true},"id":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"logoUrl":{"type":"string","nullable":true}},"additionalProperties":false},"PrimitivePriceMatrixResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"rate":{"type":"number","format":"double"}},"additionalProperties":false,"description":"Lightweight projection of a price matrix used as a cross-reference on a discount matrix.\r\nCarries just enough information to identify the parent price matrix without recursing\r\ninto the full Dispatch.Application.Contracts.Response.Rates.PriceMatrixResponse (which itself lists its discounts)."},"PrimitiveUserAccountResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"accountStatus":{"$ref":"#/components/schemas/UserAccountStatus"},"acceptedTerms":{"type":"boolean"},"isVerified":{"type":"boolean"},"dateVerified":{"type":"string","format":"date-time","nullable":true},"address":{"$ref":"#/components/schemas/AddressResponse"},"driver":{"$ref":"#/components/schemas/DriverResponse"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/RoleResponse"},"nullable":true},"userBusinesses":{"type":"array","items":{"$ref":"#/components/schemas/UserBusinessResponse"},"nullable":true}},"additionalProperties":false},"PrimitiveUserResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"displayName":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true}},"additionalProperties":false},"ProcessStatus":{"enum":["Draft","Active","Blocked","Superseded"],"type":"string","description":"These values should not change since they are stored in the database as a native PG enum.\r\nProduction processes are superseded, never mutated — the active revision is the current\r\nmethod for making a product. Mirrors !:BomStatus."},"ProcessStepMaterialRequest":{"type":"object","properties":{"componentProductId":{"type":"string","format":"uuid"}},"additionalProperties":false},"ProcessStepMaterialResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"componentProductId":{"type":"string","format":"uuid"},"componentTitle":{"type":"string","nullable":true},"componentCode":{"type":"string","nullable":true},"componentSku":{"type":"string","nullable":true},"componentType":{"$ref":"#/components/schemas/ProductType"}},"additionalProperties":false},"ProcessStepRequest":{"type":"object","properties":{"stepNumber":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true},"expectedDurationMinutes":{"type":"number","format":"double","nullable":true},"equipmentRequired":{"type":"string","nullable":true},"sortOrder":{"type":"integer","format":"int32"},"consumes":{"type":"array","items":{"$ref":"#/components/schemas/ProcessStepMaterialRequest"},"description":"Optional component products this step consumes (soft hint).","nullable":true}},"additionalProperties":false},"ProcessStepResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"stepNumber":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true},"expectedDurationMinutes":{"type":"number","format":"double","nullable":true},"equipmentRequired":{"type":"string","nullable":true},"sortOrder":{"type":"integer","format":"int32"},"consumes":{"type":"array","items":{"$ref":"#/components/schemas/ProcessStepMaterialResponse"},"nullable":true}},"additionalProperties":false},"ProductCategoryPrimitive":{"type":"object","properties":{"category":{"type":"string","nullable":true}},"additionalProperties":false},"ProductCostHistoryPointResponse":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"effectiveDate":{"type":"string","format":"date-time"},"averageCost":{"type":"number","format":"double"},"balanceAfter":{"type":"number","format":"double"},"movementType":{"$ref":"#/components/schemas/InventoryMovementType"}},"additionalProperties":false,"description":"One point on a product's weighted-average-cost-over-time series (per location)."},"ProductDetailSalesVolumeHistory":{"type":"object","properties":{"sales":{"type":"integer","format":"int32"},"valueOfSales":{"type":"number","format":"double"},"date":{"type":"string","format":"date-time"}},"additionalProperties":false},"ProductDetailSalesVolumeHistoryWrapper":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/CurrencyResponse"},"productId":{"type":"string","format":"uuid"},"salesThisMonth":{"type":"integer","format":"int32"},"salesSinceLastWeek":{"type":"number","format":"double"},"salesSinceLastMonth":{"type":"number","format":"double"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ProductDetailSalesVolumeHistory"},"nullable":true}},"additionalProperties":false},"ProductDimensionRequest":{"type":"object","properties":{"weight":{"minimum":0,"type":"number","format":"double"},"width":{"minimum":0,"type":"number","format":"double"},"length":{"minimum":0,"type":"number","format":"double"},"height":{"minimum":0,"type":"number","format":"double"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"}},"additionalProperties":false},"ProductFamilyResponse":{"type":"object","properties":{"group":{"$ref":"#/components/schemas/ProductGroupResponse"},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductResponse"},"nullable":true}},"additionalProperties":false,"description":"Response for a family import. Dispatch.Application.Contracts.Response.Products.ProductFamilyResponse.Group is null when fewer than two members exist\r\n(a single \"default variant\" stays ungrouped). Each Dispatch.Application.Contracts.Response.Products.ProductResponse carries its\r\n`Integrations[].Id` so an order sync can reference its line items by ProductIntegrationId."},"ProductGeometryFieldsResponse":{"type":"object","properties":{"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"weightSymbol":{"type":"string","nullable":true},"lengthSymbol":{"type":"string","nullable":true},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"title":{"type":"string","nullable":true},"geometrySymbol":{"$ref":"#/components/schemas/GeometryFieldSymbol"}},"additionalProperties":false},"ProductGroupAssignmentRequest":{"required":["groupId"],"type":"object","properties":{"groupId":{"type":"string","format":"uuid"},"optionValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Per-axis values for this member, e.g. {\"Pack Size\": \"4-pack\"}.","nullable":true},"position":{"type":"integer","description":"Display order within the group; appended (0) when omitted.","format":"int32","nullable":true}},"additionalProperties":false,"description":"Create-time membership of a product in an existing product group. Mirrors the fields\r\nof the standalone POST /product-groups/{id}/members endpoint so a variant can be fully\r\nplaced into its family without a follow-up call."},"ProductGroupMemberResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"sku":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"totalAvailableQuantity":{"type":"number","format":"double"},"currentPrice":{"$ref":"#/components/schemas/ProductPriceDetailsResponse"},"optionValues":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"position":{"type":"integer","format":"int32"},"isPrimary":{"type":"boolean"}},"additionalProperties":false},"ProductGroupResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"optionAxes":{"type":"array","items":{"type":"string"},"nullable":true},"primaryProductId":{"type":"string","format":"uuid","nullable":true},"externalGroupId":{"type":"string","description":"When set, this group is integration-owned (mirrors an external provider family); the portal\r\nlocks its display fields against merchant edits and re-sync reconciles only membership.\r\nNull = merchant-owned.","nullable":true},"members":{"type":"array","items":{"$ref":"#/components/schemas/ProductGroupMemberResponse"},"nullable":true},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"ProductGroupSummaryResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"variantCount":{"type":"integer","format":"int32"}},"additionalProperties":false,"description":"Catalog-card summary of a product group (variant family): the umbrella name and how many\r\nproducts it contains. Presentation-only — see Dispatch.Application.Contracts.Response.Products.ProductResponse.Group."},"ProductIntegrationProviderResponse":{"type":"object","properties":{"provider":{"$ref":"#/components/schemas/PrimitiveIntegrationProviderResponse"},"id":{"type":"string","description":"Represents the product integration id.","format":"uuid"},"integrationId":{"type":"string","description":"The composite integration id in it's original form represented as a string.\r\nRefer to ProductService::GetProductResponse()","nullable":true},"product":{"$ref":"#/components/schemas/ProductResponse"}},"additionalProperties":false},"ProductPriceDetailsResponse":{"type":"object","properties":{"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxIncluded":{"type":"boolean"},"taxRate":{"type":"number","format":"double"},"taxType":{"$ref":"#/components/schemas/TaxType"},"currency":{"$ref":"#/components/schemas/CurrencyResponse"},"id":{"type":"string","format":"uuid"},"purchasable":{"type":"boolean"},"priceType":{"$ref":"#/components/schemas/PriceType"},"source":{"$ref":"#/components/schemas/PriceSource"},"notes":{"type":"string","nullable":true},"effectiveDate":{"type":"string","format":"date-time","nullable":true},"currencyMetadata":{"$ref":"#/components/schemas/CurrencyResponse"},"priceUnit":{"$ref":"#/components/schemas/UnitOfMeasure"},"pricePackQuantity":{"type":"number","format":"double"},"pricePerUnit":{"type":"number","format":"double"},"basis":{"$ref":"#/components/schemas/PriceResolutionBasis"},"adjustmentType":{"$ref":"#/components/schemas/PriceAdjustmentType"},"adjustmentValue":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"ProductPriceListResponse":{"type":"object","properties":{"priceListId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"status":{"$ref":"#/components/schemas/PriceListStatus"},"isLive":{"type":"boolean","description":"True when the list is active and inside its effective window right now."},"effectiveFrom":{"type":"string","format":"date-time","nullable":true},"effectiveTo":{"type":"string","format":"date-time","nullable":true},"basis":{"$ref":"#/components/schemas/PriceResolutionBasis"},"item":{"$ref":"#/components/schemas/PriceListItemResponse"},"effectivePrice":{"$ref":"#/components/schemas/ProductPriceDetailsResponse"},"scopes":{"type":"array","items":{"$ref":"#/components/schemas/ProductPriceListScopeResponse"},"nullable":true}},"additionalProperties":false,"description":"One price list that prices a product, as returned by `GET /products/{productId}/price-lists`.\r\nThis is deliberately not a Dispatch.Application.Contracts.Response.PriceLists.PriceListResponse: it carries only the override (or the\r\nlist's own rule) for the requested product rather than every item on the list, and it resolves\r\nthe title of each scope."},"ProductPriceListScopeResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"scopeType":{"$ref":"#/components/schemas/PriceListScopeType"},"scopeId":{"type":"string","format":"uuid"},"scopeTitle":{"type":"string","description":"Null when the row the scope points at no longer exists.","nullable":true},"priority":{"type":"integer","format":"int32"}},"additionalProperties":false},"ProductResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"sku":{"type":"string","nullable":true},"barcode":{"type":"string","nullable":true},"upc":{"type":"string","nullable":true},"ean":{"type":"string","nullable":true},"mpn":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"body":{"type":"string","nullable":true},"productLink":{"type":"string","nullable":true},"productType":{"$ref":"#/components/schemas/ProductType"},"status":{"$ref":"#/components/schemas/ProductStatus"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"purchasable":{"type":"boolean"},"isSellable":{"type":"boolean"},"isPurchasable":{"type":"boolean"},"isTaxable":{"type":"boolean"},"requiresShipping":{"type":"boolean"},"totalAvailableQuantity":{"type":"number","description":"Available stock derived from the inventory ledger: the sum of (on-hand − reserved) across the\r\nproduct's inventory records at all locations. Populated by the product query handlers; the\r\nproduct no longer carries a stored quantity.","format":"double"},"totalSold":{"type":"number","format":"double"},"totalSoldValue":{"type":"number","format":"double"},"onSale":{"type":"boolean"},"currentPrice":{"$ref":"#/components/schemas/ProductPriceDetailsResponse"},"traces":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"description":"Get the historical view of changes for this object","nullable":true},"defaultImage":{"$ref":"#/components/schemas/MetadataFileAttachment"},"images":{"type":"array","items":{"$ref":"#/components/schemas/MetadataFileAttachment"},"nullable":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/MetadataFileAttachment"},"nullable":true},"geometry":{"$ref":"#/components/schemas/ProductGeometryFieldsResponse"},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/ProductIntegrationProviderResponse"},"nullable":true},"locale":{"$ref":"#/components/schemas/SymbolicLocaleMetadata"},"dimensionPreset":{"$ref":"#/components/schemas/DimensionPresetResponse"},"dimensionPresets":{"type":"array","items":{"$ref":"#/components/schemas/DimensionPresetResponse"},"nullable":true},"categories":{"type":"array","items":{"$ref":"#/components/schemas/ProductCategoryPrimitive"},"nullable":true},"supplier":{"$ref":"#/components/schemas/SupplierResponse"},"group":{"$ref":"#/components/schemas/ProductGroupSummaryResponse"},"tags":{"type":"array","items":{"type":"string"},"nullable":true},"hasRating":{"type":"boolean"},"rating":{"type":"number","format":"double"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"ProductShipmentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"trackingId":{"type":"string","nullable":true},"destination":{"type":"string","nullable":true},"quantity":{"type":"number","format":"double"},"status":{"$ref":"#/components/schemas/ShipmentStatus"},"dateCreated":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"A shipment that contains a given product, with the quantity of that product in the shipment."},"ProductStatus":{"enum":["Active","Inactive","Discontinued"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"ProductSupplierResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"supplier":{"$ref":"#/components/schemas/SupplierResponse"},"isPrimary":{"type":"boolean"},"supplierPartNumber":{"type":"string","nullable":true},"lastQuotedPrice":{"type":"number","format":"double","nullable":true},"lastQuotedPriceCurrencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"leadTimeDays":{"type":"integer","format":"int32","nullable":true},"minimumOrderQuantity":{"type":"number","format":"double","nullable":true},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"}},"additionalProperties":false,"description":"One supplier link for a product — see `GET/POST/DELETE products/{id}/suppliers`."},"ProductType":{"enum":["FinishedGood","RawMaterial","Component","Consumable","Service"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"ProductionProcessResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"productTitle":{"type":"string","nullable":true},"productCode":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/ProcessStatus"},"revisionNumber":{"type":"integer","format":"int32"},"effectiveDate":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time","nullable":true},"steps":{"type":"array","items":{"$ref":"#/components/schemas/ProcessStepResponse"},"nullable":true}},"additionalProperties":false},"ProvisionAddress":{"type":"object","properties":{"fullAddress":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"placeId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"number":{"type":"string","nullable":true},"unit":{"type":"string","nullable":true},"street":{"type":"string","nullable":true},"suburb":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"province":{"type":"string","nullable":true},"postcode":{"type":"string","nullable":true},"latitude":{"type":"number","format":"double","nullable":true},"longitude":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"ProvisionBusinessDetails":{"type":"object","properties":{"registeredName":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"currencyCode":{"type":"string","nullable":true},"address":{"$ref":"#/components/schemas/ProvisionAddress"},"requiresOrderIntegration":{"type":"boolean"},"requiresOrderFulfillment":{"type":"boolean"},"requiresAccountingIntegration":{"type":"boolean"},"requiresDispatchBuilder":{"type":"boolean"}},"additionalProperties":false},"ProvisionOrganizationRequest":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid"},"slug":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"idempotencyKey":{"type":"string","nullable":true},"business":{"$ref":"#/components/schemas/ProvisionBusinessDetails"},"primaryUser":{"$ref":"#/components/schemas/ProvisionUserProfile"}},"additionalProperties":false},"ProvisionOrganizationResult":{"type":"object","properties":{"businessId":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"registeredName":{"type":"string","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"requiresOrderIntegration":{"type":"boolean"},"requiresOrderFulfillment":{"type":"boolean"},"requiresAccountingIntegration":{"type":"boolean"},"requiresDispatchBuilder":{"type":"boolean"},"billingAddress":{"$ref":"#/components/schemas/ProvisionAddress"}},"additionalProperties":false,"description":"Returned by `POST /internal/provision-organization`. Carries the persisted business back\r\n(including the geocoded billing address the main API resolved) so the Global API's registration\r\nresponse can echo real, org-provisioned data rather than re-deriving it from the request it sent."},"ProvisionUserProfile":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"emailAddress":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"phoneNumber":{"type":"string","nullable":true}},"additionalProperties":false},"PurchaseOrderItemResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid","nullable":true},"productTitle":{"type":"string","nullable":true},"productSku":{"type":"string","nullable":true},"quantityOrdered":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"quantityReceived":{"type":"number","format":"double"},"quantityRejected":{"type":"number","format":"double"},"unitCost":{"type":"number","format":"double"},"subTotal":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"}},"additionalProperties":false},"PurchaseOrderResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"supplierId":{"type":"string","format":"uuid"},"supplierTitle":{"type":"string","nullable":true},"destinationLocationId":{"type":"string","format":"uuid"},"destinationLocationTitle":{"type":"string","nullable":true},"sourceTransferOrderId":{"type":"string","format":"uuid","nullable":true},"status":{"$ref":"#/components/schemas/PurchaseOrderStatus"},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"subTotal":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"expectedDeliveryDate":{"type":"string","format":"date-time","nullable":true},"effectiveDate":{"type":"string","format":"date-time"},"dateOfReceiptCompletion":{"type":"string","format":"date-time","nullable":true},"description":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/PurchaseOrderItemResponse"},"nullable":true},"shipments":{"type":"array","items":{"$ref":"#/components/schemas/PurchaseOrderShipmentResponse"},"nullable":true},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"}},"additionalProperties":false},"PurchaseOrderShipmentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"shipmentId":{"type":"string","format":"uuid"},"shipmentCode":{"type":"string","nullable":true},"shipmentStatus":{"$ref":"#/components/schemas/ShipmentStatus"},"shipmentFulfillmentStatus":{"$ref":"#/components/schemas/FulfillmentStatus"},"shipmentTrackingId":{"type":"string","nullable":true},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"PurchaseOrderStatus":{"enum":["Draft","Ordered","Confirmed","PartiallyReceived","Received","Closed","Cancelled"],"type":"string","description":"NOTE: Do not change the numeric assignment of values. The values are used in the database and should not be changed."},"ReceivePurchaseOrderCommand":{"type":"object","properties":{"purchaseOrderId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"effectiveDate":{"type":"string","description":"Optional business-date override for this receipt's inventory movement(s) and, once the\r\npurchase order completes, the Dispatch.Application.Models.Aggregates.PurchaseOrders.PurchaseOrder.DateOfReceiptCompletion stamp\r\n(defaults to now). One per receipt call — not per line — mirroring the platform's existing\r\neffective-date backdating convention (orders/movements).","format":"date-time","nullable":true},"lines":{"type":"array","items":{"$ref":"#/components/schemas/ReceivePurchaseOrderItemRequest"},"nullable":true}},"additionalProperties":false,"description":"Records a receiving pass against a purchase order — per-line received/rejected quantities that\r\npost inventory movements, increment the line items, and recompute the purchase order's status."},"ReceivePurchaseOrderItemRequest":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"quantityReceived":{"type":"number","format":"double"},"quantityRejected":{"type":"number","format":"double","nullable":true},"unitCost":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":"A single receiving line: how much of a given product was received/rejected against the\r\npurchase order. Dispatch.Application.Contracts.Request.PurchaseOrders.ReceivePurchaseOrderItemRequest.UnitCost is optional — when omitted it defaults to the line\r\nitem's ordered unit cost."},"ReceiveTransferOrderCommand":{"required":["items"],"type":"object","properties":{"transferOrderId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"effectiveDate":{"type":"string","description":"Optional business-date override for the TransferIn movement(s) and, once fully received, the\r\n`DateReceived` stamp (defaults to now) — see\r\nM:Dispatch.Application.Interfaces.Repositories.ITransferOrderRepository.Receive(Dispatch.Application.Models.Aggregates.TransferOrders.TransferOrder,System.Collections.Generic.IReadOnlyCollection{Dispatch.Application.Models.Aggregates.TransferOrders.TransferOrderReceiptLine},Dispatch.Application.Interfaces.Shared.IBusinessContext,System.Nullable{System.DateTime}).","format":"date-time","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/ReceiveTransferOrderItemRequest"},"nullable":true}},"additionalProperties":false,"description":"Receives some or all of an in-transit transfer order. Only valid while InTransit or\r\nPartiallyReceived. Items not listed are left untouched (a further partial receipt)."},"ReceiveTransferOrderItemRequest":{"required":["productId","quantityReceived"],"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"quantityReceived":{"type":"number","format":"double"}},"additionalProperties":false,"description":"Per-item quantity supplied on a receiving action against an in-transit transfer order."},"ReorderHistoryResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"reorderPoint":{"type":"number","format":"double"},"reorderQuantity":{"type":"number","format":"double"},"safetyStock":{"type":"number","format":"double"},"source":{"$ref":"#/components/schemas/ReorderPointSource"},"changedByUserId":{"type":"string","format":"uuid","nullable":true},"changedByUserName":{"type":"string","nullable":true},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"ReorderPointSource":{"enum":["Manual","Forecast"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"ReportSummaryResponse":{"type":"object","properties":{"current":{"type":"integer","format":"int32"},"previous":{"type":"integer","format":"int32"},"percentageChange":{"type":"number","format":"double"},"isIncrease":{"type":"boolean"}},"additionalProperties":false,"description":"Response DTO for a single period-comparison metric widget on the dashboard."},"RequestShipmentCollectionRequest":{"required":["dateOfCollection"],"type":"object","properties":{"dateOfCollection":{"type":"string","format":"date-time"}},"additionalProperties":false},"ResumeWorkflowRequest":{"required":["workflowId"],"type":"object","properties":{"workflowId":{"minLength":1,"type":"string"}},"additionalProperties":false,"description":"Payload for resuming a suspended workflow instance."},"RoleResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"roleType":{"$ref":"#/components/schemas/RoleType"},"scope":{"$ref":"#/components/schemas/RoleScope"},"isSystem":{"type":"boolean"},"permissions":{"type":"object","properties":{"Orders":{"$ref":"#/components/schemas/PermissionAction"},"Shipments":{"$ref":"#/components/schemas/PermissionAction"},"Customers":{"$ref":"#/components/schemas/PermissionAction"},"Products":{"$ref":"#/components/schemas/PermissionAction"},"Vehicles":{"$ref":"#/components/schemas/PermissionAction"},"Integrations":{"$ref":"#/components/schemas/PermissionAction"},"TeamAndRoles":{"$ref":"#/components/schemas/PermissionAction"},"Billing":{"$ref":"#/components/schemas/PermissionAction"},"Workflows":{"$ref":"#/components/schemas/PermissionAction"},"Settings":{"$ref":"#/components/schemas/PermissionAction"},"Insights":{"$ref":"#/components/schemas/PermissionAction"},"Suppliers":{"$ref":"#/components/schemas/PermissionAction"},"PurchaseOrders":{"$ref":"#/components/schemas/PermissionAction"},"WorkOrders":{"$ref":"#/components/schemas/PermissionAction"},"TransferOrders":{"$ref":"#/components/schemas/PermissionAction"},"Schedule":{"$ref":"#/components/schemas/PermissionAction"}},"additionalProperties":false,"nullable":true},"peopleCount":{"type":"integer","format":"int32"}},"additionalProperties":false},"RoleScope":{"enum":["Branch","Franchise"],"type":"string","description":"Where a role's permissions apply. Persisted as `business_roles.scope smallint`.\r\n\r\n\r\nCurrently a configurable attribute only — enforcement is always against the active business.\r\nDispatch.Application.Enums.Entities.Auth.RoleScope.Franchise (permissions cascading across child businesses) is future work driven by\r\nconfiguration/workflows.\r\n"},"RoleType":{"enum":["Default","Remote","Custom"],"type":"string","description":"Categorises a role for the management UI. Persisted as `business_roles.role_type smallint`."},"SalesChannelKind":{"enum":["Direct","PointOfSale","Online","Marketplace"],"type":"string","description":"The medium a sale originates through. Independent of the physical location/store the sale\r\nis attributed to (one channel — e.g. a shared Yoco POS — can serve many locations)."},"SalesChannelResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"kind":{"$ref":"#/components/schemas/SalesChannelKind"},"defaultLocationId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"SaveCustomerAppConfigurationCommand":{"type":"object","properties":{"customerId":{"type":"string","format":"uuid"},"key":{"type":"string","nullable":true},"value":{"type":"string","nullable":true}},"additionalProperties":false},"ScheduleEventAssigneeRequest":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","nullable":true},"teamId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false,"description":"One assignee on a create or update command: exactly one of Dispatch.Application.Contracts.Requests.Schedules.ScheduleEventAssigneeRequest.UserId/Dispatch.Application.Contracts.Requests.Schedules.ScheduleEventAssigneeRequest.TeamId is set."},"ScheduleEventAssigneeResponse":{"type":"object","properties":{"userId":{"type":"string","format":"uuid","nullable":true},"teamId":{"type":"string","format":"uuid","nullable":true},"name":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Exactly one of Dispatch.Application.Contracts.Response.Schedules.ScheduleEventAssigneeResponse.UserId/Dispatch.Application.Contracts.Response.Schedules.ScheduleEventAssigneeResponse.TeamId is set. Dispatch.Application.Contracts.Response.Schedules.ScheduleEventAssigneeResponse.Name is resolved live, never snapshotted."},"ScheduleEventDeleteScope":{"enum":["Occurrence","Series"],"type":"string","description":"How far a schedule event delete reaches. Not persisted — a command parameter only."},"ScheduleEventOccurrenceResponse":{"type":"object","properties":{"seriesId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"type":{"$ref":"#/components/schemas/ScheduleEventType"},"occurrenceStart":{"type":"string","format":"date-time"},"occurrenceEnd":{"type":"string","format":"date-time"},"isRecurring":{"type":"boolean"},"assignees":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleEventAssigneeResponse"},"nullable":true},"createdByUser":{"$ref":"#/components/schemas/PrimitiveUserResponse"}},"additionalProperties":false,"description":"One expanded instance of a series — the shape the calendar range read returns."},"ScheduleEventResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"type":{"$ref":"#/components/schemas/ScheduleEventType"},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","format":"date-time"},"isRecurring":{"type":"boolean"},"recurrence":{"$ref":"#/components/schemas/ScheduleRecurrenceResponse"},"assignees":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleEventAssigneeResponse"},"nullable":true},"exceptionDates":{"type":"array","items":{"type":"string","format":"date"},"nullable":true},"createdByUser":{"$ref":"#/components/schemas/PrimitiveUserResponse"},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"}},"additionalProperties":false,"description":"The full series — the shape a create/update/get-one response returns, for the edit modal."},"ScheduleEventType":{"enum":["Dispatch","Incoming","Task","Production"],"type":"string","description":"Native PG enum `schedule_event_type`. Do not change the numeric assignment of values."},"ScheduleRecurrenceFrequency":{"enum":["None","Daily","Weekly","Monthly"],"type":"string","description":"Native PG enum `schedule_recurrence_frequency`. Do not change the numeric assignment of values."},"ScheduleRecurrenceRequest":{"type":"object","properties":{"frequency":{"$ref":"#/components/schemas/ScheduleRecurrenceFrequency"},"interval":{"type":"integer","format":"int32"},"daysOfWeek":{"type":"array","items":{"$ref":"#/components/schemas/DayOfWeek"},"description":"Weekly recurrence only. Empty means the series repeats on the start date's own weekday.","nullable":true},"until":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"The recurrence rule of a create or update command. Mirrors Dispatch.Application.Models.Values.Recurrence."},"ScheduleRecurrenceResponse":{"type":"object","properties":{"frequency":{"$ref":"#/components/schemas/ScheduleRecurrenceFrequency"},"interval":{"type":"integer","format":"int32"},"daysOfWeek":{"type":"array","items":{"$ref":"#/components/schemas/DayOfWeek"},"nullable":true},"until":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"SelectVehicle":{"type":"object","properties":{"id":{"maximum":2147483647,"minimum":1,"type":"integer","format":"int32"}},"additionalProperties":false},"SerialNumberStatus":{"enum":["Available","Consumed","Shipped","Scrapped"],"type":"string","description":"These values should not change since they are stored in the database as a native PG enum.\r\nLifecycle state of one captured serial number."},"ServiceLevel":{"enum":["Unknown","Standard","Express","SameDay","Overnight","TwoDay","InternationalStandard","InternationalExpress","OnDemand","Freight"],"type":"string","description":"Generic service level for a carrier. These carriers can be mapped onto carrier specific service levels, since this typically differs between carriers."},"ServiceLevelTemplate":{"required":["description","serviceLevel","timeWindow","title"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"minLength":1,"type":"string"},"price":{"minimum":0,"type":"number","format":"double"},"serviceLevel":{"minLength":1,"type":"string"},"timeWindow":{"minLength":1,"type":"string"},"description":{"minLength":1,"type":"string"}},"additionalProperties":false},"SetReorderSettingsRequest":{"type":"object","properties":{"reorderPoint":{"maximum":7.922816251426434e+28,"minimum":0,"type":"number","format":"double"},"reorderQuantity":{"maximum":7.922816251426434e+28,"minimum":0,"type":"number","format":"double"},"safetyStock":{"maximum":7.922816251426434e+28,"minimum":0,"type":"number","format":"double"},"source":{"$ref":"#/components/schemas/ReorderPointSource"}},"additionalProperties":false,"description":"Payload to set the reorder point, reorder quantity, and safety stock on one inventory record."},"ShipmentActivityAction":{"enum":["None","StatusChange","AllocatedToDispatch","OnRoute","CloseToDestination","AtDestination","AtDepotCentre","Sorted","Scanned","SortingInProgress","OrderReceived","Delivered","Modified","Created"],"type":"string"},"ShipmentCommentRequest":{"required":["comment"],"type":"object","properties":{"comment":{"maxLength":4000,"minLength":0,"type":"string"}},"additionalProperties":false},"ShipmentCommentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"shipmentId":{"type":"string","format":"uuid"},"comment":{"type":"string","nullable":true},"user":{"$ref":"#/components/schemas/PrimitiveUserResponse"},"dateCreated":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"ShipmentDimensionsRequest":{"type":"object","properties":{"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"presetId":{"type":"string","format":"uuid"}},"additionalProperties":false},"ShipmentItemResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"orderItemId":{"type":"string","format":"uuid","nullable":true},"productId":{"type":"string","format":"uuid","nullable":true},"quantity":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"geometry":{"$ref":"#/components/schemas/GeometryFieldsResponse"},"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"}},"additionalProperties":false},"ShipmentOverview":{"type":"object","properties":{"total":{"type":"integer","format":"int32"},"active":{"type":"integer","format":"int32"},"pending":{"type":"integer","format":"int32"},"closed":{"type":"integer","format":"int32"},"complete":{"type":"integer","format":"int32"}},"additionalProperties":false},"ShipmentQuotationResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"provider":{"$ref":"#/components/schemas/PrimitiveIntegrationProviderResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentItemResponse"},"nullable":true},"requiredServices":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentProviderServiceTypeModel"},"nullable":true},"requirements":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentRequirementTypeModel"},"nullable":true},"collection":{"$ref":"#/components/schemas/CollectionResponse"},"delivery":{"$ref":"#/components/schemas/DeliveryResponse"},"totalDeclaredValue":{"type":"number","format":"double"},"isInternational":{"type":"boolean"},"isApprovedByUser":{"type":"boolean"},"totalItems":{"type":"integer","format":"int32"},"serviceLevelText":{"type":"string","nullable":true},"serviceLevel":{"$ref":"#/components/schemas/ServiceLevel"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"deliveryType":{"$ref":"#/components/schemas/FulfillmentDeliveryType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"dateOfEstimatedCollection":{"type":"string","description":"The estimated collection and delivery dates, when they are known. The quotation row holds\r\nno such column, so these come from the schedule of the shipment that the quotation is for.\r\nThey are null when no estimate exists — do not substitute today's date.","format":"date-time","nullable":true},"dateOfEstimatedDelivery":{"type":"string","format":"date-time","nullable":true},"currency":{"$ref":"#/components/schemas/CurrencyResponse"},"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxIncluded":{"type":"boolean"},"shipment":{"$ref":"#/components/schemas/ShipmentResponse"}},"additionalProperties":false},"ShipmentResponse":{"type":"object","properties":{"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"status":{"$ref":"#/components/schemas/ShipmentStatus"},"hasDimensions":{"type":"boolean"},"dateOfDeparture":{"type":"string","format":"date-time","nullable":true},"title":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"providerServiceLevelId":{"$ref":"#/components/schemas/Uid"},"providerServiceLevelIdType":{"$ref":"#/components/schemas/UidType"},"serviceLevel":{"$ref":"#/components/schemas/ServiceLevel"},"code":{"type":"string","nullable":true},"description":{"maxLength":3000,"minLength":0,"type":"string","nullable":true},"handlingType":{"$ref":"#/components/schemas/HandlingType"},"requiresApproval":{"type":"boolean"},"totalDeclaredValue":{"type":"number","format":"double"},"quantityOfItems":{"type":"number","format":"double"},"trackingId":{"type":"string","nullable":true},"barcode":{"type":"string","nullable":true},"delivery":{"$ref":"#/components/schemas/DeliveryResponse"},"collection":{"$ref":"#/components/schemas/CollectionResponse"},"currency":{"$ref":"#/components/schemas/CurrencyResponse"},"dispatch":{"$ref":"#/components/schemas/DispatchResponse"},"business":{"$ref":"#/components/schemas/BusinessResponse"},"customer":{"$ref":"#/components/schemas/CustomerResponse"},"items":{"type":"array","items":{"$ref":"#/components/schemas/ShipmentItemResponse"},"nullable":true},"fulfillmentContacts":{"type":"array","items":{"$ref":"#/components/schemas/ContactResponse"},"nullable":true},"orderShipments":{"type":"array","items":{"$ref":"#/components/schemas/OrderShipmentResponse"},"nullable":true},"waypoints":{"type":"array","items":{"$ref":"#/components/schemas/ShipmentWaypointResponse"},"nullable":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"nullable":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/MetadataFileAttachment"},"nullable":true}},"additionalProperties":false},"ShipmentStatus":{"enum":["Unknown","Active","PendingCollection","CollectionUnassigned","CollectionAssigned","CollectionRejected","CollectionException","CollectionFailedAttempt","Collected","AtHub","ReturnedToHub","InTransit","AtDestinationHub","DeliveryUnassigned","DeliveryAssigned","DeliveryRejected","DeliveryException","OutForDelivery","DeliveryFailedAttempt","InLocker","Delivered","Cancelled"],"type":"string","description":"Shipment statuses. To protect historical data integrity do not change the order (integer value) of these statuses."},"ShipmentTraceResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"message":{"type":"string","nullable":true},"shipmentStatus":{"$ref":"#/components/schemas/ShipmentStatus"},"activityAction":{"$ref":"#/components/schemas/ShipmentActivityAction"},"dateCreated":{"type":"string","format":"date-time"},"userId":{"type":"string","format":"uuid","nullable":true},"activityType":{"$ref":"#/components/schemas/ActivityType"}},"additionalProperties":false},"ShipmentWaypointResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"segmentPosition":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"dateCheckedIn":{"type":"string","format":"date-time","nullable":true},"dateCheckedOut":{"type":"string","format":"date-time","nullable":true},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"},"address":{"$ref":"#/components/schemas/AddressResponse"}},"additionalProperties":false},"SingleResultOfAddressResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/AddressResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBomCostBreakdownResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BomCostBreakdownResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBomMarginHistoryResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BomMarginHistoryResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBomResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BomResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBomTreeResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BomTreeResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBoolean":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"type":"boolean","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBusinessDefaultSettings":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BusinessDefaultSettings"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBusinessIntegrationProviderWorkflowResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BusinessIntegrationProviderWorkflowResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBusinessLocationCapabilitiesResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BusinessLocationCapabilitiesResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBusinessLocationResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BusinessLocationResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfBusinessResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/BusinessResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfContactResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ContactResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfCustomerDetailSalesHistoryWrapperResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/CustomerDetailSalesHistoryWrapperResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfCustomerGroupResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/CustomerGroupResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfCustomerKpiMetricsResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/CustomerKpiMetricsResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfCustomerResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/CustomerResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDashboardSummaryResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DashboardSummaryResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDaysOfCoverResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DaysOfCoverResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDeliveryPlanTimelineResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DeliveryPlanTimelineResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDeliveryZoneResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DeliveryZoneResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDimensionPresetResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DimensionPresetResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDiscountMatrixResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DiscountMatrixResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDispatchCodeResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DispatchCodeResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDispatchOverviewResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DispatchOverviewResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfDispatchResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/DispatchResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfExecuteWorkflowActionResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ExecuteWorkflowActionResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfFileAttachmentResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/FileAttachmentResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfFileUploadResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/FileUploadResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfFulfillmentProviderLookupWrapperResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/FulfillmentProviderLookupWrapperResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfFulfillmentProviderResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/FulfillmentProviderResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfGeometryFieldSymbol":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/GeometryFieldSymbol"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfInt32":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"type":"integer","format":"int32","readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfIntegrationOrderApiResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/IntegrationOrderApiResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfIntegrationProviderResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/IntegrationProviderResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfInventoryLotResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/InventoryLotResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfInventoryRecordResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/InventoryRecordResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfLocationInsightResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/LocationInsightResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfLocationSalesInsightResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/LocationSalesInsightResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfNetworkInsightResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/NetworkInsightResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfNotificationResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/NotificationResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfOrderCommentResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/OrderCommentResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfOrderResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/OrderResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfOrderSalesVolumeHistoryWrapperResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/OrderSalesVolumeHistoryWrapperResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfOrderSettingsResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/OrderSettingsResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfPriceListAssignmentResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/PriceListAssignmentResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfPriceListItemResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/PriceListItemResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfPriceListResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/PriceListResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfPriceMatrixResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/PriceMatrixResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfPrimitiveUserAccountResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/PrimitiveUserAccountResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfProductDetailSalesVolumeHistoryWrapper":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ProductDetailSalesVolumeHistoryWrapper"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfProductFamilyResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ProductFamilyResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfProductGroupResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ProductGroupResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfProductPriceDetailsResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ProductPriceDetailsResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfProductResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ProductResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfProductSupplierResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ProductSupplierResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfProductionProcessResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ProductionProcessResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfPurchaseOrderResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/PurchaseOrderResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfRoleResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/RoleResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfSalesChannelResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/SalesChannelResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfScheduleEventResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ScheduleEventResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfShipmentCommentResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ShipmentCommentResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfShipmentOverview":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ShipmentOverview"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfShipmentQuotationResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ShipmentQuotationResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfShipmentResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ShipmentResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfShipmentWaypointResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/ShipmentWaypointResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfSqlQueryResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/SqlQueryResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfStockTraceabilityBackwardResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/StockTraceabilityBackwardResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfStockTraceabilityForwardResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/StockTraceabilityForwardResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfString":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"type":"string","nullable":true,"readOnly":true},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfSupplierMetricsResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/SupplierMetricsResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfSupplierResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/SupplierResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfSymbolicLocaleMetadata":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/SymbolicLocaleMetadata"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfTeamResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/TeamResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfTransferOrderResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/TransferOrderResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfVehicleLocationResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/VehicleLocationResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfVehicleResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/VehicleResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfVehicleTrackerResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/VehicleTrackerResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfVolumeSummaryResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/VolumeSummaryResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfWorkOrderCommentResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/WorkOrderCommentResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfWorkOrderResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/WorkOrderResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SingleResultOfWorkOrderTemplateResponse":{"type":"object","properties":{"message":{"type":"string","nullable":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ActionMessage"},"nullable":true},"data":{"$ref":"#/components/schemas/WorkOrderTemplateResponse"},"statusCode":{"$ref":"#/components/schemas/HttpStatusCode"},"canRead":{"type":"boolean"},"canEdit":{"type":"boolean"},"canDelete":{"type":"boolean"}},"additionalProperties":false},"SqlColumnResponse":{"type":"object","properties":{"name":{"type":"string","nullable":true},"label":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"role":{"type":"string","nullable":true}},"additionalProperties":false},"SqlQueryResponse":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/SqlColumnResponse"},"nullable":true},"rows":{"type":"array","items":{"type":"object","additionalProperties":{}},"nullable":true},"rowCount":{"type":"integer","format":"int32"},"queryMs":{"type":"integer","format":"int64"}},"additionalProperties":false,"description":"API response for an AI Studio ad-hoc query. Shape matches the frontend's\r\n`QueryResult` contract (columns + rows + counts/timing)."},"StockTraceabilityBackwardResponse":{"type":"object","properties":{"shipmentId":{"type":"string","format":"uuid"},"inferenceBasis":{"type":"string","nullable":true},"disclaimer":{"type":"string","nullable":true},"sources":{"type":"array","items":{"$ref":"#/components/schemas/StockTraceabilityBackwardSourceResponse"},"nullable":true}},"additionalProperties":false,"description":"Tier-1 stock traceability, backward direction (complaint). See stock_traceability_plan.md, Tier 1."},"StockTraceabilityBackwardSourceResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"productTitle":{"type":"string","nullable":true},"movementType":{"$ref":"#/components/schemas/InventoryMovementType"},"referenceType":{"type":"string","nullable":true},"referenceId":{"type":"string","format":"uuid","nullable":true},"purchaseOrderId":{"type":"string","format":"uuid","nullable":true},"purchaseOrderCode":{"type":"string","nullable":true},"supplierId":{"type":"string","format":"uuid","nullable":true},"supplierTitle":{"type":"string","nullable":true},"quantityConsumed":{"type":"number","format":"double"},"sourceEffectiveDate":{"type":"string","format":"date-time"},"saleEffectiveDate":{"type":"string","format":"date-time"}},"additionalProperties":false},"StockTraceabilityForwardConsumptionResponse":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"productTitle":{"type":"string","nullable":true},"shipmentId":{"type":"string","format":"uuid"},"orderId":{"type":"string","format":"uuid"},"orderCode":{"type":"string","nullable":true},"customerId":{"type":"string","format":"uuid","nullable":true},"customerTitle":{"type":"string","nullable":true},"quantityConsumed":{"type":"number","format":"double"},"receiptEffectiveDate":{"type":"string","format":"date-time"},"shipmentEffectiveDate":{"type":"string","format":"date-time"}},"additionalProperties":false},"StockTraceabilityForwardResponse":{"type":"object","properties":{"purchaseOrderId":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid","nullable":true},"inferenceBasis":{"type":"string","nullable":true},"disclaimer":{"type":"string","nullable":true},"consumptions":{"type":"array","items":{"$ref":"#/components/schemas/StockTraceabilityForwardConsumptionResponse"},"nullable":true}},"additionalProperties":false,"description":"Tier-1 stock traceability, forward direction (recall). See stock_traceability_plan.md, Tier 1."},"SupplierMetricsResponse":{"type":"object","properties":{"supplierId":{"type":"string","format":"uuid"},"avgLeadTimeDays":{"type":"number","description":"Average days from PO placement to receipt completion. Null with no completed receipts.","format":"double","nullable":true},"onTimeRate":{"type":"number","description":"Share (0..1) of received POs with a known expected delivery date that arrived on time.","format":"double","nullable":true},"fillRate":{"type":"number","description":"Units received / units ordered across received POs (0..1 typically).","format":"double","nullable":true},"defectRate":{"type":"number","description":"Units rejected / units received+rejected across received POs.","format":"double","nullable":true},"totalSpend":{"type":"number","description":"Total spend across non-cancelled POs in the period.","format":"double"},"activePurchaseOrders":{"type":"integer","description":"Live count of POs currently Ordered/Confirmed/PartiallyReceived.","format":"int32"},"periodFrom":{"type":"string","format":"date-time"},"periodTo":{"type":"string","format":"date-time"}},"additionalProperties":false,"description":"Aggregated purchase-order performance metrics for a single supplier over a period."},"SupplierResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"contact":{"$ref":"#/components/schemas/ContactResponse"},"addressId":{"type":"string","description":"Reference to the supplier's origin address (`business_addresses`), if set.","format":"uuid","nullable":true},"address":{"$ref":"#/components/schemas/AddressResponse"},"paymentTerms":{"type":"string","description":"Free-text payment terms (e.g. \"Net 30\"). Display-only.","nullable":true},"defaultLeadTimeDays":{"type":"integer","description":"Fallback lead time in days for suppliers with no purchase-order history yet.","format":"int32","nullable":true},"code":{"type":"string","description":"Optional free-text internal reference code for the supplier (e.g. \"SUP-001\"). Display-only.","nullable":true},"defaultCurrency":{"$ref":"#/components/schemas/CurrencyCode"}},"additionalProperties":false},"SymbolicLocaleMetadata":{"type":"object","properties":{"currency":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"weight":{"type":"string","nullable":true},"length":{"type":"string","nullable":true},"businessDefaultTypes":{"$ref":"#/components/schemas/GeometryAndCountryMetadata"}},"additionalProperties":false},"TaxType":{"enum":["None","Sales","Vat","Gst","Pst","Hst","Qst","Ist","Ust","Cst"],"type":"string"},"TeamResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"members":{"type":"array","items":{"$ref":"#/components/schemas/PrimitiveUserResponse"},"nullable":true},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"}},"additionalProperties":false},"TimelineOrderKind":{"enum":["None","Sales","Purchase"],"type":"string","description":"Tells which order a shipment on a delivery plan came from. A shipment can carry\r\ngoods out against a sales order, or bring goods in against a purchase order.\r\nA shipment that no order links to is Dispatch.Application.Enums.Dispatches.TimelineOrderKind.None."},"TrackingDeviceCoordinateResponse":{"type":"object","properties":{"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"}},"additionalProperties":false},"TrackingDeviceResponse":{"type":"object","properties":{"deviceId":{"type":"integer","format":"int32"},"battery":{"type":"integer","format":"int32"},"recentHeartbeat":{"type":"integer","format":"int64"},"coordinate":{"$ref":"#/components/schemas/TrackingDeviceCoordinateResponse"}},"additionalProperties":false},"TransferInventoryCommand":{"required":["destinationLocationId","productId","quantity","sourceLocationId"],"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"sourceLocationId":{"type":"string","format":"uuid"},"destinationLocationId":{"type":"string","format":"uuid"},"quantity":{"maximum":9999999999,"minimum":1,"type":"number","format":"double"},"notes":{"maxLength":500,"minLength":0,"type":"string","nullable":true},"effectiveDate":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Atomically moves stock between two locations. Generates two movements within a single transaction:\r\na TransferOut at the source and a TransferIn at the destination."},"TransferOrderItemResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"productTitle":{"type":"string","nullable":true},"productCode":{"type":"string","nullable":true},"productSku":{"type":"string","nullable":true},"quantity":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"quantityReceived":{"type":"number","format":"double"},"quantityRemaining":{"type":"number","format":"double"},"unitCost":{"type":"number","format":"double","nullable":true}},"additionalProperties":false},"TransferOrderResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string","nullable":true},"originLocationId":{"type":"string","format":"uuid"},"originLocationTitle":{"type":"string","nullable":true},"destinationLocationId":{"type":"string","format":"uuid"},"destinationLocationTitle":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/TransferOrderStatus"},"requestedByUserId":{"type":"string","format":"uuid","nullable":true},"expectedArrivalDate":{"type":"string","format":"date-time","nullable":true},"dateDispatched":{"type":"string","format":"date-time","nullable":true},"dateReceived":{"type":"string","format":"date-time","nullable":true},"notes":{"type":"string","nullable":true},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"$ref":"#/components/schemas/TransferOrderItemResponse"},"nullable":true}},"additionalProperties":false},"TransferOrderStatus":{"enum":["Draft","Requested","Approved","InTransit","PartiallyReceived","Received","Rejected","Cancelled"],"type":"string","description":"NOTE: Do not change the numeric assignment of values. The values are used in the database and should not be changed."},"Uid":{"type":"object","additionalProperties":false,"description":"Dispatch universal ID\r\nA primitive to wrap a GUID, LONG or INT value and return as bytes;"},"UidType":{"enum":["Unknown","Long","Guid","String"],"type":"string"},"UnitOfMeasure":{"enum":["Each","Kilogram","Gram","Litre","Millilitre","Metre","Centimetre","SquareMetre","CubicMetre","Pair","Pack","Box","Roll","Sheet"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"UpdateAddressRequest":{"required":["city","country","latitude","longitude","postcode","province","street"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"placeId":{"maxLength":100,"minLength":0,"type":"string","format":"string","nullable":true},"name":{"maxLength":50,"minLength":0,"type":"string","format":"string","nullable":true},"website":{"maxLength":100,"minLength":0,"type":"string","format":"uri","nullable":true},"fullAddress":{"maxLength":500,"minLength":0,"type":"string","nullable":true},"street":{"maxLength":80,"minLength":0,"type":"string","format":"string"},"suburb":{"maxLength":80,"minLength":0,"type":"string","format":"string","nullable":true},"city":{"maxLength":80,"minLength":0,"type":"string"},"country":{"maxLength":80,"minLength":0,"type":"string"},"postcode":{"maxLength":15,"minLength":0,"type":"string","format":"postal-code"},"unit":{"maxLength":10,"minLength":0,"type":"string","nullable":true},"number":{"maxLength":20,"minLength":0,"type":"string","format":"postal-code","nullable":true},"province":{"maxLength":80,"minLength":0,"type":"string","format":"string"},"latitude":{"maximum":90,"minimum":-90,"type":"number","format":"double"},"longitude":{"maximum":180,"minimum":-180,"type":"number","format":"double"}},"additionalProperties":false},"UpdateBomCommand":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"parentProductId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"bomType":{"$ref":"#/components/schemas/BomType"},"status":{"$ref":"#/components/schemas/BomStatus"},"revisionNumber":{"type":"integer","format":"int32"},"effectiveDate":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time","nullable":true},"assemblyInstructions":{"type":"string","nullable":true},"outputQuantity":{"type":"number","format":"double"},"lineItems":{"type":"array","items":{"$ref":"#/components/schemas/BomLineItemRequest"},"nullable":true},"costLines":{"type":"array","items":{"$ref":"#/components/schemas/BomCostLineRequest"},"nullable":true}},"additionalProperties":false},"UpdateBomLineItemCommand":{"type":"object","properties":{"bomId":{"type":"string","format":"uuid"},"lineItemId":{"type":"string","format":"uuid"},"componentProductId":{"type":"string","format":"uuid"},"quantityRequired":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"},"scrapFactorPercent":{"type":"number","format":"double"},"sortOrder":{"type":"integer","format":"int32","nullable":true},"notes":{"type":"string","nullable":true}},"additionalProperties":false},"UpdateBusinessCommand":{"required":["billingAddress","displayName","email","phoneNumber","registeredName"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"multipleBranches":{"type":"boolean"},"registeredName":{"maxLength":100,"minLength":0,"type":"string"},"displayName":{"maxLength":50,"minLength":0,"type":"string"},"phoneNumber":{"minLength":1,"type":"string","format":"tel"},"website":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"email":{"minLength":1,"type":"string","format":"email"},"requiresOrderIntegration":{"type":"boolean"},"requiresOrderFulfillment":{"type":"boolean"},"requiresAccountingIntegration":{"type":"boolean"},"requiresDispatchBuilder":{"type":"boolean"},"billingAddress":{"$ref":"#/components/schemas/UpdateAddressRequest"},"shippingAddress":{"$ref":"#/components/schemas/UpdateAddressRequest"}},"additionalProperties":false},"UpdateBusinessLocationCapabilitiesCommand":{"type":"object","properties":{"locationId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"mayCreatePurchaseOrders":{"type":"boolean"},"mayRequestTransferOrders":{"type":"boolean"},"mayFulfillTransferOrders":{"type":"boolean"},"mayCreateSalesOrders":{"type":"boolean"},"mayProduce":{"type":"boolean"},"defaultFulfillmentLocationId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"UpdateBusinessLocationCommand":{"required":["address","title"],"type":"object","properties":{"businessId":{"type":"string","format":"uuid"},"locationId":{"type":"string","format":"uuid"},"title":{"maxLength":255,"minLength":0,"type":"string"},"description":{"type":"string","nullable":true},"locationType":{"$ref":"#/components/schemas/BusinessLocationType"},"address":{"$ref":"#/components/schemas/UpdateAddressRequest"},"isDefault":{"type":"boolean","description":"Promotes/demotes the default flag. `null`/omitted leaves the default flag untouched;\r\n`true` promotes this location (demoting the current default in the same transaction)\r\nunless it is already the default; `false` is a no-op unless this location is the current\r\ndefault, in which case the request is rejected — there is no way to reach a no-default state.","nullable":true},"code":{"maxLength":50,"minLength":0,"type":"string","nullable":true}},"additionalProperties":false},"UpdateConfiguredProviderTokensCommand":{"required":["accessToken"],"type":"object","properties":{"configuredProviderId":{"type":"string","format":"uuid"},"accessToken":{"type":"string","nullable":true},"refreshToken":{"type":"string","nullable":true},"dateOfExpiration":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Pushed by a workflow function (Azure Functions / n8n / Elsa) after it refreshes a provider\r\naccess token. Persists the rotated token (and optionally a new refresh token) back to the\r\n`business_integration_providers` row so the next API call sends fresh credentials."},"UpdateConfiguredWorkflowRequest":{"required":["title"],"type":"object","properties":{"title":{"minLength":1,"type":"string"},"description":{"maxLength":10000,"type":"string","nullable":true},"isSingleAction":{"type":"boolean"},"isMultiAction":{"type":"boolean"}},"additionalProperties":false,"description":"Payload for the full edit of a configured workflow: the title, the description, and the two\r\naction flags. The trigger and the provider stay as they are."},"UpdateContactCommand":{"required":["email","firstName","title"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"customerId":{"type":"string","format":"uuid"},"title":{"maxLength":50,"minLength":1,"type":"string"},"description":{"maxLength":1000,"minLength":1,"type":"string","nullable":true},"firstName":{"maxLength":50,"minLength":1,"type":"string"},"lastName":{"maxLength":50,"minLength":1,"type":"string","nullable":true},"email":{"minLength":1,"type":"string","format":"email"},"phoneNumber":{"type":"string","format":"tel","nullable":true},"mobileNumber":{"type":"string","format":"tel","nullable":true}},"additionalProperties":false},"UpdateCustomerGroupCommand":{"required":["id","title"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"maxLength":255,"minLength":0,"type":"string"},"description":{"maxLength":2000,"minLength":0,"type":"string","nullable":true}},"additionalProperties":false},"UpdateCustomerRequest":{"required":["email","id","isBusiness","phoneNumber"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"shippingAddress":{"$ref":"#/components/schemas/UpdateAddressRequest"},"billingAddress":{"$ref":"#/components/schemas/UpdateAddressRequest"},"email":{"maxLength":100,"minLength":0,"type":"string","format":"email"},"website":{"maxLength":100,"minLength":0,"type":"string","format":"uri","nullable":true},"phoneNumber":{"maxLength":20,"minLength":0,"type":"string","format":"tel"},"isBusiness":{"type":"boolean"},"groupId":{"type":"string","description":"The customer group this customer belongs to, if any. Used as a price-list assignment scope.","format":"uuid","nullable":true},"displayName":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"businessName":{"maxLength":100,"minLength":0,"type":"string","nullable":true}},"additionalProperties":false},"UpdateDeliveryZoneCommand":{"required":["id","title"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"maxLength":100,"minLength":0,"type":"string"},"description":{"maxLength":500,"minLength":0,"type":"string","nullable":true},"geoZones":{"type":"array","items":{"$ref":"#/components/schemas/GeoZone"},"nullable":true}},"additionalProperties":false},"UpdateDimensionPresetCommand":{"type":"object","properties":{"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"title":{"maxLength":200,"minLength":0,"type":"string","nullable":true},"weight":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"isDefault":{"type":"boolean","description":"Promotes/demotes the default flag. `null`/omitted leaves the default flag untouched;\r\n`true` promotes this preset (demoting the current default in the same transaction) unless\r\nit is already the default; `false` is a no-op unless this preset is the current default,\r\nin which case the request is rejected — there is no way to reach a no-default state.","nullable":true},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"countryCode":{"$ref":"#/components/schemas/CountryCode"}},"additionalProperties":false},"UpdateDiscountMatrixCommand":{"type":"object","properties":{"priceMatrixId":{"type":"string","description":"The price matrix id to associate this discount with","format":"uuid"},"title":{"type":"string","nullable":true},"discountType":{"$ref":"#/components/schemas/DiscountType"},"discountBy":{"type":"number","format":"double"},"minPackageCount":{"type":"integer","format":"int32"},"maxPackageCount":{"type":"integer","format":"int32"}},"additionalProperties":false},"UpdateEmployeeRolesCommand":{"required":["roleIds"],"type":"object","properties":{"roleIds":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true}},"additionalProperties":false},"UpdateFulfillmentProviderRequest":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"deliveryTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentDeliveryTypeModel"},"nullable":true},"serviceTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentProviderServiceTypeModel"},"nullable":true},"requirementTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentRequirementTypeModel"},"nullable":true},"serviceLevels":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentServiceLevelModel"},"nullable":true},"subTypes":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentSubTypeModel"},"nullable":true},"types":{"type":"array","items":{"$ref":"#/components/schemas/FulfillmentTypeModel"},"nullable":true}},"additionalProperties":false},"UpdateInventoryLotNotesRequest":{"type":"object","properties":{"notes":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Payload to replace the notes on one inventory lot."},"UpdateOrderItemRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid","nullable":true},"quantity":{"type":"number","format":"double"},"packageGroupId":{"type":"integer","format":"int32","nullable":true},"dimensionPresetId":{"type":"string","format":"uuid","nullable":true},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"primaryImageUrl":{"type":"string","nullable":true},"weight":{"type":"number","format":"double"},"weightType":{"$ref":"#/components/schemas/WeightType"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"subTotal":{"type":"number","description":"Null means \"not provided\" — the caller didn't touch this billing field. When a quantity\r\nchange is also present and a field here is null, the handler rescales the existing value\r\nproportionally instead of leaving it stale.","format":"double","nullable":true},"totalPrice":{"type":"number","format":"double","nullable":true},"totalTax":{"type":"number","format":"double","nullable":true},"totalDiscount":{"type":"number","format":"double","nullable":true},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"}},"additionalProperties":false,"description":"Not an Dispatch.Application.Interfaces.Domain.Billing.IBillingLineItemValue — its\r\nbilling fields are deliberately nullable (see below), which that non-nullable-decimal interface\r\ncan't express for a partial PATCH contract."},"UpdateOrderRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"description":{"type":"string","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"countryCode":{"$ref":"#/components/schemas/CountryCode"},"status":{"$ref":"#/components/schemas/OrderStatus"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"fulfillmentSubType":{"$ref":"#/components/schemas/FulfillmentSubType"},"dateOfScheduledCollection":{"type":"string","format":"date-time","nullable":true},"paymentProcessed":{"type":"boolean"},"paymentUrl":{"type":"string","nullable":true},"paymentMethod":{"$ref":"#/components/schemas/PaymentMethod"}},"additionalProperties":false},"UpdateOrderShipmentItemsCommand":{"required":["orderId","orderItems","shipmentId"],"type":"object","properties":{"orderId":{"type":"string","format":"uuid"},"shipmentId":{"type":"string","format":"uuid"},"orderItems":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The order items the shipment holds after the update. This is the complete set, not a delta:\r\nan item of the shipment that is absent here becomes unassigned. The list cannot be empty —\r\ndelete the shipment instead."}},"additionalProperties":false,"description":"Command to replace the item set of a shipment that already belongs to the order. Use it to move\r\norder items onto, or off, an existing shipment. To make a new shipment, use\r\n`CreateOrderShipmentCommand` instead."},"UpdatePriceListCommand":{"required":["title"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"status":{"$ref":"#/components/schemas/PriceListStatus"},"effectiveFrom":{"type":"string","format":"date-time","nullable":true},"effectiveTo":{"type":"string","format":"date-time","nullable":true},"pricingMode":{"$ref":"#/components/schemas/PriceListPricingMode"},"adjustmentType":{"$ref":"#/components/schemas/PriceAdjustmentType"},"adjustmentValue":{"type":"number","format":"double","nullable":true},"roundingStep":{"type":"number","format":"double"}},"additionalProperties":false},"UpdatePriceListItemCommand":{"type":"object","properties":{"priceListId":{"type":"string","description":"The price list to which this item belongs.","format":"uuid"},"itemId":{"type":"string","description":"The item being updated.","format":"uuid"},"subTotal":{"type":"number","format":"double"},"totalPrice":{"type":"number","format":"double"},"totalTax":{"type":"number","format":"double"},"totalDiscount":{"type":"number","format":"double"},"discount":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/DiscountType"},"taxRate":{"type":"number","format":"double"},"taxIncluded":{"type":"boolean"},"taxType":{"$ref":"#/components/schemas/TaxType"},"priceUnit":{"$ref":"#/components/schemas/UnitOfMeasure"},"pricePackQuantity":{"type":"number","format":"double"},"basis":{"$ref":"#/components/schemas/PriceListItemBasis"},"adjustmentType":{"$ref":"#/components/schemas/PriceAdjustmentType"},"adjustmentValue":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":"Updates an existing per-product price override on a price list, identified by item id.\r\nThe product the item applies to is not reassignable — only the pricing fields are updated."},"UpdatePriceMatrixCommand":{"type":"object","properties":{"title":{"type":"string","nullable":true},"rate":{"type":"number","format":"double"},"distanceBasedRate":{"type":"number","format":"double"},"minWeight":{"type":"number","format":"double"},"maxWeight":{"type":"number","format":"double","nullable":true},"deliveryDaysMin":{"type":"integer","format":"int32"},"deliveryDaysMax":{"type":"integer","format":"int32"},"serviceLevel":{"$ref":"#/components/schemas/ServiceLevel"},"limitOn":{"$ref":"#/components/schemas/LimitOn"},"lengthType":{"$ref":"#/components/schemas/LengthType"},"weightType":{"$ref":"#/components/schemas/WeightType"},"businessDimensionPresetId":{"type":"string","description":"The id of the business dimension preset to link to this price matrix.","format":"uuid"},"originZoneId":{"type":"string","description":"The id of the origin zone for zone-based pricing. Null means any origin.","format":"uuid","nullable":true},"destinationZoneId":{"type":"string","description":"The id of the destination zone for zone-based pricing. Null means any destination.","format":"uuid","nullable":true}},"additionalProperties":false},"UpdateProductGroupCommand":{"required":["name"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"optionAxes":{"type":"array","items":{"type":"string"},"nullable":true},"primaryProductId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"UpdateProductIntegrationCommand":{"required":["context","product"],"type":"object","properties":{"product":{"$ref":"#/components/schemas/CreateProductRequest"},"context":{"$ref":"#/components/schemas/IntegrationContextRequest"}},"additionalProperties":false,"description":"Updates the sync state of an existing product integration link.\r\nDetects price/quantity deltas, records observed values, and — when PriceSyncEnabled is\r\nconfigured on the provider — upserts the price into the channel's assigned price list.\r\nNEVER writes to canonical price history directly."},"UpdateProductRequest":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"sku":{"type":"string","nullable":true},"purchasable":{"type":"boolean"},"title":{"maxLength":100,"minLength":0,"type":"string","nullable":true},"description":{"maxLength":1000,"minLength":0,"type":"string","nullable":true},"body":{"type":"string","nullable":true},"geometry":{"$ref":"#/components/schemas/ProductDimensionRequest"},"price":{"$ref":"#/components/schemas/CreateProductPriceRequest"},"requiresShipping":{"type":"boolean","nullable":true},"defaultPackagePresetId":{"type":"string","description":"The dimension/package preset to apply as this product's default. When null, the existing\r\ndefault preset is left untouched.","format":"uuid","nullable":true},"tags":{"type":"array","items":{"type":"string"},"nullable":true},"imageIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The authoritative set of image file-attachment ids for the product, in display order.\r\nWhen null, the existing images are left untouched; an empty array clears them.","nullable":true},"supplierId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"UpdateProductionProcessCommand":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"productId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/ProcessStatus"},"revisionNumber":{"type":"integer","format":"int32"},"effectiveDate":{"type":"string","format":"date-time"},"expiryDate":{"type":"string","format":"date-time","nullable":true},"steps":{"type":"array","items":{"$ref":"#/components/schemas/ProcessStepRequest"},"nullable":true}},"additionalProperties":false},"UpdateScheduleEventCommand":{"required":["title"],"type":"object","properties":{"title":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"type":{"$ref":"#/components/schemas/ScheduleEventType"},"startAt":{"type":"string","format":"date-time"},"endAt":{"type":"string","format":"date-time"},"recurrence":{"$ref":"#/components/schemas/ScheduleRecurrenceRequest"},"assignees":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleEventAssigneeRequest"},"nullable":true}},"additionalProperties":false},"UpdateShipmentCommand":{"required":["handlingType","status"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"originAddress":{"$ref":"#/components/schemas/UpdateAddressRequest"},"destinationAddress":{"$ref":"#/components/schemas/UpdateAddressRequest"},"handlingType":{"$ref":"#/components/schemas/HandlingType"},"fulfillmentType":{"$ref":"#/components/schemas/FulfillmentType"},"status":{"$ref":"#/components/schemas/ShipmentStatus"},"hasDimensions":{"type":"boolean"},"description":{"type":"string","nullable":true},"weight":{"type":"number","format":"double"},"height":{"type":"number","format":"double"},"width":{"type":"number","format":"double"},"length":{"type":"number","format":"double"},"dateOfDeparture":{"type":"string","format":"date-time","nullable":true},"dateOfScheduledDelivery":{"type":"string","format":"date-time","nullable":true},"earliestDateOfDelivery":{"type":"string","format":"date-time","nullable":true},"latestDateOfDelivery":{"type":"string","format":"date-time","nullable":true},"deliveryTimeUpperLimit":{"type":"string","format":"date-time"},"deliveryTimeLowerLimit":{"type":"string","format":"date-time"},"dateOfScheduledCollection":{"type":"string","format":"date-time","nullable":true},"earliestDateOfCollection":{"type":"string","format":"date-time","nullable":true},"latestDateOfCollection":{"type":"string","format":"date-time","nullable":true},"collectionTimeUpperLimit":{"type":"string","format":"date-time"},"collectionTimeLowerLimit":{"type":"string","format":"date-time"}},"additionalProperties":false},"UpdateSupplierCommand":{"required":["title"],"type":"object","properties":{"id":{"type":"string","format":"uuid"},"title":{"maxLength":100,"minLength":0,"type":"string"},"description":{"maxLength":500,"minLength":0,"type":"string","nullable":true},"contact":{"$ref":"#/components/schemas/UpdateContactCommand"},"addressId":{"type":"string","description":"Optional reference to an existing `business_addresses` row (the supplier's origin\r\naddress). Not created here — attach an id already persisted via the address CRUD.\r\nSet to null to clear the existing reference.","format":"uuid","nullable":true},"paymentTerms":{"maxLength":50,"minLength":0,"type":"string","nullable":true},"defaultLeadTimeDays":{"type":"integer","format":"int32","nullable":true},"code":{"maxLength":50,"minLength":0,"type":"string","nullable":true},"defaultCurrency":{"$ref":"#/components/schemas/CurrencyCode"}},"additionalProperties":false},"UpdateTeamCommand":{"required":["name"],"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true},"isEnabled":{"type":"boolean"},"memberUserIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"The full member list. Replaces the current membership.","nullable":true}},"additionalProperties":false},"UpdateUserProfileRequest":{"required":["email","firstName","lastName"],"type":"object","properties":{"title":{"maxLength":10,"minLength":0,"type":"string","nullable":true},"firstName":{"maxLength":100,"minLength":0,"type":"string"},"lastName":{"maxLength":100,"minLength":0,"type":"string"},"email":{"maxLength":255,"minLength":0,"type":"string","format":"email"},"phoneNumber":{"maxLength":20,"minLength":0,"type":"string","format":"tel","nullable":true},"accountStatus":{"$ref":"#/components/schemas/UserAccountStatus"},"acceptedTerms":{"type":"boolean"},"address":{"$ref":"#/components/schemas/UpdateAddressRequest"},"driver":{"$ref":"#/components/schemas/DriverRequest"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/UserRoles"},"nullable":true}},"additionalProperties":false},"UpdateVehicleCommand":{"type":"object","properties":{"vehicleId":{"type":"string","format":"uuid"},"licensePlate":{"maxLength":50,"minLength":0,"type":"string","nullable":true},"dateOfLicenseExpiry":{"type":"string","format":"date-time","nullable":true},"licenseDisc":{"type":"string","nullable":true},"vehicleIdentificationNumber":{"type":"string","nullable":true},"model":{"maxLength":50,"minLength":0,"type":"string","nullable":true},"make":{"maxLength":50,"minLength":0,"type":"string","nullable":true},"acquisitionDate":{"type":"string","format":"date-time","nullable":true},"vehicleType":{"$ref":"#/components/schemas/VehicleType"}},"additionalProperties":false},"UpdateWorkOrderCommand":{"type":"object","properties":{"workOrderId":{"type":"string","format":"uuid"},"plannedQuantity":{"type":"number","format":"double"},"scheduledStart":{"type":"string","format":"date-time","nullable":true},"productionLocationId":{"type":"string","format":"uuid"},"assignedToUserId":{"type":"string","description":"The user who should run this work order. Null clears the assignment.","format":"uuid","nullable":true},"description":{"type":"string","nullable":true},"changeNote":{"type":"string","description":"Optional note describing the change, stored on the revision row it creates.","nullable":true},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderStepEditRequest"},"description":"Title/instructions edits to apply to existing steps. To add or remove a step, use\r\n`POST /api/v1/work-orders/{workOrderId}/steps` or\r\n`DELETE /api/v1/work-orders/{workOrderId}/steps/{stepId}` instead.","nullable":true}},"additionalProperties":false,"description":"Edits a work order while it is still Planned. Every successful edit records the prior state\r\nas a revision and bumps the work order's revision number."},"UpdateWorkOrderStepCommand":{"type":"object","properties":{"workOrderId":{"type":"string","format":"uuid"},"stepId":{"type":"string","format":"uuid"},"status":{"$ref":"#/components/schemas/WorkOrderStepStatus"},"startedAt":{"type":"string","format":"date-time","nullable":true},"completedAt":{"type":"string","format":"date-time","nullable":true},"completedByUserId":{"type":"string","format":"uuid","nullable":true},"assignedToUserId":{"type":"string","description":"The user who should carry out this step. Null clears the assignment.","format":"uuid","nullable":true},"requiresQualityCheck":{"type":"boolean","description":"Marks this step as a quality checkpoint. Null leaves the current value unchanged.","nullable":true},"qualityCheckPassed":{"type":"boolean","description":"Records the pass/fail result of the quality check. Null leaves the current value\r\nunchanged; the step must already require a quality check (after this update is applied)\r\nfor a non-null value to be accepted.","nullable":true},"notes":{"type":"string","nullable":true}},"additionalProperties":false},"UpdateWorkOrderTemplateCommand":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"outputProductId":{"type":"string","format":"uuid","nullable":true},"defaultQuantity":{"type":"number","format":"double","nullable":true},"defaultProductionLocationId":{"type":"string","format":"uuid","nullable":true},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderTemplateStepRequest"},"nullable":true}},"additionalProperties":false},"UploadFilesFromUrlCommand":{"required":["urls"],"type":"object","properties":{"urls":{"type":"array","items":{"type":"string"},"nullable":true}},"additionalProperties":false,"description":"Fetches one or more publicly reachable files by URL and stores them in blob storage,\r\nreturning the resulting FileAttachment ids. Convenience for seeding and for external\r\nintegrations that already host an asset and only have its URL (e.g. a product image CDN)."},"UpsertProductSupplierCommand":{"type":"object","properties":{"productId":{"type":"string","description":"Bound from the route, not the body.","format":"uuid"},"supplierId":{"type":"string","format":"uuid"},"isPrimary":{"type":"boolean"},"supplierPartNumber":{"type":"string","nullable":true},"lastQuotedPrice":{"type":"number","format":"double","nullable":true},"lastQuotedPriceCurrencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"leadTimeDays":{"type":"integer","format":"int32","nullable":true},"minimumOrderQuantity":{"type":"number","format":"double","nullable":true}},"additionalProperties":false,"description":"Creates or updates the link between a product and a supplier. Idempotent on the (product,\r\nsupplier) pair — a second call with the same ids updates the existing row rather than failing."},"UserAccountStatus":{"enum":["Active","Suspended"],"type":"string","description":"Whether a user may sign in. Mirrors the native PG enum `user_account_status` that\r\n`cargopilot_global.users` carries — the org schema has no equivalent column, so this type\r\nis never registered with the org-side native-enum data source. The value always comes from a\r\nglobal-user summary call, never from the org database."},"UserBusinessResponse":{"type":"object","properties":{"businessId":{"type":"string","format":"uuid"},"displayName":{"type":"string","nullable":true},"isDefault":{"type":"boolean"},"currencyCode":{"$ref":"#/components/schemas/CurrencyCode"},"countryCode":{"$ref":"#/components/schemas/CountryCode"}},"additionalProperties":false},"UserRoles":{"enum":["Sudo","Administrator","Manager","Operations","Driver","Accountant","General","Support","Unassigned"],"type":"string"},"VehicleLocationCompoundCoordinateResponse":{"type":"object","properties":{"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"},"heading":{"type":"integer","format":"int32"},"speed":{"type":"integer","format":"int32"}},"additionalProperties":false},"VehicleLocationCoordinateResponse":{"type":"object","properties":{"latitude":{"type":"number","format":"double"},"longitude":{"type":"number","format":"double"}},"additionalProperties":false},"VehicleLocationPointOfInterestResponse":{"type":"object","properties":{"timeStamp":{"type":"string","format":"date-time"},"coordinate":{"$ref":"#/components/schemas/VehicleLocationCoordinateResponse"}},"additionalProperties":false},"VehicleLocationResponse":{"type":"object","properties":{"lastSeenTime":{"type":"string","format":"date-time"},"deviceBattery":{"type":"integer","format":"int32","nullable":true},"vehicleTracker":{"$ref":"#/components/schemas/VehicleTrackerInfoResponse"},"coordinateMetadata":{"type":"array","items":{"$ref":"#/components/schemas/VehicleLocationPointOfInterestResponse"},"nullable":true},"coordinates":{"type":"array","items":{"$ref":"#/components/schemas/VehicleLocationCompoundCoordinateResponse"},"nullable":true}},"additionalProperties":false},"VehicleResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"licensePlate":{"type":"string","nullable":true},"dateOfLicenseExpiry":{"type":"string","format":"date-time","nullable":true},"licenseDisc":{"type":"string","nullable":true},"vehicleIdentificationNumber":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"make":{"type":"string","nullable":true},"acquisitionDate":{"type":"string","format":"date-time","nullable":true},"vehicleType":{"$ref":"#/components/schemas/VehicleType"},"dateCreated":{"type":"string","format":"date-time"},"dateModified":{"type":"string","format":"date-time"}},"additionalProperties":false},"VehicleTrackerInfoResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"emei":{"type":"string","nullable":true},"deviceId":{"type":"integer","format":"int32"}},"additionalProperties":false},"VehicleTrackerResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"vehicleId":{"type":"string","format":"uuid"},"emei":{"type":"string","nullable":true}},"additionalProperties":false},"VehicleTravelHistory":{"type":"object","properties":{"day":{"type":"integer","format":"int32"},"distance":{"type":"number","format":"double"}},"additionalProperties":false},"VehicleType":{"enum":["Motorcycle","LightMotorVehicle","HeavyMotorVehicleSub16","HeaveMotorVehicleOver16"],"type":"string"},"VolumeSummaryResponse":{"type":"object","properties":{"months":{"type":"array","items":{"type":"string"},"nullable":true},"volumes":{"type":"array","items":{"type":"integer","format":"int32"},"nullable":true}},"additionalProperties":false,"description":"Response DTO for the shipment/dispatch volume endpoints (12-month series)."},"VolumeType":{"enum":["None","Litre","CubicCentimeter","CubicMeter","Gallon","CubicInch","CubicFoot"],"type":"string"},"WaybillDto":{"type":"object","properties":{"waybillNumber":{"type":"string","nullable":true},"waybillDate":{"type":"string","nullable":true},"dispatchCode":{"type":"string","nullable":true},"logoId":{"type":"string","nullable":true},"customerDetails":{"type":"string","nullable":true},"shipmentDetails":{"type":"string","nullable":true},"pickupAddress":{"type":"string","nullable":true},"deliveryAddress":{"type":"string","nullable":true},"waybillId":{"type":"string","nullable":true},"productWeight":{"type":"string","nullable":true},"requiresApproval":{"type":"string","nullable":true},"templateId":{"type":"string","nullable":true}},"additionalProperties":false},"WeightType":{"enum":["Unknown","Kilogram","Tonne","Pound","Stone","UsTon","ImperialTon","Gram"],"type":"string","description":"These values should not change since they are stored in the database as numbers."},"WorkOrderCommentRequest":{"required":["comment"],"type":"object","properties":{"comment":{"maxLength":4000,"minLength":0,"type":"string"}},"additionalProperties":false},"WorkOrderCommentResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workOrderId":{"type":"string","format":"uuid"},"comment":{"type":"string","nullable":true},"user":{"$ref":"#/components/schemas/PrimitiveUserResponse"},"dateCreated":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"WorkOrderMaterialConsumptionRequest":{"type":"object","properties":{"workOrderMaterialId":{"type":"string","format":"uuid"},"consumedQuantity":{"type":"number","format":"double"}},"additionalProperties":false,"description":"Per-material actual consumption supplied at completion. Materials not listed are backflushed\r\nat their planned quantity."},"WorkOrderMaterialResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"componentProductId":{"type":"string","format":"uuid"},"componentTitle":{"type":"string","nullable":true},"componentCode":{"type":"string","nullable":true},"componentSku":{"type":"string","nullable":true},"componentType":{"$ref":"#/components/schemas/ProductType"},"plannedQuantity":{"type":"number","format":"double"},"consumedQuantity":{"type":"number","format":"double"},"unit":{"$ref":"#/components/schemas/UnitOfMeasure"}},"additionalProperties":false},"WorkOrderProducedLotResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"lotNumber":{"type":"string","nullable":true},"expiryDate":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":false},"WorkOrderResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"reference":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"revisionNumber":{"type":"integer","format":"int32"},"outputProductId":{"type":"string","format":"uuid"},"outputProductTitle":{"type":"string","nullable":true},"outputProductCode":{"type":"string","nullable":true},"bomId":{"type":"string","format":"uuid","nullable":true},"bomRevisionNumber":{"type":"integer","format":"int32","nullable":true},"processId":{"type":"string","format":"uuid","nullable":true},"processRevisionNumber":{"type":"integer","format":"int32","nullable":true},"productionLocationId":{"type":"string","format":"uuid"},"productionLocationTitle":{"type":"string","nullable":true},"assignedToUserId":{"type":"string","description":"The user who should run this work order. Null when unassigned.","format":"uuid","nullable":true},"assignedToName":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/WorkOrderStatus"},"plannedQuantity":{"type":"number","format":"double"},"producedQuantity":{"type":"number","format":"double"},"scrappedQuantity":{"type":"number","format":"double"},"scrapReason":{"type":"string","description":"Explains the scrapped quantity. Null when nothing was scrapped.","nullable":true},"scheduledStart":{"type":"string","format":"date-time","nullable":true},"actualStart":{"type":"string","format":"date-time","nullable":true},"actualEnd":{"type":"string","format":"date-time","nullable":true},"totalCost":{"type":"number","format":"double","nullable":true},"unitCost":{"type":"number","format":"double","nullable":true},"materials":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderMaterialResponse"},"nullable":true},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderStepResponse"},"nullable":true},"producedLot":{"$ref":"#/components/schemas/WorkOrderProducedLotResponse"},"serialNumbers":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderSerialNumberResponse"},"nullable":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/MetadataFileAttachment"},"description":"File attachments associated with the work order (batch records, quality certificates, photographs).","nullable":true},"traces":{"type":"array","items":{"$ref":"#/components/schemas/ActivityTrace"},"description":"Activity traces recorded against the work order.","nullable":true}},"additionalProperties":false},"WorkOrderRevisionResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"revisionNumber":{"type":"integer","format":"int32"},"snapshot":{"type":"string","nullable":true},"changeNote":{"type":"string","nullable":true},"changedByUserId":{"type":"string","format":"uuid","nullable":true},"changedByUserName":{"type":"string","nullable":true},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"WorkOrderSerialNumberResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"serialNumber":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/SerialNumberStatus"}},"additionalProperties":false},"WorkOrderStatus":{"enum":["Planned","InProgress","Completed","Cancelled"],"type":"string","description":"These values should not change since they are stored in the database as a native PG enum.\r\nLifecycle of a work order (an as-run factory record)."},"WorkOrderStepEditRequest":{"type":"object","properties":{"stepId":{"type":"string","format":"uuid"},"title":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true}},"additionalProperties":false,"description":"An edit to an existing work order step's title and/or instructions, supplied when updating a\r\nwork order. A null field leaves that field unchanged; steps cannot be added or removed here."},"WorkOrderStepResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"stepNumber":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true},"status":{"$ref":"#/components/schemas/WorkOrderStepStatus"},"startedAt":{"type":"string","format":"date-time","nullable":true},"completedAt":{"type":"string","format":"date-time","nullable":true},"completedByUserId":{"type":"string","format":"uuid","nullable":true},"completedByName":{"type":"string","nullable":true},"assignedToUserId":{"type":"string","description":"The user who should carry out this step. Null when unassigned.","format":"uuid","nullable":true},"assignedToName":{"type":"string","nullable":true},"requiresQualityCheck":{"type":"boolean","description":"Marks this step as a quality checkpoint."},"qualityCheckPassed":{"type":"boolean","description":"The recorded pass/fail result of the quality check. Null until recorded.","nullable":true},"notes":{"type":"string","nullable":true}},"additionalProperties":false},"WorkOrderStepStatus":{"enum":["Pending","InProgress","Done","Skipped"],"type":"string","description":"These values should not change since they are stored in the database as a native PG enum.\r\nExecution state of a single work-order step (as run on the floor)."},"WorkOrderTemplateResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"outputProductId":{"type":"string","format":"uuid","nullable":true},"outputProductTitle":{"type":"string","nullable":true},"outputProductCode":{"type":"string","nullable":true},"defaultQuantity":{"type":"number","format":"double","nullable":true},"defaultProductionLocationId":{"type":"string","format":"uuid","nullable":true},"defaultProductionLocationTitle":{"type":"string","nullable":true},"steps":{"type":"array","items":{"$ref":"#/components/schemas/WorkOrderTemplateStepResponse"},"nullable":true},"dateModified":{"type":"string","format":"date-time"},"dateCreated":{"type":"string","format":"date-time"}},"additionalProperties":false},"WorkOrderTemplateStepRequest":{"type":"object","properties":{"stepNumber":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true}},"additionalProperties":false,"description":"One ordered step of a work order template, supplied when creating or updating a template."},"WorkOrderTemplateStepResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"stepNumber":{"type":"integer","format":"int32"},"title":{"type":"string","nullable":true},"instructions":{"type":"string","nullable":true}},"additionalProperties":false},"WorkflowTriggerResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"entityType":{"$ref":"#/components/schemas/DispatchEntityType"},"title":{"type":"string","nullable":true},"eventTitle":{"type":"string","nullable":true}},"additionalProperties":false}}},"tags":[{"name":"Employee","description":"Endpoints for a business to manage their employees: invite, verify, remove, update roles."},{"name":"Internal","description":"The private endpoint the Global API calls to complete registration: the\r\norg-side half of provisioning -- schema, migrations, business, address, location, sales\r\nchannel, primary user, roles, app config. Guarded by Dispatch.API.Authorization.RequireServiceSecretAttribute\r\n-- never a public route. Idempotent: safe for the Global API to retry on failure."},{"name":"Notification","description":"Org notifications only. Platform-wide banners are served by Dispatch.Global.API's\r\n`GET /api/banners`."},{"name":"Rates","description":"This controller is responsible for setting price data which is used to resolve quotation suggestions for delivery partners"},{"name":"Roles","description":"Manages the business roles and their permission matrices."},{"name":"OrderIntegration","description":"This controller handles order-related integration endpoints.\r\nFor example, the handlers ultimately also end up calling Dispatch.API.Controllers.OrdersController handlers, however there are some additional checks which are done for integrations."},{"name":"ProductIntegration","description":"Product-related integration endpoints. Wraps Dispatch.Application.Handlers.Commands.Integrations.CreateProductIntegration.CreateProductIntegrationCommand\r\nso external integrations (or test harnesses) can register a product integration without\r\nhaving to go through the order webhook flow."},{"name":"DashboardInsights","description":"Dashboard summary, volume, and top customer metrics for the business."},{"name":"InventoryInsights","description":"Inventory coverage metrics: on-hand quantity against trailing demand, per product and location."},{"name":"LocationInsights","description":"Aggregated sales, inbound, outbound and inventory insight metrics for business locations."},{"name":"NetworkInsights","description":"The supply-chain network graph: supplier, location and sales-channel nodes, and the\r\npurchase-order, transfer-order and sales-order flows between them."},{"name":"SalesInsights","description":"Sales history metrics for the business."},{"name":"SupplierInsights","description":"Aggregated purchase-order performance metrics for suppliers."}],"servers":[{"url":"https://api.miridia.io"}]}