bb-integrations-library 3.0.11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bb_integrations_lib/__init__.py +0 -0
- bb_integrations_lib/converters/__init__.py +0 -0
- bb_integrations_lib/gravitate/__init__.py +0 -0
- bb_integrations_lib/gravitate/base_api.py +20 -0
- bb_integrations_lib/gravitate/model.py +29 -0
- bb_integrations_lib/gravitate/pe_api.py +122 -0
- bb_integrations_lib/gravitate/rita_api.py +552 -0
- bb_integrations_lib/gravitate/sd_api.py +572 -0
- bb_integrations_lib/gravitate/testing/TTE/sd/models.py +1398 -0
- bb_integrations_lib/gravitate/testing/TTE/sd/tests/test_models.py +2987 -0
- bb_integrations_lib/gravitate/testing/__init__.py +0 -0
- bb_integrations_lib/gravitate/testing/builder.py +55 -0
- bb_integrations_lib/gravitate/testing/openapi.py +70 -0
- bb_integrations_lib/gravitate/testing/util.py +274 -0
- bb_integrations_lib/mappers/__init__.py +0 -0
- bb_integrations_lib/mappers/prices/__init__.py +0 -0
- bb_integrations_lib/mappers/prices/model.py +106 -0
- bb_integrations_lib/mappers/prices/price_mapper.py +127 -0
- bb_integrations_lib/mappers/prices/protocol.py +20 -0
- bb_integrations_lib/mappers/prices/util.py +61 -0
- bb_integrations_lib/mappers/rita_mapper.py +523 -0
- bb_integrations_lib/models/__init__.py +0 -0
- bb_integrations_lib/models/dtn_supplier_invoice.py +487 -0
- bb_integrations_lib/models/enums.py +28 -0
- bb_integrations_lib/models/pipeline_structs.py +76 -0
- bb_integrations_lib/models/probe/probe_event.py +20 -0
- bb_integrations_lib/models/probe/request_data.py +431 -0
- bb_integrations_lib/models/probe/resume_token.py +7 -0
- bb_integrations_lib/models/rita/audit.py +113 -0
- bb_integrations_lib/models/rita/auth.py +30 -0
- bb_integrations_lib/models/rita/bucket.py +17 -0
- bb_integrations_lib/models/rita/config.py +188 -0
- bb_integrations_lib/models/rita/constants.py +19 -0
- bb_integrations_lib/models/rita/crossroads_entities.py +293 -0
- bb_integrations_lib/models/rita/crossroads_mapping.py +428 -0
- bb_integrations_lib/models/rita/crossroads_monitoring.py +78 -0
- bb_integrations_lib/models/rita/crossroads_network.py +41 -0
- bb_integrations_lib/models/rita/crossroads_rules.py +80 -0
- bb_integrations_lib/models/rita/email.py +39 -0
- bb_integrations_lib/models/rita/issue.py +63 -0
- bb_integrations_lib/models/rita/mapping.py +227 -0
- bb_integrations_lib/models/rita/probe.py +58 -0
- bb_integrations_lib/models/rita/reference_data.py +110 -0
- bb_integrations_lib/models/rita/source_system.py +9 -0
- bb_integrations_lib/models/rita/workers.py +76 -0
- bb_integrations_lib/models/sd/bols_and_drops.py +241 -0
- bb_integrations_lib/models/sd/get_order.py +301 -0
- bb_integrations_lib/models/sd/orders.py +18 -0
- bb_integrations_lib/models/sd_api.py +115 -0
- bb_integrations_lib/pipelines/__init__.py +0 -0
- bb_integrations_lib/pipelines/parsers/__init__.py +0 -0
- bb_integrations_lib/pipelines/parsers/distribution_report/__init__.py +0 -0
- bb_integrations_lib/pipelines/parsers/distribution_report/order_by_site_product_parser.py +50 -0
- bb_integrations_lib/pipelines/parsers/distribution_report/tank_configs_parser.py +47 -0
- bb_integrations_lib/pipelines/parsers/dtn/__init__.py +0 -0
- bb_integrations_lib/pipelines/parsers/dtn/dtn_price_parser.py +102 -0
- bb_integrations_lib/pipelines/parsers/dtn/model.py +79 -0
- bb_integrations_lib/pipelines/parsers/price_engine/__init__.py +0 -0
- bb_integrations_lib/pipelines/parsers/price_engine/parse_accessorials_prices_parser.py +67 -0
- bb_integrations_lib/pipelines/parsers/price_engine/price_file_upload/__init__.py +0 -0
- bb_integrations_lib/pipelines/parsers/price_engine/price_file_upload/price_merge_parser.py +111 -0
- bb_integrations_lib/pipelines/parsers/price_engine/price_file_upload/price_sync_parser.py +107 -0
- bb_integrations_lib/pipelines/parsers/price_engine/price_file_upload/shared.py +81 -0
- bb_integrations_lib/pipelines/parsers/tank_reading_parser.py +155 -0
- bb_integrations_lib/pipelines/parsers/tank_sales_parser.py +144 -0
- bb_integrations_lib/pipelines/shared/__init__.py +0 -0
- bb_integrations_lib/pipelines/shared/allocation_matching.py +227 -0
- bb_integrations_lib/pipelines/shared/bol_allocation.py +2793 -0
- bb_integrations_lib/pipelines/steps/__init__.py +0 -0
- bb_integrations_lib/pipelines/steps/create_accessorials_step.py +80 -0
- bb_integrations_lib/pipelines/steps/distribution_report/__init__.py +0 -0
- bb_integrations_lib/pipelines/steps/distribution_report/distribution_report_datafram_to_raw_data.py +33 -0
- bb_integrations_lib/pipelines/steps/distribution_report/get_model_history_step.py +50 -0
- bb_integrations_lib/pipelines/steps/distribution_report/get_order_by_site_product_step.py +62 -0
- bb_integrations_lib/pipelines/steps/distribution_report/get_tank_configs_step.py +40 -0
- bb_integrations_lib/pipelines/steps/distribution_report/join_distribution_order_dos_step.py +85 -0
- bb_integrations_lib/pipelines/steps/distribution_report/upload_distribution_report_datafram_to_big_query.py +47 -0
- bb_integrations_lib/pipelines/steps/echo_step.py +14 -0
- bb_integrations_lib/pipelines/steps/export_dataframe_to_rawdata_step.py +28 -0
- bb_integrations_lib/pipelines/steps/exporting/__init__.py +0 -0
- bb_integrations_lib/pipelines/steps/exporting/bbd_export_payroll_file_step.py +107 -0
- bb_integrations_lib/pipelines/steps/exporting/bbd_export_readings_step.py +236 -0
- bb_integrations_lib/pipelines/steps/exporting/cargas_wholesale_bundle_upload_step.py +33 -0
- bb_integrations_lib/pipelines/steps/exporting/dataframe_flat_file_export.py +29 -0
- bb_integrations_lib/pipelines/steps/exporting/gcs_bucket_export_file_step.py +34 -0
- bb_integrations_lib/pipelines/steps/exporting/keyvu_export_step.py +356 -0
- bb_integrations_lib/pipelines/steps/exporting/pe_price_export_step.py +238 -0
- bb_integrations_lib/pipelines/steps/exporting/platform_science_order_sync_step.py +500 -0
- bb_integrations_lib/pipelines/steps/exporting/save_rawdata_to_disk.py +15 -0
- bb_integrations_lib/pipelines/steps/exporting/sftp_export_file_step.py +60 -0
- bb_integrations_lib/pipelines/steps/exporting/sftp_export_many_files_step.py +23 -0
- bb_integrations_lib/pipelines/steps/exporting/update_exported_orders_table_step.py +64 -0
- bb_integrations_lib/pipelines/steps/filter_step.py +22 -0
- bb_integrations_lib/pipelines/steps/get_latest_sync_date.py +34 -0
- bb_integrations_lib/pipelines/steps/importing/bbd_import_payroll_step.py +30 -0
- bb_integrations_lib/pipelines/steps/importing/get_order_numbers_to_export_step.py +138 -0
- bb_integrations_lib/pipelines/steps/importing/load_file_to_dataframe_step.py +46 -0
- bb_integrations_lib/pipelines/steps/importing/load_imap_attachment_step.py +172 -0
- bb_integrations_lib/pipelines/steps/importing/pe_bulk_sync_price_structure_step.py +68 -0
- bb_integrations_lib/pipelines/steps/importing/pe_price_merge_step.py +86 -0
- bb_integrations_lib/pipelines/steps/importing/sftp_file_config_step.py +124 -0
- bb_integrations_lib/pipelines/steps/importing/test_exact_file_match.py +57 -0
- bb_integrations_lib/pipelines/steps/null_step.py +15 -0
- bb_integrations_lib/pipelines/steps/pe_integration_job_step.py +32 -0
- bb_integrations_lib/pipelines/steps/processing/__init__.py +0 -0
- bb_integrations_lib/pipelines/steps/processing/archive_gcs_step.py +76 -0
- bb_integrations_lib/pipelines/steps/processing/archive_sftp_step.py +48 -0
- bb_integrations_lib/pipelines/steps/processing/bbd_format_tank_readings_step.py +492 -0
- bb_integrations_lib/pipelines/steps/processing/bbd_upload_prices_step.py +54 -0
- bb_integrations_lib/pipelines/steps/processing/bbd_upload_tank_sales_step.py +124 -0
- bb_integrations_lib/pipelines/steps/processing/bbd_upload_tankreading_step.py +80 -0
- bb_integrations_lib/pipelines/steps/processing/convert_bbd_order_to_cargas_step.py +226 -0
- bb_integrations_lib/pipelines/steps/processing/delete_sftp_step.py +33 -0
- bb_integrations_lib/pipelines/steps/processing/dtn/__init__.py +2 -0
- bb_integrations_lib/pipelines/steps/processing/dtn/convert_dtn_invoice_to_sd_model.py +145 -0
- bb_integrations_lib/pipelines/steps/processing/dtn/parse_dtn_invoice_step.py +38 -0
- bb_integrations_lib/pipelines/steps/processing/file_config_parser_step.py +720 -0
- bb_integrations_lib/pipelines/steps/processing/file_config_parser_step_v2.py +418 -0
- bb_integrations_lib/pipelines/steps/processing/get_sd_price_price_request.py +105 -0
- bb_integrations_lib/pipelines/steps/processing/keyvu_upload_deliveryplan_step.py +39 -0
- bb_integrations_lib/pipelines/steps/processing/mark_orders_exported_in_bbd_step.py +185 -0
- bb_integrations_lib/pipelines/steps/processing/pe_price_rows_processing_step.py +174 -0
- bb_integrations_lib/pipelines/steps/processing/send_process_report_step.py +47 -0
- bb_integrations_lib/pipelines/steps/processing/sftp_renamer_step.py +61 -0
- bb_integrations_lib/pipelines/steps/processing/tank_reading_touchup_steps.py +75 -0
- bb_integrations_lib/pipelines/steps/processing/upload_supplier_invoice_step.py +16 -0
- bb_integrations_lib/pipelines/steps/send_attached_in_rita_email_step.py +44 -0
- bb_integrations_lib/pipelines/steps/send_rita_email_step.py +34 -0
- bb_integrations_lib/pipelines/steps/sleep_step.py +24 -0
- bb_integrations_lib/pipelines/wrappers/__init__.py +0 -0
- bb_integrations_lib/pipelines/wrappers/accessorials_transformation.py +104 -0
- bb_integrations_lib/pipelines/wrappers/distribution_report.py +191 -0
- bb_integrations_lib/pipelines/wrappers/export_tank_readings.py +237 -0
- bb_integrations_lib/pipelines/wrappers/import_tank_readings.py +192 -0
- bb_integrations_lib/pipelines/wrappers/wrapper.py +81 -0
- bb_integrations_lib/protocols/__init__.py +0 -0
- bb_integrations_lib/protocols/flat_file.py +210 -0
- bb_integrations_lib/protocols/gravitate_client.py +104 -0
- bb_integrations_lib/protocols/pipelines.py +697 -0
- bb_integrations_lib/provider/__init__.py +0 -0
- bb_integrations_lib/provider/api/__init__.py +0 -0
- bb_integrations_lib/provider/api/cargas/__init__.py +0 -0
- bb_integrations_lib/provider/api/cargas/client.py +43 -0
- bb_integrations_lib/provider/api/cargas/model.py +49 -0
- bb_integrations_lib/provider/api/cargas/protocol.py +23 -0
- bb_integrations_lib/provider/api/dtn/__init__.py +0 -0
- bb_integrations_lib/provider/api/dtn/client.py +128 -0
- bb_integrations_lib/provider/api/dtn/protocol.py +9 -0
- bb_integrations_lib/provider/api/keyvu/__init__.py +0 -0
- bb_integrations_lib/provider/api/keyvu/client.py +30 -0
- bb_integrations_lib/provider/api/keyvu/model.py +149 -0
- bb_integrations_lib/provider/api/macropoint/__init__.py +0 -0
- bb_integrations_lib/provider/api/macropoint/client.py +28 -0
- bb_integrations_lib/provider/api/macropoint/model.py +40 -0
- bb_integrations_lib/provider/api/pc_miler/__init__.py +0 -0
- bb_integrations_lib/provider/api/pc_miler/client.py +130 -0
- bb_integrations_lib/provider/api/pc_miler/model.py +6 -0
- bb_integrations_lib/provider/api/pc_miler/web_services_apis.py +131 -0
- bb_integrations_lib/provider/api/platform_science/__init__.py +0 -0
- bb_integrations_lib/provider/api/platform_science/client.py +147 -0
- bb_integrations_lib/provider/api/platform_science/model.py +82 -0
- bb_integrations_lib/provider/api/quicktrip/__init__.py +0 -0
- bb_integrations_lib/provider/api/quicktrip/client.py +52 -0
- bb_integrations_lib/provider/api/telapoint/__init__.py +0 -0
- bb_integrations_lib/provider/api/telapoint/client.py +68 -0
- bb_integrations_lib/provider/api/telapoint/model.py +178 -0
- bb_integrations_lib/provider/api/warren_rogers/__init__.py +0 -0
- bb_integrations_lib/provider/api/warren_rogers/client.py +207 -0
- bb_integrations_lib/provider/aws/__init__.py +0 -0
- bb_integrations_lib/provider/aws/s3/__init__.py +0 -0
- bb_integrations_lib/provider/aws/s3/client.py +126 -0
- bb_integrations_lib/provider/ftp/__init__.py +0 -0
- bb_integrations_lib/provider/ftp/client.py +140 -0
- bb_integrations_lib/provider/ftp/interface.py +273 -0
- bb_integrations_lib/provider/ftp/model.py +76 -0
- bb_integrations_lib/provider/imap/__init__.py +0 -0
- bb_integrations_lib/provider/imap/client.py +228 -0
- bb_integrations_lib/provider/imap/model.py +3 -0
- bb_integrations_lib/provider/sqlserver/__init__.py +0 -0
- bb_integrations_lib/provider/sqlserver/client.py +106 -0
- bb_integrations_lib/secrets/__init__.py +4 -0
- bb_integrations_lib/secrets/adapters.py +98 -0
- bb_integrations_lib/secrets/credential_models.py +222 -0
- bb_integrations_lib/secrets/factory.py +85 -0
- bb_integrations_lib/secrets/providers.py +160 -0
- bb_integrations_lib/shared/__init__.py +0 -0
- bb_integrations_lib/shared/exceptions.py +25 -0
- bb_integrations_lib/shared/model.py +1039 -0
- bb_integrations_lib/shared/shared_enums.py +510 -0
- bb_integrations_lib/storage/README.md +236 -0
- bb_integrations_lib/storage/__init__.py +0 -0
- bb_integrations_lib/storage/aws/__init__.py +0 -0
- bb_integrations_lib/storage/aws/s3.py +8 -0
- bb_integrations_lib/storage/defaults.py +72 -0
- bb_integrations_lib/storage/gcs/__init__.py +0 -0
- bb_integrations_lib/storage/gcs/client.py +8 -0
- bb_integrations_lib/storage/gcsmanager/__init__.py +0 -0
- bb_integrations_lib/storage/gcsmanager/client.py +8 -0
- bb_integrations_lib/storage/setup.py +29 -0
- bb_integrations_lib/util/__init__.py +0 -0
- bb_integrations_lib/util/cache/__init__.py +0 -0
- bb_integrations_lib/util/cache/custom_ttl_cache.py +75 -0
- bb_integrations_lib/util/cache/protocol.py +9 -0
- bb_integrations_lib/util/config/__init__.py +0 -0
- bb_integrations_lib/util/config/manager.py +391 -0
- bb_integrations_lib/util/config/model.py +41 -0
- bb_integrations_lib/util/exception_logger/__init__.py +0 -0
- bb_integrations_lib/util/exception_logger/exception_logger.py +146 -0
- bb_integrations_lib/util/exception_logger/test.py +114 -0
- bb_integrations_lib/util/utils.py +364 -0
- bb_integrations_lib/workers/__init__.py +0 -0
- bb_integrations_lib/workers/groups.py +13 -0
- bb_integrations_lib/workers/rpc_worker.py +50 -0
- bb_integrations_lib/workers/topics.py +20 -0
- bb_integrations_library-3.0.11.dist-info/METADATA +59 -0
- bb_integrations_library-3.0.11.dist-info/RECORD +217 -0
- bb_integrations_library-3.0.11.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,1398 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: temp_openapi.json
|
|
3
|
+
# timestamp: 2025-07-09T01:08:11+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from datetime import datetime
|
|
8
|
+
from enum import Enum
|
|
9
|
+
from typing import Any, Dict, List, Optional, Union
|
|
10
|
+
|
|
11
|
+
from pydantic import BaseModel, ConfigDict, EmailStr, Field, RootModel, conint, constr
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class BolImagesRequest(BaseModel):
|
|
15
|
+
order_ids: Optional[List[str]] = Field([], title='Order Ids')
|
|
16
|
+
order_numbers: Optional[List[str]] = Field([], title='Order Numbers')
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class DeliveryTicketById(BaseModel):
|
|
20
|
+
order_id: str = Field(..., title='Order Id')
|
|
21
|
+
store_id: str = Field(..., title='Store Id')
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class DeliveryTicketByNumber(BaseModel):
|
|
25
|
+
order_number: int = Field(..., title='Order Number')
|
|
26
|
+
store_number: str = Field(..., title='Store Number')
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class DriverCredentialUpsertRequest(BaseModel):
|
|
30
|
+
driver_id: str = Field(..., title='Driver Id')
|
|
31
|
+
credential_id: str = Field(..., title='Credential Id')
|
|
32
|
+
certification_date: Optional[datetime] = Field(None, title='Certification Date')
|
|
33
|
+
expiration_date: Optional[datetime] = Field(None, title='Expiration Date')
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class Type(Enum):
|
|
37
|
+
regular = 'regular'
|
|
38
|
+
order_request = 'order_request'
|
|
39
|
+
backhaul = 'backhaul'
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class IntegrationFormResponseOverviewReq(BaseModel):
|
|
43
|
+
form_name: Optional[str] = Field(None, title='Form Name')
|
|
44
|
+
from_date: datetime = Field(..., title='From Date')
|
|
45
|
+
to_date: datetime = Field(..., title='To Date')
|
|
46
|
+
market: Optional[str] = Field(None, title='Market')
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class OptimalSupplyReportRequest(BaseModel):
|
|
50
|
+
order_numbers: Optional[List[int]] = Field(None, title='Order Numbers')
|
|
51
|
+
order_ids: Optional[List[str]] = Field(None, title='Order Ids')
|
|
52
|
+
order_date_start: Optional[datetime] = Field(None, title='Order Date Start')
|
|
53
|
+
order_date_end: Optional[datetime] = Field(None, title='Order Date End')
|
|
54
|
+
movement_updated_start: Optional[datetime] = Field(
|
|
55
|
+
None, title='Movement Updated Start'
|
|
56
|
+
)
|
|
57
|
+
movement_updated_end: Optional[datetime] = Field(None, title='Movement Updated End')
|
|
58
|
+
last_change_date: Optional[datetime] = Field(None, title='Last Change Date')
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class OptimalSupplyReportRow(BaseModel):
|
|
62
|
+
order_number: int = Field(..., title='Order Number')
|
|
63
|
+
order_id: str = Field(..., title='Order Id')
|
|
64
|
+
site_number: str = Field(..., title='Site Number')
|
|
65
|
+
actual_component_product: str = Field(..., title='Actual Component Product')
|
|
66
|
+
actual_component_product_id: str = Field(..., title='Actual Component Product Id')
|
|
67
|
+
optimal_component_product: str = Field(..., title='Optimal Component Product')
|
|
68
|
+
optimal_component_product_id: str = Field(..., title='Optimal Component Product Id')
|
|
69
|
+
actual_terminal: str = Field(..., title='Actual Terminal')
|
|
70
|
+
actual_terminal_id: str = Field(..., title='Actual Terminal Id')
|
|
71
|
+
optimal_terminal: str = Field(..., title='Optimal Terminal')
|
|
72
|
+
optimal_terminal_id: str = Field(..., title='Optimal Terminal Id')
|
|
73
|
+
actual_supplier: str = Field(..., title='Actual Supplier')
|
|
74
|
+
actual_supplier_id: str = Field(..., title='Actual Supplier Id')
|
|
75
|
+
optimal_supplier: str = Field(..., title='Optimal Supplier')
|
|
76
|
+
optimal_supplier_id: str = Field(..., title='Optimal Supplier Id')
|
|
77
|
+
actual_price_type: str = Field(..., title='Actual Price Type')
|
|
78
|
+
optimal_price_type: str = Field(..., title='Optimal Price Type')
|
|
79
|
+
actual_contract: Optional[str] = Field(None, title='Actual Contract')
|
|
80
|
+
optimal_contract: Optional[str] = Field(None, title='Optimal Contract')
|
|
81
|
+
actual_curve_id: str = Field(..., title='Actual Curve Id')
|
|
82
|
+
optimal_curve_id: str = Field(..., title='Optimal Curve Id')
|
|
83
|
+
actual_price_id: str = Field(..., title='Actual Price Id')
|
|
84
|
+
optimal_price_id: str = Field(..., title='Optimal Price Id')
|
|
85
|
+
actual_loaded_miles: float = Field(..., title='Actual Loaded Miles')
|
|
86
|
+
optimal_loaded_miles: float = Field(..., title='Optimal Loaded Miles')
|
|
87
|
+
actual_product_price: float = Field(..., title='Actual Product Price')
|
|
88
|
+
optimal_product_price: float = Field(..., title='Optimal Product Price')
|
|
89
|
+
actual_freight_rate: float = Field(..., title='Actual Freight Rate')
|
|
90
|
+
optimal_freight_rate: float = Field(..., title='Optimal Freight Rate')
|
|
91
|
+
actual_total_price: float = Field(..., title='Actual Total Price')
|
|
92
|
+
optimal_total_price: float = Field(..., title='Optimal Total Price')
|
|
93
|
+
total_price_delta: float = Field(..., title='Total Price Delta')
|
|
94
|
+
actual_volume: float = Field(..., title='Actual Volume')
|
|
95
|
+
optimal_volume: float = Field(..., title='Optimal Volume')
|
|
96
|
+
last_change_date: datetime = Field(..., title='Last Change Date')
|
|
97
|
+
last_updated_date: datetime = Field(..., title='Last Updated Date')
|
|
98
|
+
reason_code: Optional[str] = Field(None, title='Reason Code')
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class PydanticObjectId(
|
|
102
|
+
RootModel[constr(pattern=r'^[0-9a-f]{24}$', min_length=24, max_length=24)]
|
|
103
|
+
):
|
|
104
|
+
root: constr(pattern=r'^[0-9a-f]{24}$', min_length=24, max_length=24) = Field(
|
|
105
|
+
..., examples=['5eb7cf5a86d9755df3a6c593']
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class RouteUpsertReq(BaseModel):
|
|
110
|
+
origin_name: str = Field(..., title='Origin Name')
|
|
111
|
+
destination_name: str = Field(..., title='Destination Name')
|
|
112
|
+
api_distance_miles: Optional[float] = Field(None, title='Api Distance Miles')
|
|
113
|
+
api_travel_time_seconds: Optional[float] = Field(
|
|
114
|
+
None, title='Api Travel Time Seconds'
|
|
115
|
+
)
|
|
116
|
+
override_travel_time_seconds: Optional[int] = Field(
|
|
117
|
+
None, title='Override Travel Time Seconds'
|
|
118
|
+
)
|
|
119
|
+
override_distance_miles: Optional[float] = Field(
|
|
120
|
+
None, title='Override Distance Miles'
|
|
121
|
+
)
|
|
122
|
+
override_payroll_miles: Optional[int] = Field(None, title='Override Payroll Miles')
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class SalesAdjustedDeliveryUpsertReq(BaseModel):
|
|
126
|
+
source: str = Field(..., title='Source')
|
|
127
|
+
store_id: str = Field(..., title='Store Id')
|
|
128
|
+
tank_id: str = Field(..., title='Tank Id')
|
|
129
|
+
product_id: str = Field(..., title='Product Id')
|
|
130
|
+
volume: float = Field(..., title='Volume')
|
|
131
|
+
date: datetime = Field(..., title='Date')
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class SurchargeUpdateReq(BaseModel):
|
|
135
|
+
id: PydanticObjectId
|
|
136
|
+
effective_from: datetime = Field(..., title='Effective From')
|
|
137
|
+
effective_to: Optional[datetime] = Field(None, title='Effective To')
|
|
138
|
+
surcharge: Optional[float] = Field(None, title='Surcharge')
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
class TractorView(BaseModel):
|
|
142
|
+
id: str = Field(..., title='Id')
|
|
143
|
+
tractor_number: str = Field(..., title='Tractor Number')
|
|
144
|
+
depot: Optional[str] = Field(None, title='Depot')
|
|
145
|
+
vin: Optional[str] = Field(None, title='Vin')
|
|
146
|
+
model: Optional[str] = Field(None, title='Model')
|
|
147
|
+
make: Optional[str] = Field(None, title='Make')
|
|
148
|
+
year: Optional[int] = Field(None, title='Year')
|
|
149
|
+
weight: Optional[int] = Field(None, title='Weight')
|
|
150
|
+
next_maintenance: Optional[datetime] = Field(None, title='Next Maintenance')
|
|
151
|
+
next_tractor_maintenance_required: Optional[bool] = Field(
|
|
152
|
+
None, title='Next Tractor Maintenance Required'
|
|
153
|
+
)
|
|
154
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
155
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
class TrailerConfigMatrixView(BaseModel):
|
|
159
|
+
id: str = Field(..., title='Id')
|
|
160
|
+
importance: int = Field(..., title='Importance')
|
|
161
|
+
trailer_config: Optional[str] = Field(None, title='Trailer Config')
|
|
162
|
+
code: Optional[str] = Field(None, title='Code')
|
|
163
|
+
values: Optional[List[float]] = Field([], title='Values')
|
|
164
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class TrailerView(BaseModel):
|
|
168
|
+
id: str = Field(..., title='Id')
|
|
169
|
+
trailer_number: str = Field(..., title='Trailer Number')
|
|
170
|
+
configuration: Optional[str] = Field(None, title='Configuration')
|
|
171
|
+
depot: Optional[str] = Field(None, title='Depot')
|
|
172
|
+
make: Optional[str] = Field(None, title='Make')
|
|
173
|
+
model: Optional[str] = Field(None, title='Model')
|
|
174
|
+
weight: Optional[float] = Field(None, title='Weight')
|
|
175
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
176
|
+
extra_data: Optional[Dict[str, Any]] = Field({}, title='Extra Data')
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
class UpsertTractorReq(BaseModel):
|
|
180
|
+
id: Optional[str] = Field(None, title='Id')
|
|
181
|
+
tractor_number: Optional[str] = Field(None, title='Tractor Number')
|
|
182
|
+
depot: Optional[str] = Field(None, title='Depot')
|
|
183
|
+
vin: Optional[str] = Field(None, title='Vin')
|
|
184
|
+
make: Optional[str] = Field(None, title='Make')
|
|
185
|
+
model: Optional[str] = Field(None, title='Model')
|
|
186
|
+
year: Optional[int] = Field(None, title='Year')
|
|
187
|
+
weight: Optional[int] = Field(None, title='Weight')
|
|
188
|
+
next_maintenance: Optional[datetime] = Field(None, title='Next Maintenance')
|
|
189
|
+
next_tractor_maintenance_required: Optional[bool] = Field(
|
|
190
|
+
None, title='Next Tractor Maintenance Required'
|
|
191
|
+
)
|
|
192
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
193
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
class UpsertTractorResp(BaseModel):
|
|
197
|
+
created: Optional[int] = Field(0, title='Created')
|
|
198
|
+
updated: Optional[int] = Field(0, title='Updated')
|
|
199
|
+
errors: List[str] = Field(..., title='Errors')
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class UpsertTrailerReq(BaseModel):
|
|
203
|
+
id: Optional[str] = Field(None, title='Id')
|
|
204
|
+
trailer_number: Optional[str] = Field(None, title='Trailer Number')
|
|
205
|
+
configuration: Optional[str] = Field(None, title='Configuration')
|
|
206
|
+
depot: Optional[str] = Field(None, title='Depot')
|
|
207
|
+
make: Optional[str] = Field(None, title='Make')
|
|
208
|
+
model: Optional[str] = Field(None, title='Model')
|
|
209
|
+
weight: Optional[float] = Field(None, title='Weight')
|
|
210
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
211
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
class UpsertTrailerResp(BaseModel):
|
|
215
|
+
created: Optional[int] = Field(0, title='Created')
|
|
216
|
+
updated: Optional[int] = Field(0, title='Updated')
|
|
217
|
+
errors: List[str] = Field(..., title='Errors')
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
class AllocatedBolResponse(RootModel[Any]):
|
|
221
|
+
root: Any
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
class BillableDateType(RootModel[Any]):
|
|
225
|
+
root: Any
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
class BillableVolumeType(RootModel[Any]):
|
|
229
|
+
root: Any
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
class BlendView(RootModel[Any]):
|
|
233
|
+
root: Any
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
class BolImageResponse(RootModel[Any]):
|
|
237
|
+
root: Any
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
class Card(RootModel[Any]):
|
|
241
|
+
root: Any
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
class ContractVolumeRequest(RootModel[Any]):
|
|
245
|
+
root: Any
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
class Coordinate(RootModel[Any]):
|
|
249
|
+
root: Any
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
class Counterparty(RootModel[Any]):
|
|
253
|
+
root: Any
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
class DateWindow(RootModel[Any]):
|
|
257
|
+
root: Any
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
class DaysOfWeek(RootModel[Any]):
|
|
261
|
+
root: Any
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
class DeliveryRequestStatus(RootModel[Any]):
|
|
265
|
+
root: Any
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
class DeliveryWindow(RootModel[Any]):
|
|
269
|
+
root: Any
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
class DeliveryWindowDefault(RootModel[Any]):
|
|
273
|
+
root: Any
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
class DriverCredentialView(RootModel[Any]):
|
|
277
|
+
root: Any
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
class DriverTerminalCardView(RootModel[Any]):
|
|
281
|
+
root: Any
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
class DropCreateRequest(RootModel[Any]):
|
|
285
|
+
root: Any
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
class DropWorkflow(RootModel[Any]):
|
|
289
|
+
root: Any
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
class Dwell(RootModel[Any]):
|
|
293
|
+
root: Any
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
class EBolDetailRequest(RootModel[Any]):
|
|
297
|
+
root: Any
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
class ExternalBOLDetailRequest(RootModel[Any]):
|
|
301
|
+
root: Any
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
class FormFieldResponse(RootModel[Any]):
|
|
305
|
+
root: Any
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
class FreightCost(RootModel[Any]):
|
|
309
|
+
root: Any
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
class FreightItem(RootModel[Any]):
|
|
313
|
+
root: Any
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
class FreightTransactionOutput(RootModel[Any]):
|
|
317
|
+
root: Any
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
class FreightTransactionDetailOutput(RootModel[Any]):
|
|
321
|
+
root: Any
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
class FreightTransactionRowOutput(RootModel[Any]):
|
|
325
|
+
root: Any
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
class InCabSupplyOptionMode(RootModel[Any]):
|
|
329
|
+
root: Any
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
class InCabTripMode(RootModel[Any]):
|
|
333
|
+
root: Any
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
class InNetworkSupplyZone(RootModel[Any]):
|
|
337
|
+
root: Any
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
class InNetworkTerminal(RootModel[Any]):
|
|
341
|
+
root: Any
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
class InvoiceDynamicStatus(RootModel[Any]):
|
|
345
|
+
root: Any
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
class InvoiceStaticStatus(RootModel[Any]):
|
|
349
|
+
root: Any
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
class InvoiceType(RootModel[Any]):
|
|
353
|
+
root: Any
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
class Key(RootModel[Any]):
|
|
357
|
+
root: Any
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
class LocationResponse(RootModel[Any]):
|
|
361
|
+
root: Any
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
class MonitoringStrategy(RootModel[Any]):
|
|
365
|
+
root: Any
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
class NOSupplyOptionResponse(RootModel[Any]):
|
|
369
|
+
root: Any
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
class OrderCreateStatus(RootModel[Any]):
|
|
373
|
+
root: Any
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
class OrderDriver(RootModel[Any]):
|
|
377
|
+
root: Any
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
class OrderReqNotificationStates(RootModel[Any]):
|
|
381
|
+
root: Any
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
class OrderResponse(RootModel[Any]):
|
|
385
|
+
root: Any
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
class OrderState(RootModel[Any]):
|
|
389
|
+
root: Any
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
class OrderType(RootModel[Any]):
|
|
393
|
+
root: Any
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
class PayrollExportDetailModel(RootModel[Any]):
|
|
397
|
+
root: Any
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
class PriceType(RootModel[Any]):
|
|
401
|
+
root: Any
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
class ProductGroups(RootModel[Any]):
|
|
405
|
+
root: Any
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
class ProductIDName(RootModel[Any]):
|
|
409
|
+
root: Any
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
class RateBookType(RootModel[Any]):
|
|
413
|
+
root: Any
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
class SaveDropDetail(RootModel[Any]):
|
|
417
|
+
root: Any
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
class SaveDropMode(RootModel[Any]):
|
|
421
|
+
root: Any
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
class Shift(RootModel[Any]):
|
|
425
|
+
root: Any
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
class SourceMap(RootModel[Any]):
|
|
429
|
+
root: Any
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
class SourcingStrategy(RootModel[Any]):
|
|
433
|
+
root: Any
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
class StatusUpdate(RootModel[Any]):
|
|
437
|
+
root: Any
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
class StoreStatus(RootModel[Any]):
|
|
441
|
+
root: Any
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
class StoreTank(RootModel[Any]):
|
|
445
|
+
root: Any
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
class SupplyPriceUpdateResponse(RootModel[Any]):
|
|
449
|
+
root: Any
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
class SurchargeType(RootModel[Any]):
|
|
453
|
+
root: Any
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
class TankLidEnum(RootModel[Any]):
|
|
457
|
+
root: Any
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
class TerminalType(RootModel[Any]):
|
|
461
|
+
root: Any
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
class TimezoneEnum(RootModel[Any]):
|
|
465
|
+
root: Any
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
class UnavailableHours(RootModel[Any]):
|
|
469
|
+
root: Any
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
class UnavailableHoursRequest(RootModel[Any]):
|
|
473
|
+
root: Any
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
class ValidationError(RootModel[Any]):
|
|
477
|
+
root: Any
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
class VolumeDistributionRequest(RootModel[Any]):
|
|
481
|
+
root: Any
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
class WaterReadingRequirement(RootModel[Any]):
|
|
485
|
+
root: Any
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
class ForecastApiCreateRequest(RootModel[Any]):
|
|
489
|
+
root: Any
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
class MarketSchemaSectorView(RootModel[Any]):
|
|
493
|
+
root: Any
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
class OrderSchemaBolResponse(RootModel[Any]):
|
|
497
|
+
root: Any
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
class OrderSchemaDropResponse(RootModel[Any]):
|
|
501
|
+
root: Any
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
class BolAndDropResponse(BaseModel):
|
|
505
|
+
order_number: Optional[str] = Field(None, title='Order Number')
|
|
506
|
+
order_id: Optional[str] = Field(None, title='Order Id')
|
|
507
|
+
po: Optional[str] = Field(None, title='Po')
|
|
508
|
+
carrier_id: Optional[str] = Field(None, title='Carrier Id')
|
|
509
|
+
last_movement_update: Optional[datetime] = Field(None, title='Last Movement Update')
|
|
510
|
+
order_date: Optional[datetime] = Field(None, title='Order Date')
|
|
511
|
+
status: Optional[str] = Field(None, title='Status')
|
|
512
|
+
type: Optional[str] = Field(None, title='Type')
|
|
513
|
+
drops: Optional[List[OrderSchemaDropResponse]] = Field(None, title='Drops')
|
|
514
|
+
bols: Optional[List[OrderSchemaBolResponse]] = Field(None, title='Bols')
|
|
515
|
+
costs: Optional[List[FreightCost]] = Field(None, title='Costs')
|
|
516
|
+
validation_bypass_on: Optional[datetime] = Field(None, title='Validation Bypass On')
|
|
517
|
+
has_additives: Optional[bool] = Field(False, title='Has Additives')
|
|
518
|
+
estimated_freight: Optional[FreightTransactionOutput] = None
|
|
519
|
+
actual_freight: Optional[FreightTransactionOutput] = None
|
|
520
|
+
allocated_bol_error: Optional[str] = Field(None, title='Allocated Bol Error')
|
|
521
|
+
allocated_bol_issue: Optional[str] = Field(None, title='Allocated Bol Issue')
|
|
522
|
+
allocated_bols: Optional[List[AllocatedBolResponse]] = Field(
|
|
523
|
+
None, title='Allocated Bols'
|
|
524
|
+
)
|
|
525
|
+
last_change_date: Optional[datetime] = Field(None, title='Last Change Date')
|
|
526
|
+
reference_order_number: Optional[str] = Field(None, title='Reference Order Number')
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
class BolImagesResponse(BaseModel):
|
|
530
|
+
order_id: Optional[str] = Field(None, title='Order Id')
|
|
531
|
+
bol_id: Optional[str] = Field(None, title='Bol Id')
|
|
532
|
+
bol_number: Optional[str] = Field(None, title='Bol Number')
|
|
533
|
+
photos: Optional[List[BolImageResponse]] = Field(None, title='Photos')
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
class BolsAndDropsRequest(BaseModel):
|
|
537
|
+
order_date_start: Optional[datetime] = Field(None, title='Order Date Start')
|
|
538
|
+
order_date_end: Optional[datetime] = Field(None, title='Order Date End')
|
|
539
|
+
movement_updated_start: Optional[datetime] = Field(
|
|
540
|
+
None, title='Movement Updated Start'
|
|
541
|
+
)
|
|
542
|
+
movement_updated_end: Optional[datetime] = Field(None, title='Movement Updated End')
|
|
543
|
+
order_ids: Optional[List[str]] = Field([], title='Order Ids')
|
|
544
|
+
order_numbers: Optional[List[int]] = Field([], title='Order Numbers')
|
|
545
|
+
order_states: Optional[List[OrderState]] = Field([], title='Order States')
|
|
546
|
+
order_types: Optional[List[OrderType]] = Field([], title='Order Types')
|
|
547
|
+
include_invalid: Optional[bool] = Field(False, title='Include Invalid')
|
|
548
|
+
include_bol_allocation: Optional[bool] = Field(
|
|
549
|
+
False, title='Include Bol Allocation'
|
|
550
|
+
)
|
|
551
|
+
last_change_date: Optional[datetime] = Field(None, title='Last Change Date')
|
|
552
|
+
reference_order_numbers: Optional[List[str]] = Field(
|
|
553
|
+
[], title='Reference Order Numbers'
|
|
554
|
+
)
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
class CounterpartyView(BaseModel):
|
|
558
|
+
id: str = Field(..., title='Id')
|
|
559
|
+
name: str = Field(..., title='Name')
|
|
560
|
+
goid: Optional[str] = Field(None, title='Goid')
|
|
561
|
+
scac: Optional[str] = Field(None, title='Scac')
|
|
562
|
+
types: Optional[List[str]] = Field(None, title='Types')
|
|
563
|
+
carrier_type: Optional[str] = Field(None, title='Carrier Type')
|
|
564
|
+
trailer_config: Optional[str] = Field(None, title='Trailer Config')
|
|
565
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
566
|
+
source_system: Optional[str] = Field(None, title='Source System')
|
|
567
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
568
|
+
emails: Optional[List[str]] = Field(None, title='Emails')
|
|
569
|
+
sourcing_strategy: Optional[SourcingStrategy] = None
|
|
570
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
571
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
572
|
+
allow_short_loads: Optional[bool] = Field(False, title='Allow Short Loads')
|
|
573
|
+
order_notification_preferences: Optional[List[OrderReqNotificationStates]] = Field(
|
|
574
|
+
[], title='Order Notification Preferences'
|
|
575
|
+
)
|
|
576
|
+
supply_map: Optional[List[SourceMap]] = Field([], title='Supply Map')
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
class CreateGroupRequest(BaseModel):
|
|
580
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
581
|
+
name: str = Field(..., title='Name')
|
|
582
|
+
keys: List[Key] = Field(..., title='Keys')
|
|
583
|
+
as_of: datetime = Field(..., title='As Of')
|
|
584
|
+
min: Optional[float] = Field(None, title='Min')
|
|
585
|
+
max: Optional[float] = Field(None, title='Max')
|
|
586
|
+
start_hour: Optional[int] = Field(None, title='Start Hour')
|
|
587
|
+
volume_distributions: Optional[List[VolumeDistributionRequest]] = Field(
|
|
588
|
+
[], title='Volume Distributions'
|
|
589
|
+
)
|
|
590
|
+
contract_volumes: Optional[List[ContractVolumeRequest]] = Field(
|
|
591
|
+
[], title='Contract Volumes'
|
|
592
|
+
)
|
|
593
|
+
daily_percent: Optional[float] = Field(None, title='Daily Percent')
|
|
594
|
+
weekly_percent: Optional[float] = Field(None, title='Weekly Percent')
|
|
595
|
+
monthly_percent: Optional[float] = Field(None, title='Monthly Percent')
|
|
596
|
+
contract_start: Optional[datetime] = Field(None, title='Contract Start')
|
|
597
|
+
contract_end: Optional[datetime] = Field(None, title='Contract End')
|
|
598
|
+
week_start_day: Optional[DaysOfWeek] = 'monday'
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
class DriverView(BaseModel):
|
|
602
|
+
id: str = Field(..., title='Id')
|
|
603
|
+
name: Optional[str] = Field('', title='Name')
|
|
604
|
+
username: Optional[str] = Field('', title='Username')
|
|
605
|
+
depot_id: Optional[str] = Field(None, title='Depot Id')
|
|
606
|
+
depot_name: Optional[str] = Field(None, title='Depot Name')
|
|
607
|
+
in_cab_trip_mode: Optional[InCabTripMode] = Field(
|
|
608
|
+
default_factory=lambda: InCabTripMode.model_validate('all')
|
|
609
|
+
)
|
|
610
|
+
in_cab_supply_option_mode: Optional[InCabSupplyOptionMode] = Field(
|
|
611
|
+
default_factory=lambda: InCabSupplyOptionMode.model_validate('disabled')
|
|
612
|
+
)
|
|
613
|
+
trailer_number: Optional[str] = Field(None, title='Trailer Number')
|
|
614
|
+
tractor_number: Optional[str] = Field(None, title='Tractor Number')
|
|
615
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
616
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
617
|
+
cards: Optional[List[DriverTerminalCardView]] = Field([], title='Cards')
|
|
618
|
+
credentials: Optional[List[DriverCredentialView]] = Field([], title='Credentials')
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
class EBolRequest(BaseModel):
|
|
622
|
+
source_system: str = Field(..., title='Source System')
|
|
623
|
+
bol_number: str = Field(..., title='Bol Number')
|
|
624
|
+
date: datetime = Field(..., title='Date')
|
|
625
|
+
terminal_id: str = Field(..., title='Terminal Id')
|
|
626
|
+
supplier_id: str = Field(..., title='Supplier Id')
|
|
627
|
+
details: List[EBolDetailRequest] = Field(..., title='Details')
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
class ExternalBOLRequest(BaseModel):
|
|
631
|
+
order_id: str = Field(..., title='Order Id')
|
|
632
|
+
bol_number: str = Field(..., title='Bol Number')
|
|
633
|
+
terminal_id: str = Field(..., title='Terminal Id')
|
|
634
|
+
bol_date: datetime = Field(..., title='Bol Date')
|
|
635
|
+
details: List[ExternalBOLDetailRequest] = Field(..., title='Details')
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
class FormResponseRow(BaseModel):
|
|
639
|
+
id: PydanticObjectId
|
|
640
|
+
name: str = Field(..., title='Name')
|
|
641
|
+
description: Optional[str] = Field(None, title='Description')
|
|
642
|
+
order_number: int = Field(..., title='Order Number')
|
|
643
|
+
driver_name: str = Field(..., title='Driver Name')
|
|
644
|
+
date: datetime = Field(..., title='Date')
|
|
645
|
+
shift: str = Field(..., title='Shift')
|
|
646
|
+
location_name: Optional[str] = Field(None, title='Location Name')
|
|
647
|
+
address: Optional[str] = Field(None, title='Address')
|
|
648
|
+
latitude: Optional[float] = Field(None, title='Latitude')
|
|
649
|
+
longitude: Optional[float] = Field(None, title='Longitude')
|
|
650
|
+
market: Optional[str] = Field(None, title='Market')
|
|
651
|
+
sector: Optional[str] = Field(None, title='Sector')
|
|
652
|
+
supply_zones: Optional[List[str]] = Field([], title='Supply Zones')
|
|
653
|
+
tractor: Optional[str] = Field(None, title='Tractor')
|
|
654
|
+
trailer_number: Optional[str] = Field(None, title='Trailer Number')
|
|
655
|
+
required: Optional[bool] = Field(False, title='Required')
|
|
656
|
+
response: List[FormFieldResponse] = Field(..., title='Response')
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
class FreightIntegrationReq(BaseModel):
|
|
660
|
+
order_numbers: Optional[List[int]] = Field(None, title='Order Numbers')
|
|
661
|
+
order_ids: Optional[List[PydanticObjectId]] = Field(None, title='Order Ids')
|
|
662
|
+
last_change_date: Optional[datetime] = Field(None, title='Last Change Date')
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
class GetOrderRequestResponse(BaseModel):
|
|
666
|
+
type: Optional[str] = Field(None, title='Type')
|
|
667
|
+
number: int = Field(..., title='Number')
|
|
668
|
+
order_id: Optional[str] = Field(None, title='Order Id')
|
|
669
|
+
order_number: Optional[int] = Field(None, title='Order Number')
|
|
670
|
+
order_date: Optional[datetime] = Field(None, title='Order Date')
|
|
671
|
+
order_state: Optional[Union[DeliveryRequestStatus, str]] = Field(
|
|
672
|
+
None, title='Order State'
|
|
673
|
+
)
|
|
674
|
+
reference_order_number: Optional[str] = Field(None, title='Reference Order Number')
|
|
675
|
+
last_change_date: Optional[datetime] = Field(None, title='Last Change Date')
|
|
676
|
+
site_name: Optional[str] = Field(None, title='Site Name')
|
|
677
|
+
site_id: Optional[str] = Field(None, title='Site Id')
|
|
678
|
+
customer_id: Optional[str] = Field(None, title='Customer Id')
|
|
679
|
+
customer_name: Optional[str] = Field(None, title='Customer Name')
|
|
680
|
+
delivery_window_start: datetime = Field(..., title='Delivery Window Start')
|
|
681
|
+
delivery_window_end: datetime = Field(..., title='Delivery Window End')
|
|
682
|
+
products: List[ProductIDName] = Field(..., title='Products')
|
|
683
|
+
extra_data: Optional[Dict[str, Any]] = Field({}, title='Extra Data')
|
|
684
|
+
status: str = Field(..., title='Status')
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
class GetOrderResponse(BaseModel):
|
|
688
|
+
type: Optional[Type] = Field('regular', title='Type')
|
|
689
|
+
order_id: Optional[str] = Field(None, title='Order Id')
|
|
690
|
+
drivers: Optional[List[OrderDriver]] = Field([], title='Drivers')
|
|
691
|
+
order_number: Optional[int] = Field(None, title='Order Number')
|
|
692
|
+
order_date: Optional[datetime] = Field(None, title='Order Date')
|
|
693
|
+
order_state: Optional[str] = Field(None, title='Order State')
|
|
694
|
+
carrier_window_start: Optional[datetime] = Field(None, title='Carrier Window Start')
|
|
695
|
+
carrier_window_end: Optional[datetime] = Field(None, title='Carrier Window End')
|
|
696
|
+
carrier_notify_state: Optional[str] = Field(None, title='Carrier Notify State')
|
|
697
|
+
load_window_start: Optional[datetime] = Field(None, title='Load Window Start')
|
|
698
|
+
load_window_end: Optional[datetime] = Field(None, title='Load Window End')
|
|
699
|
+
dispatch_window_start: Optional[datetime] = Field(
|
|
700
|
+
None, title='Dispatch Window Start'
|
|
701
|
+
)
|
|
702
|
+
dispatch_window_end: Optional[datetime] = Field(None, title='Dispatch Window End')
|
|
703
|
+
hauler_counterparty_id: Optional[str] = Field(None, title='Hauler Counterparty Id')
|
|
704
|
+
hauler_counterparty_name: Optional[str] = Field(
|
|
705
|
+
None, title='Hauler Counterparty Name'
|
|
706
|
+
)
|
|
707
|
+
hauler_counterparty_source_id: Optional[str] = Field(
|
|
708
|
+
None, title='Hauler Counterparty Source Id'
|
|
709
|
+
)
|
|
710
|
+
hauler_counterparty_source_system: Optional[str] = Field(
|
|
711
|
+
None, title='Hauler Counterparty Source System'
|
|
712
|
+
)
|
|
713
|
+
hauled_by_updated_by: Optional[str] = Field(None, title='Hauled By Updated By')
|
|
714
|
+
hauled_by_updated: Optional[datetime] = Field(None, title='Hauled By Updated')
|
|
715
|
+
loads: Optional[List[LocationResponse]] = Field([], title='Loads')
|
|
716
|
+
drops: Optional[List[LocationResponse]] = Field([], title='Drops')
|
|
717
|
+
trip_status: Optional[str] = Field(None, title='Trip Status')
|
|
718
|
+
last_change_date: Optional[datetime] = Field(None, title='Last Change Date')
|
|
719
|
+
market: Optional[str] = Field(None, title='Market')
|
|
720
|
+
supply_option: Optional[NOSupplyOptionResponse] = None
|
|
721
|
+
created_by: Optional[str] = Field(None, title='Created By')
|
|
722
|
+
note: Optional[str] = Field(None, title='Note')
|
|
723
|
+
estimated_load_minutes: Optional[int] = Field(None, title='Estimated Load Minutes')
|
|
724
|
+
total_miles: Optional[float] = Field(None, title='Total Miles')
|
|
725
|
+
loaded_miles: Optional[float] = Field(None, title='Loaded Miles')
|
|
726
|
+
unloaded_miles: Optional[float] = Field(None, title='Unloaded Miles')
|
|
727
|
+
reference_order_number: Optional[str] = Field(None, title='Reference Order Number')
|
|
728
|
+
extra_data: Optional[Dict[str, Any]] = Field({}, title='Extra Data')
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
class GetOrdersRequest(BaseModel):
|
|
732
|
+
order_id: Optional[str] = Field(None, title='Order Id')
|
|
733
|
+
order_number: Optional[int] = Field(None, title='Order Number')
|
|
734
|
+
type: Optional[str] = Field(None, title='Type')
|
|
735
|
+
state: Optional[Union[OrderState, str]] = Field(None, title='State')
|
|
736
|
+
last_change_date: Optional[datetime] = Field(None, title='Last Change Date')
|
|
737
|
+
order_date_start: Optional[datetime] = Field(None, title='Order Date Start')
|
|
738
|
+
order_date_end: Optional[datetime] = Field(None, title='Order Date End')
|
|
739
|
+
reference_order_number: Optional[str] = Field(None, title='Reference Order Number')
|
|
740
|
+
order_date: Optional[datetime] = Field(None, title='Order Date')
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
class HTTPValidationError(BaseModel):
|
|
744
|
+
detail: Optional[List[ValidationError]] = Field(None, title='Detail')
|
|
745
|
+
|
|
746
|
+
|
|
747
|
+
class ImportRequest(BaseModel):
|
|
748
|
+
reqs: List[ForecastApiCreateRequest] = Field(..., max_length=5000, title='Reqs')
|
|
749
|
+
|
|
750
|
+
|
|
751
|
+
class InvoiceAllReq(BaseModel):
|
|
752
|
+
order_numbers: Optional[List[int]] = Field(None, title='Order Numbers')
|
|
753
|
+
order_ids: Optional[List[str]] = Field(None, title='Order Ids')
|
|
754
|
+
invoice_numbers: Optional[List[str]] = Field(None, title='Invoice Numbers')
|
|
755
|
+
status: Optional[InvoiceStaticStatus] = 'sent'
|
|
756
|
+
counterparty_name: Optional[str] = Field(None, title='Counterparty Name')
|
|
757
|
+
counterparty_id: Optional[str] = Field(None, title='Counterparty Id')
|
|
758
|
+
book_type: Optional[RateBookType] = Field(
|
|
759
|
+
default_factory=lambda: RateBookType.model_validate('Revenue')
|
|
760
|
+
)
|
|
761
|
+
as_of: Optional[datetime] = Field(None, title='As Of')
|
|
762
|
+
between: Optional[DateWindow] = None
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
class InvoiceRow(BaseModel):
|
|
766
|
+
model_config = ConfigDict(
|
|
767
|
+
extra='allow',
|
|
768
|
+
)
|
|
769
|
+
invoice_number: str = Field(..., title='Invoice Number')
|
|
770
|
+
sent_date: Optional[datetime] = Field(None, title='Sent Date')
|
|
771
|
+
when_to_send_date: Optional[datetime] = Field(None, title='When To Send Date')
|
|
772
|
+
created_on: Optional[datetime] = Field(None, title='Created On')
|
|
773
|
+
type: InvoiceType
|
|
774
|
+
status: Optional[Union[InvoiceStaticStatus, InvoiceDynamicStatus]] = Field(
|
|
775
|
+
None, title='Status'
|
|
776
|
+
)
|
|
777
|
+
transactions: List[FreightTransactionRowOutput] = Field(..., title='Transactions')
|
|
778
|
+
note: Optional[str] = Field(None, title='Note')
|
|
779
|
+
base_amount: float = Field(..., title='Base Amount')
|
|
780
|
+
base_distance: float = Field(..., title='Base Distance')
|
|
781
|
+
distance_uom: str = Field(..., title='Distance Uom')
|
|
782
|
+
accessorial_amount: float = Field(..., title='Accessorial Amount')
|
|
783
|
+
surcharge_amount: float = Field(..., title='Surcharge Amount')
|
|
784
|
+
total_amount: float = Field(..., title='Total Amount')
|
|
785
|
+
|
|
786
|
+
|
|
787
|
+
class LocationView(BaseModel):
|
|
788
|
+
model_config = ConfigDict(
|
|
789
|
+
extra='allow',
|
|
790
|
+
)
|
|
791
|
+
id: str = Field(..., title='Id')
|
|
792
|
+
name: str = Field(..., title='Name')
|
|
793
|
+
short_name: Optional[str] = Field(None, title='Short Name')
|
|
794
|
+
market: Optional[str] = Field(None, title='Market')
|
|
795
|
+
market_id: Optional[str] = Field(None, title='Market Id')
|
|
796
|
+
freight_region_name: Optional[str] = Field(None, title='Freight Region Name')
|
|
797
|
+
freight_region_id: Optional[str] = Field(None, title='Freight Region Id')
|
|
798
|
+
type: Optional[str] = Field(None, title='Type')
|
|
799
|
+
lat: Optional[float] = Field(None, title='Lat')
|
|
800
|
+
lon: Optional[float] = Field(None, title='Lon')
|
|
801
|
+
address: Optional[str] = Field(None, title='Address')
|
|
802
|
+
phone: Optional[str] = Field(None, title='Phone')
|
|
803
|
+
city: Optional[str] = Field(None, title='City')
|
|
804
|
+
state: Optional[str] = Field(None, title='State')
|
|
805
|
+
active: Optional[bool] = Field(None, title='Active')
|
|
806
|
+
postal_code: Optional[str] = Field(None, title='Postal Code')
|
|
807
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
808
|
+
source_system: Optional[str] = Field(None, title='Source System')
|
|
809
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
810
|
+
timezone: Optional[str] = Field(None, title='Timezone')
|
|
811
|
+
supply_zones: Optional[List[str]] = Field([], title='Supply Zones')
|
|
812
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
813
|
+
cards: Optional[List[Card]] = Field([], title='Cards')
|
|
814
|
+
dwells: Optional[List[Dwell]] = Field([], title='Dwells')
|
|
815
|
+
requires_card: Optional[bool] = Field(None, title='Requires Card')
|
|
816
|
+
geofence: Optional[List[Coordinate]] = Field(None, title='Geofence')
|
|
817
|
+
supply_map: Optional[List[SourceMap]] = Field([], title='Supply Map')
|
|
818
|
+
extra_data: Optional[Dict[str, Any]] = Field({}, title='Extra Data')
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
class MarketView(BaseModel):
|
|
822
|
+
id: str = Field(..., title='Id')
|
|
823
|
+
name: str = Field(..., title='Name')
|
|
824
|
+
network_radius: Optional[int] = Field(250, title='Network Radius')
|
|
825
|
+
active: Optional[bool] = Field(True, title='Active')
|
|
826
|
+
trailer_config: Optional[str] = Field(None, title='Trailer Config')
|
|
827
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
828
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
829
|
+
sectors: Optional[List[MarketSchemaSectorView]] = Field([], title='Sectors')
|
|
830
|
+
delivery_window_default: Optional[DeliveryWindowDefault] = {
|
|
831
|
+
'name': 'default',
|
|
832
|
+
'cutoffs': [
|
|
833
|
+
{
|
|
834
|
+
'cutoff_time': 16,
|
|
835
|
+
'earliest_request_hours': 6,
|
|
836
|
+
'earliest_request_offset_days': 1,
|
|
837
|
+
}
|
|
838
|
+
],
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
class OrderCreateRequest(BaseModel):
|
|
843
|
+
model_config = ConfigDict(
|
|
844
|
+
extra='allow',
|
|
845
|
+
)
|
|
846
|
+
reference_order_number: Optional[str] = Field(..., title='Reference Order Number')
|
|
847
|
+
supply_owner: Optional[Counterparty] = None
|
|
848
|
+
sourcing_strategy: Optional[SourcingStrategy] = None
|
|
849
|
+
manual_supply_fallback: Optional[bool] = Field(True, title='Manual Supply Fallback')
|
|
850
|
+
allow_alternate_products: Optional[bool] = Field(
|
|
851
|
+
False, title='Allow Alternate Products'
|
|
852
|
+
)
|
|
853
|
+
delivery_window: DeliveryWindow
|
|
854
|
+
fit_to_trailer: Optional[bool] = Field(False, title='Fit To Trailer')
|
|
855
|
+
note: Optional[str] = Field(None, title='Note')
|
|
856
|
+
drops: List[DropCreateRequest] = Field(..., title='Drops')
|
|
857
|
+
accept_by: Optional[datetime] = Field(None, title='Accept By')
|
|
858
|
+
extra_data: Optional[Dict[str, Any]] = Field({}, title='Extra Data')
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
class OrderCreateResponse(BaseModel):
|
|
862
|
+
status: OrderCreateStatus
|
|
863
|
+
order_number: Optional[int] = Field(None, title='Order Number')
|
|
864
|
+
order: Optional[OrderResponse] = None
|
|
865
|
+
errors: Optional[List[str]] = Field([], title='Errors')
|
|
866
|
+
accept_by: Optional[datetime] = Field(None, title='Accept By')
|
|
867
|
+
reference_order_number: Optional[str] = Field(None, title='Reference Order Number')
|
|
868
|
+
extra_data: Optional[Dict[str, str]] = Field(None, title='Extra Data')
|
|
869
|
+
|
|
870
|
+
|
|
871
|
+
class OrderFreightResp(BaseModel):
|
|
872
|
+
number: int = Field(..., title='Number')
|
|
873
|
+
po: Optional[str] = Field(None, title='Po')
|
|
874
|
+
freight_rate: float = Field(..., title='Freight Rate')
|
|
875
|
+
freight_total: float = Field(..., title='Freight Total')
|
|
876
|
+
freight_items: List[FreightItem] = Field(..., title='Freight Items')
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
class OrderFreightRespV2(BaseModel):
|
|
880
|
+
number: int = Field(..., title='Number')
|
|
881
|
+
po: Optional[str] = Field(None, title='Po')
|
|
882
|
+
freight_rate: float = Field(..., title='Freight Rate')
|
|
883
|
+
freight_total: float = Field(..., title='Freight Total')
|
|
884
|
+
freight_items: List[FreightTransactionDetailOutput] = Field(
|
|
885
|
+
..., title='Freight Items'
|
|
886
|
+
)
|
|
887
|
+
|
|
888
|
+
|
|
889
|
+
class OrderStatusUpdateRequest(BaseModel):
|
|
890
|
+
order_id: str = Field(..., title='Order Id')
|
|
891
|
+
order_number: Optional[str] = Field(None, title='Order Number')
|
|
892
|
+
status: StatusUpdate
|
|
893
|
+
location_id: Optional[str] = Field(None, title='Location Id')
|
|
894
|
+
eta: Optional[datetime] = Field(None, title='Eta')
|
|
895
|
+
actual: Optional[datetime] = Field(None, title='Actual')
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
class PayrollExportDetailResponse(BaseModel):
|
|
899
|
+
driver_name: str = Field(..., title='Driver Name')
|
|
900
|
+
driver_source_id: Optional[str] = Field(None, title='Driver Source Id')
|
|
901
|
+
driver_source_system: str = Field(..., title='Driver Source System')
|
|
902
|
+
end_date: datetime = Field(..., title='End Date')
|
|
903
|
+
hours_worked: float = Field(..., title='Hours Worked')
|
|
904
|
+
pay_earned: float = Field(..., title='Pay Earned')
|
|
905
|
+
payroll_config: Optional[str] = Field(None, title='Payroll Config')
|
|
906
|
+
start_date: datetime = Field(..., title='Start Date')
|
|
907
|
+
status: str = Field(..., title='Status')
|
|
908
|
+
updated: datetime = Field(..., title='Updated')
|
|
909
|
+
detail: Optional[List[PayrollExportDetailModel]] = Field([], title='Detail')
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
class PriceAllRequest(BaseModel):
|
|
913
|
+
as_of: Optional[datetime] = Field(None, title='As Of')
|
|
914
|
+
last_change_date: Optional[datetime] = Field(None, title='Last Change Date')
|
|
915
|
+
terminals: Optional[List[str]] = Field(None, title='Terminals')
|
|
916
|
+
suppliers: Optional[List[str]] = Field(None, title='Suppliers')
|
|
917
|
+
products: Optional[List[str]] = Field(None, title='Products')
|
|
918
|
+
price_types: Optional[List[PriceType]] = Field(None, title='Price Types')
|
|
919
|
+
product_groups: Optional[List[ProductGroups]] = Field(None, title='Product Groups')
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
class PriceResponse(BaseModel):
|
|
923
|
+
curve_id: str = Field(..., title='Curve Id')
|
|
924
|
+
price_id: str = Field(..., title='Price Id')
|
|
925
|
+
city: Optional[str] = Field(None, title='City')
|
|
926
|
+
contract: Optional[str] = Field(None, title='Contract')
|
|
927
|
+
product: Optional[str] = Field(None, title='Product')
|
|
928
|
+
product_id: str = Field(..., title='Product Id')
|
|
929
|
+
supplier: Optional[str] = Field(None, title='Supplier')
|
|
930
|
+
supplier_id: str = Field(..., title='Supplier Id')
|
|
931
|
+
counterparty: Optional[str] = Field(None, title='Counterparty')
|
|
932
|
+
counterparty_id: Optional[str] = Field(None, title='Counterparty Id')
|
|
933
|
+
terminal: Optional[str] = Field(None, title='Terminal')
|
|
934
|
+
terminal_id: str = Field(..., title='Terminal Id')
|
|
935
|
+
store_number: Optional[str] = Field(None, title='Store Number')
|
|
936
|
+
store_id: Optional[str] = Field(None, title='Store Id')
|
|
937
|
+
price_type: str = Field(..., title='Price Type')
|
|
938
|
+
product_group: Optional[str] = Field(None, title='Product Group')
|
|
939
|
+
price: float = Field(..., title='Price')
|
|
940
|
+
effective_from: datetime = Field(..., title='Effective From')
|
|
941
|
+
effective_to: datetime = Field(..., title='Effective To')
|
|
942
|
+
expire: Optional[datetime] = Field(None, title='Expire')
|
|
943
|
+
disabled: bool = Field(..., title='Disabled')
|
|
944
|
+
disabled_by: Optional[str] = Field(None, title='Disabled By')
|
|
945
|
+
disabled_until: Optional[datetime] = Field(None, title='Disabled Until')
|
|
946
|
+
disabled_reason: Optional[str] = Field(None, title='Disabled Reason')
|
|
947
|
+
updated_by: Optional[str] = Field(None, title='Updated By')
|
|
948
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
949
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
950
|
+
group_id: Optional[str] = Field(None, title='Group Id')
|
|
951
|
+
group_effective_cutover: Optional[datetime] = Field(
|
|
952
|
+
None, title='Group Effective Cutover'
|
|
953
|
+
)
|
|
954
|
+
group_effective_cutover_timezone: Optional[str] = Field(
|
|
955
|
+
None, title='Group Effective Cutover Timezone'
|
|
956
|
+
)
|
|
957
|
+
group_identifier: Optional[str] = Field(None, title='Group Identifier')
|
|
958
|
+
group_name: Optional[str] = Field(None, title='Group Name')
|
|
959
|
+
min_constraint: Optional[float] = Field(None, title='Min Constraint')
|
|
960
|
+
max_constraint: Optional[float] = Field(None, title='Max Constraint')
|
|
961
|
+
created_on: Optional[datetime] = Field(None, title='Created On')
|
|
962
|
+
net_or_gross_type: Optional[BillableVolumeType] = None
|
|
963
|
+
contract_lifting_valuation_method: Optional[BillableDateType] = None
|
|
964
|
+
|
|
965
|
+
|
|
966
|
+
class ProductView(BaseModel):
|
|
967
|
+
id: str = Field(..., title='Id')
|
|
968
|
+
name: str = Field(..., title='Name')
|
|
969
|
+
short_name: Optional[str] = Field(None, title='Short Name')
|
|
970
|
+
group: str = Field(..., title='Group')
|
|
971
|
+
weight_group: str = Field(..., title='Weight Group')
|
|
972
|
+
icon: str = Field(..., title='Icon')
|
|
973
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
974
|
+
source_system: Optional[str] = Field(None, title='Source System')
|
|
975
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
976
|
+
extra_data: Optional[Dict[str, Any]] = Field({}, title='Extra Data')
|
|
977
|
+
blends: Optional[List[BlendView]] = Field([], title='Blends')
|
|
978
|
+
alternate_products: Optional[List[str]] = Field([], title='Alternate Products')
|
|
979
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
980
|
+
tank_lid_code_id: Optional[str] = Field(None, title='Tank Lid Code Id')
|
|
981
|
+
supply_map: Optional[List[SourceMap]] = Field([], title='Supply Map')
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
class SaveDropReq(BaseModel):
|
|
985
|
+
mode: Optional[SaveDropMode] = Field(
|
|
986
|
+
default_factory=lambda: SaveDropMode.model_validate('append')
|
|
987
|
+
)
|
|
988
|
+
order_id: str = Field(..., title='Order Id')
|
|
989
|
+
location_id: str = Field(..., title='Location Id')
|
|
990
|
+
details: List[SaveDropDetail] = Field(..., title='Details')
|
|
991
|
+
|
|
992
|
+
|
|
993
|
+
class StoreV2(BaseModel):
|
|
994
|
+
model_config = ConfigDict(
|
|
995
|
+
extra='allow',
|
|
996
|
+
)
|
|
997
|
+
field_id: Optional[PydanticObjectId] = Field(
|
|
998
|
+
None, alias='_id', description='MongoDB document ObjectID'
|
|
999
|
+
)
|
|
1000
|
+
store_number: Optional[str] = Field(None, title='Store Number')
|
|
1001
|
+
name: Optional[str] = Field(None, title='Name')
|
|
1002
|
+
market: Optional[str] = Field(None, title='Market')
|
|
1003
|
+
market_id: Optional[str] = Field(None, title='Market Id')
|
|
1004
|
+
sector: Optional[str] = Field(None, title='Sector')
|
|
1005
|
+
sector_id: Optional[str] = Field(None, title='Sector Id')
|
|
1006
|
+
tanks: Optional[List[StoreTank]] = Field([], title='Tanks')
|
|
1007
|
+
lat: Optional[float] = Field(None, title='Lat')
|
|
1008
|
+
lon: Optional[float] = Field(None, title='Lon')
|
|
1009
|
+
address: Optional[str] = Field(None, title='Address')
|
|
1010
|
+
city: Optional[str] = Field(None, title='City')
|
|
1011
|
+
state: Optional[str] = Field(None, title='State')
|
|
1012
|
+
postal_code: Optional[str] = Field(None, title='Postal Code')
|
|
1013
|
+
contact_name: Optional[str] = Field(None, title='Contact Name')
|
|
1014
|
+
phone_number: Optional[str] = Field(None, title='Phone Number')
|
|
1015
|
+
emails: Optional[List[str]] = Field([], title='Emails')
|
|
1016
|
+
hours: Optional[str] = Field('', title='Hours')
|
|
1017
|
+
timezone: Optional[str] = Field('US/Central', title='Timezone')
|
|
1018
|
+
status: Optional[StoreStatus] = Field(
|
|
1019
|
+
default_factory=lambda: StoreStatus.model_validate('open')
|
|
1020
|
+
)
|
|
1021
|
+
drop_workflow: Optional[DropWorkflow] = Field(
|
|
1022
|
+
default_factory=lambda: DropWorkflow.model_validate('Sticking')
|
|
1023
|
+
)
|
|
1024
|
+
open_date: Optional[datetime] = Field(None, title='Open Date')
|
|
1025
|
+
close_date: Optional[datetime] = Field(None, title='Close Date')
|
|
1026
|
+
unavailable_hours: Optional[List[UnavailableHours]] = Field(
|
|
1027
|
+
[], title='Unavailable Hours'
|
|
1028
|
+
)
|
|
1029
|
+
counterparty_id: Optional[str] = Field(None, title='Counterparty Id')
|
|
1030
|
+
counterparty_name: Optional[str] = Field(None, title='Counterparty Name')
|
|
1031
|
+
in_network_terminals: Optional[List[InNetworkTerminal]] = Field(
|
|
1032
|
+
[], title='In Network Terminals'
|
|
1033
|
+
)
|
|
1034
|
+
in_network_supply_zones: Optional[List[InNetworkSupplyZone]] = Field(
|
|
1035
|
+
[], title='In Network Supply Zones'
|
|
1036
|
+
)
|
|
1037
|
+
supply_owner_id: Optional[str] = Field(None, title='Supply Owner Id')
|
|
1038
|
+
supply_owner_name: Optional[str] = Field(None, title='Supply Owner Name')
|
|
1039
|
+
freight_customer_id: Optional[str] = Field(None, title='Freight Customer Id')
|
|
1040
|
+
freight_customer_name: Optional[str] = Field(None, title='Freight Customer Name')
|
|
1041
|
+
freight_region_name: Optional[str] = Field(None, title='Freight Region Name')
|
|
1042
|
+
freight_region_id: Optional[str] = Field(None, title='Freight Region Id')
|
|
1043
|
+
layout_file: Optional[str] = Field(None, title='Layout File')
|
|
1044
|
+
layout_file_uploaded: Optional[datetime] = Field(None, title='Layout File Uploaded')
|
|
1045
|
+
auto_order_disabled: Optional[bool] = Field(False, title='Auto Order Disabled')
|
|
1046
|
+
updated_id: Optional[PydanticObjectId] = None
|
|
1047
|
+
trailer_config: Optional[str] = Field(None, title='Trailer Config')
|
|
1048
|
+
monitoring_strategy: Optional[MonitoringStrategy] = Field(
|
|
1049
|
+
default_factory=lambda: MonitoringStrategy.model_validate('Unmonitored')
|
|
1050
|
+
)
|
|
1051
|
+
estick_monitor_override: Optional[str] = Field(
|
|
1052
|
+
None, title='Estick Monitor Override'
|
|
1053
|
+
)
|
|
1054
|
+
notes: Optional[str] = Field(None, title='Notes')
|
|
1055
|
+
updated_on: Optional[datetime] = Field(None, title='Updated On')
|
|
1056
|
+
updated_by: Optional[str] = Field(None, title='Updated By')
|
|
1057
|
+
extra_data: Optional[Dict[str, Any]] = Field({}, title='Extra Data')
|
|
1058
|
+
credit_hold: Optional[bool] = Field(None, title='Credit Hold')
|
|
1059
|
+
compliance_hold_date: Optional[datetime] = Field(None, title='Compliance Hold Date')
|
|
1060
|
+
delivery_window_default_name: Optional[str] = Field(
|
|
1061
|
+
None, title='Delivery Window Default Name'
|
|
1062
|
+
)
|
|
1063
|
+
delivery_window_default_id: Optional[str] = Field(
|
|
1064
|
+
None, title='Delivery Window Default Id'
|
|
1065
|
+
)
|
|
1066
|
+
allow_by_product_request: Optional[bool] = Field(
|
|
1067
|
+
False, title='Allow By Product Request'
|
|
1068
|
+
)
|
|
1069
|
+
geofence: Optional[List[Coordinate]] = Field(None, title='Geofence')
|
|
1070
|
+
|
|
1071
|
+
|
|
1072
|
+
class SupplyPriceUpdateManyRequest(BaseModel):
|
|
1073
|
+
id: Optional[str] = Field(None, title='Id')
|
|
1074
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
1075
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
1076
|
+
contract: Optional[str] = Field(None, title='Contract')
|
|
1077
|
+
timezone: Optional[TimezoneEnum] = Field(
|
|
1078
|
+
default_factory=lambda: TimezoneEnum.model_validate('UTC')
|
|
1079
|
+
)
|
|
1080
|
+
effective_from: datetime = Field(..., title='Effective From')
|
|
1081
|
+
effective_to: datetime = Field(..., title='Effective To')
|
|
1082
|
+
price: float = Field(..., title='Price')
|
|
1083
|
+
price_type: PriceType
|
|
1084
|
+
terminal_id: Optional[constr(min_length=24, max_length=24)] = Field(
|
|
1085
|
+
None, title='Terminal Id'
|
|
1086
|
+
)
|
|
1087
|
+
terminal_source_id: Optional[str] = Field(None, title='Terminal Source Id')
|
|
1088
|
+
terminal_source_system_id: Optional[str] = Field(
|
|
1089
|
+
None, title='Terminal Source System Id'
|
|
1090
|
+
)
|
|
1091
|
+
terminal: Optional[str] = Field(None, title='Terminal')
|
|
1092
|
+
product_id: Optional[constr(min_length=24, max_length=24)] = Field(
|
|
1093
|
+
None, title='Product Id'
|
|
1094
|
+
)
|
|
1095
|
+
product_source_id: Optional[str] = Field(None, title='Product Source Id')
|
|
1096
|
+
product_source_system_id: Optional[str] = Field(
|
|
1097
|
+
None, title='Product Source System Id'
|
|
1098
|
+
)
|
|
1099
|
+
product: Optional[str] = Field(None, title='Product')
|
|
1100
|
+
supplier_id: Optional[constr(min_length=24, max_length=24)] = Field(
|
|
1101
|
+
None, title='Supplier Id'
|
|
1102
|
+
)
|
|
1103
|
+
supplier_source_id: Optional[str] = Field(None, title='Supplier Source Id')
|
|
1104
|
+
supplier_source_system_id: Optional[str] = Field(
|
|
1105
|
+
None, title='Supplier Source System Id'
|
|
1106
|
+
)
|
|
1107
|
+
supplier: Optional[str] = Field(None, title='Supplier')
|
|
1108
|
+
counterparty_id: Optional[constr(min_length=24, max_length=24)] = Field(
|
|
1109
|
+
None, title='Counterparty Id'
|
|
1110
|
+
)
|
|
1111
|
+
counterparty_source_id: Optional[str] = Field(None, title='Counterparty Source Id')
|
|
1112
|
+
counterparty_source_system_id: Optional[str] = Field(
|
|
1113
|
+
None, title='Counterparty Source System Id'
|
|
1114
|
+
)
|
|
1115
|
+
counterparty: Optional[str] = Field(None, title='Counterparty')
|
|
1116
|
+
store_id: Optional[constr(min_length=24, max_length=24)] = Field(
|
|
1117
|
+
None, title='Store Id'
|
|
1118
|
+
)
|
|
1119
|
+
store_source_id: Optional[str] = Field(None, title='Store Source Id')
|
|
1120
|
+
store_source_system_id: Optional[str] = Field(None, title='Store Source System Id')
|
|
1121
|
+
store_number: Optional[str] = Field(None, title='Store Number')
|
|
1122
|
+
enabled: Optional[bool] = Field(True, title='Enabled')
|
|
1123
|
+
disabled_until: Optional[datetime] = Field(None, title='Disabled Until')
|
|
1124
|
+
expire: Optional[datetime] = Field(None, title='Expire')
|
|
1125
|
+
min_quantity: Optional[int] = Field(None, title='Min Quantity')
|
|
1126
|
+
max_quantity: Optional[int] = Field(None, title='Max Quantity')
|
|
1127
|
+
curve_id: Optional[str] = Field(None, title='Curve Id')
|
|
1128
|
+
error: Optional[str] = Field(None, title='Error')
|
|
1129
|
+
row: Optional[int] = Field(None, title='Row')
|
|
1130
|
+
net_or_gross_type: Optional[BillableVolumeType] = None
|
|
1131
|
+
contract_lifting_valuation_method: Optional[BillableDateType] = None
|
|
1132
|
+
|
|
1133
|
+
|
|
1134
|
+
class SurchargeAllReq(BaseModel):
|
|
1135
|
+
counterparty_name: Optional[str] = Field(None, title='Counterparty Name')
|
|
1136
|
+
counterparty_id: Optional[str] = Field(None, title='Counterparty Id')
|
|
1137
|
+
book_type: Optional[RateBookType] = None
|
|
1138
|
+
as_of: Optional[datetime] = Field(None, title='As Of')
|
|
1139
|
+
product_group: Optional[ProductGroups] = None
|
|
1140
|
+
freight_region_name: Optional[str] = Field(None, title='Freight Region Name')
|
|
1141
|
+
freight_region_id: Optional[str] = Field(None, title='Freight Region Id')
|
|
1142
|
+
|
|
1143
|
+
|
|
1144
|
+
class SurchargeAllResp(BaseModel):
|
|
1145
|
+
id: PydanticObjectId
|
|
1146
|
+
counterparty: str = Field(..., title='Counterparty')
|
|
1147
|
+
counterparty_id: str = Field(..., title='Counterparty Id')
|
|
1148
|
+
product_group: Optional[ProductGroups] = None
|
|
1149
|
+
book_type: RateBookType
|
|
1150
|
+
freight_region_id: Optional[str] = Field(None, title='Freight Region Id')
|
|
1151
|
+
freight_region_name: Optional[str] = Field(None, title='Freight Region Name')
|
|
1152
|
+
type: SurchargeType
|
|
1153
|
+
effective_from: Optional[datetime] = Field(None, title='Effective From')
|
|
1154
|
+
effective_to: Optional[datetime] = Field(None, title='Effective To')
|
|
1155
|
+
surcharge: Optional[float] = Field(None, title='Surcharge')
|
|
1156
|
+
created_on: datetime = Field(..., title='Created On')
|
|
1157
|
+
created_by: Optional[str] = Field(None, title='Created By')
|
|
1158
|
+
|
|
1159
|
+
|
|
1160
|
+
class SurchargeCreateReq(BaseModel):
|
|
1161
|
+
counterparty_name: Optional[str] = Field(None, title='Counterparty Name')
|
|
1162
|
+
counterparty_id: Optional[str] = Field(None, title='Counterparty Id')
|
|
1163
|
+
product_group: Optional[ProductGroups] = None
|
|
1164
|
+
book_type: RateBookType
|
|
1165
|
+
freight_region_id: Optional[str] = Field(None, title='Freight Region Id')
|
|
1166
|
+
freight_region_name: Optional[str] = Field(None, title='Freight Region Name')
|
|
1167
|
+
type: SurchargeType
|
|
1168
|
+
effective_from: datetime = Field(..., title='Effective From')
|
|
1169
|
+
effective_to: Optional[datetime] = Field(None, title='Effective To')
|
|
1170
|
+
surcharge: Optional[float] = Field(None, title='Surcharge')
|
|
1171
|
+
|
|
1172
|
+
|
|
1173
|
+
class UpdateResponse(BaseModel):
|
|
1174
|
+
created: Optional[int] = Field(0, title='Created')
|
|
1175
|
+
end_dated: Optional[int] = Field(0, title='End Dated')
|
|
1176
|
+
bad_data: List[SupplyPriceUpdateResponse] = Field(..., title='Bad Data')
|
|
1177
|
+
duplicates: List[SupplyPriceUpdateResponse] = Field(..., title='Duplicates')
|
|
1178
|
+
exact_match: List[SupplyPriceUpdateResponse] = Field(..., title='Exact Match')
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
class UploadIMSRequest(BaseModel):
|
|
1182
|
+
store: str = Field(..., title='Store')
|
|
1183
|
+
tank: Union[str, int] = Field(..., title='Tank')
|
|
1184
|
+
timezone: Optional[TimezoneEnum] = None
|
|
1185
|
+
date: datetime = Field(..., title='Date')
|
|
1186
|
+
inches: Optional[int] = Field(None, title='Inches')
|
|
1187
|
+
volume: Optional[float] = Field(None, title='Volume')
|
|
1188
|
+
payload: Optional[Dict[str, Any]] = Field(None, title='Payload')
|
|
1189
|
+
|
|
1190
|
+
|
|
1191
|
+
class UpsertLocationRequest(BaseModel):
|
|
1192
|
+
id: Optional[constr(min_length=24, max_length=24)] = Field(None, title='Id')
|
|
1193
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
1194
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
1195
|
+
name: str = Field(..., title='Name')
|
|
1196
|
+
short_name: str = Field(..., title='Short Name')
|
|
1197
|
+
address: Optional[str] = Field(None, title='Address')
|
|
1198
|
+
type: TerminalType
|
|
1199
|
+
city: Optional[str] = Field(None, title='City')
|
|
1200
|
+
state: Optional[str] = Field(None, title='State')
|
|
1201
|
+
postal_code: Optional[str] = Field(None, title='Postal Code')
|
|
1202
|
+
market_id: Optional[str] = Field(None, title='Market Id')
|
|
1203
|
+
market: str = Field(..., title='Market')
|
|
1204
|
+
lat: float = Field(..., title='Lat')
|
|
1205
|
+
lon: float = Field(..., title='Lon')
|
|
1206
|
+
hours: Optional[str] = Field(None, title='Hours')
|
|
1207
|
+
contact: Optional[str] = Field(None, title='Contact')
|
|
1208
|
+
contact_phone: Optional[str] = Field(None, title='Contact Phone')
|
|
1209
|
+
active: Optional[bool] = Field(True, title='Active')
|
|
1210
|
+
include_in_backhaul: Optional[bool] = Field(False, title='Include In Backhaul')
|
|
1211
|
+
start_time: Optional[datetime] = Field(None, title='Start Time')
|
|
1212
|
+
end_time: Optional[datetime] = Field(None, title='End Time')
|
|
1213
|
+
requires_card: Optional[bool] = Field(False, title='Requires Card')
|
|
1214
|
+
splash_blending: Optional[bool] = Field(True, title='Splash Blending')
|
|
1215
|
+
split_load_terminals: Optional[List[str]] = Field([], title='Split Load Terminals')
|
|
1216
|
+
authorized_carriers: Optional[List[str]] = Field([], title='Authorized Carriers')
|
|
1217
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
1218
|
+
geofence: Optional[List[Union[Coordinate, List, str]]] = Field(
|
|
1219
|
+
None, title='Geofence'
|
|
1220
|
+
)
|
|
1221
|
+
supply_zones: Optional[List[str]] = Field([], title='Supply Zones')
|
|
1222
|
+
supply_map: Optional[List[SourceMap]] = Field(None, title='Supply Map')
|
|
1223
|
+
|
|
1224
|
+
|
|
1225
|
+
class UpsertManyCounterpartyRequest(BaseModel):
|
|
1226
|
+
id: Optional[constr(min_length=24, max_length=24)] = Field(None, title='Id')
|
|
1227
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
1228
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
1229
|
+
name: str = Field(..., title='Name')
|
|
1230
|
+
types: List[str] = Field(..., title='Types')
|
|
1231
|
+
carrier_type: Optional[str] = Field(None, title='Carrier Type')
|
|
1232
|
+
trailer_config: Optional[str] = Field(None, title='Trailer Config')
|
|
1233
|
+
emails: Optional[List[EmailStr]] = Field([], title='Emails')
|
|
1234
|
+
sourcing_strategy: Optional[SourcingStrategy] = None
|
|
1235
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
1236
|
+
goid: Optional[str] = Field(None, title='Goid')
|
|
1237
|
+
allow_short_loads: Optional[bool] = Field(False, title='Allow Short Loads')
|
|
1238
|
+
order_notification_preferences: Optional[List[OrderReqNotificationStates]] = Field(
|
|
1239
|
+
[], title='Order Notification Preferences'
|
|
1240
|
+
)
|
|
1241
|
+
supply_map: Optional[List[SourceMap]] = Field(None, title='Supply Map')
|
|
1242
|
+
available_credit: Optional[float] = Field(None, title='Available Credit')
|
|
1243
|
+
hold: Optional[bool] = Field(False, title='Hold')
|
|
1244
|
+
|
|
1245
|
+
|
|
1246
|
+
class UpsertManyDriverRequest(BaseModel):
|
|
1247
|
+
model_config = ConfigDict(
|
|
1248
|
+
extra='allow',
|
|
1249
|
+
)
|
|
1250
|
+
id: Optional[constr(min_length=24, max_length=24)] = Field(None, title='Id')
|
|
1251
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
1252
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
1253
|
+
name: str = Field(..., title='Name')
|
|
1254
|
+
username: str = Field(..., title='Username')
|
|
1255
|
+
email: Optional[EmailStr] = Field(None, title='Email')
|
|
1256
|
+
title: Optional[str] = Field(None, title='Title')
|
|
1257
|
+
hire_date: datetime = Field(..., title='Hire Date')
|
|
1258
|
+
termination_date: Optional[datetime] = Field(None, title='Termination Date')
|
|
1259
|
+
depot: Optional[str] = Field(None, title='Depot')
|
|
1260
|
+
depot_id: Optional[str] = Field(None, title='Depot Id')
|
|
1261
|
+
in_cab_trip_mode: Optional[InCabTripMode] = None
|
|
1262
|
+
in_cab_supply_option_mode: Optional[InCabSupplyOptionMode] = None
|
|
1263
|
+
preferred_template: Optional[str] = Field(None, title='Preferred Template')
|
|
1264
|
+
shift_preference: Shift
|
|
1265
|
+
shift_length_hours: Optional[float] = Field(None, title='Shift Length Hours')
|
|
1266
|
+
tractor_number: Optional[str] = Field(None, title='Tractor Number')
|
|
1267
|
+
tractor_id: Optional[str] = Field(None, title='Tractor Id')
|
|
1268
|
+
trailer_number: Optional[str] = Field(None, title='Trailer Number')
|
|
1269
|
+
trailer_id: Optional[str] = Field(None, title='Trailer Id')
|
|
1270
|
+
carded_terminals: Optional[List[str]] = Field(None, title='Carded Terminals')
|
|
1271
|
+
supervisor: Optional[str] = Field(None, title='Supervisor')
|
|
1272
|
+
active: Optional[bool] = Field(True, title='Active')
|
|
1273
|
+
|
|
1274
|
+
|
|
1275
|
+
class UpsertManyStoreRequest(BaseModel):
|
|
1276
|
+
id: Optional[constr(min_length=24, max_length=24)] = Field(None, title='Id')
|
|
1277
|
+
store_number: str = Field(..., title='Store Number')
|
|
1278
|
+
name: Optional[str] = Field(None, title='Name')
|
|
1279
|
+
address: Optional[str] = Field(None, title='Address')
|
|
1280
|
+
city: Optional[str] = Field(None, title='City')
|
|
1281
|
+
state: Optional[str] = Field(None, title='State')
|
|
1282
|
+
postal_code: Optional[str] = Field(None, title='Postal Code')
|
|
1283
|
+
phone_number: Optional[str] = Field(None, title='Phone Number')
|
|
1284
|
+
emails: Optional[List[str]] = Field(None, title='Emails')
|
|
1285
|
+
hours: Optional[str] = Field(None, title='Hours')
|
|
1286
|
+
market: Optional[str] = Field(None, title='Market')
|
|
1287
|
+
market_id: Optional[str] = Field(None, title='Market Id')
|
|
1288
|
+
sector: Optional[str] = Field(None, title='Sector')
|
|
1289
|
+
sector_id: Optional[str] = Field(None, title='Sector Id')
|
|
1290
|
+
trailer_config: Optional[str] = Field(None, title='Trailer Config')
|
|
1291
|
+
lat: float = Field(..., title='Lat')
|
|
1292
|
+
lon: float = Field(..., title='Lon')
|
|
1293
|
+
timezone: Optional[TimezoneEnum] = Field(
|
|
1294
|
+
default_factory=lambda: TimezoneEnum.model_validate('America/Chicago')
|
|
1295
|
+
)
|
|
1296
|
+
status: Optional[StoreStatus] = Field(
|
|
1297
|
+
default_factory=lambda: StoreStatus.model_validate('open')
|
|
1298
|
+
)
|
|
1299
|
+
contact_name: Optional[str] = Field(None, title='Contact Name')
|
|
1300
|
+
open_date: Optional[datetime] = Field(None, title='Open Date')
|
|
1301
|
+
close_date: Optional[datetime] = Field(None, title='Close Date')
|
|
1302
|
+
unavailable_hours: Optional[List[UnavailableHoursRequest]] = Field(
|
|
1303
|
+
[], title='Unavailable Hours'
|
|
1304
|
+
)
|
|
1305
|
+
counterparty_id: Optional[str] = Field(None, title='Counterparty Id')
|
|
1306
|
+
counterparty_name: Optional[str] = Field(None, title='Counterparty Name')
|
|
1307
|
+
supply_owner_id: Optional[str] = Field(None, title='Supply Owner Id')
|
|
1308
|
+
supply_owner_name: Optional[str] = Field(None, title='Supply Owner Name')
|
|
1309
|
+
freight_customer_id: Optional[str] = Field(None, title='Freight Customer Id')
|
|
1310
|
+
freight_customer_name: Optional[str] = Field(None, title='Freight Customer Name')
|
|
1311
|
+
freight_region_name: Optional[str] = Field(None, title='Freight Region Name')
|
|
1312
|
+
freight_region_id: Optional[str] = Field(None, title='Freight Region Id')
|
|
1313
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
1314
|
+
monitoring_strategy: MonitoringStrategy
|
|
1315
|
+
estick_monitor_override: Optional[str] = Field(
|
|
1316
|
+
None, title='Estick Monitor Override'
|
|
1317
|
+
)
|
|
1318
|
+
drop_workflow: Optional[DropWorkflow] = Field(
|
|
1319
|
+
default_factory=lambda: DropWorkflow.model_validate('Sticking')
|
|
1320
|
+
)
|
|
1321
|
+
credit_hold: Optional[bool] = Field(None, title='Credit Hold')
|
|
1322
|
+
compliance_hold_date: Optional[datetime] = Field(None, title='Compliance Hold Date')
|
|
1323
|
+
allow_by_product_request: Optional[bool] = Field(
|
|
1324
|
+
None, title='Allow By Product Request'
|
|
1325
|
+
)
|
|
1326
|
+
in_network_terminals: Optional[List[str]] = Field(
|
|
1327
|
+
None, title='In Network Terminals'
|
|
1328
|
+
)
|
|
1329
|
+
delivery_window_default_name: Optional[str] = Field(
|
|
1330
|
+
None, title='Delivery Window Default Name'
|
|
1331
|
+
)
|
|
1332
|
+
delivery_window_default_id: Optional[str] = Field(
|
|
1333
|
+
None, title='Delivery Window Default Id'
|
|
1334
|
+
)
|
|
1335
|
+
geofence: Optional[List[Union[Coordinate, List, str]]] = Field(
|
|
1336
|
+
None, title='Geofence'
|
|
1337
|
+
)
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
class UpsertProductRequest(BaseModel):
|
|
1341
|
+
group: str = Field(..., title='Group')
|
|
1342
|
+
weight_group: Optional[str] = Field(None, title='Weight Group')
|
|
1343
|
+
extra_data: Optional[Dict[str, Any]] = Field(None, title='Extra Data')
|
|
1344
|
+
id: Optional[constr(min_length=24, max_length=24)] = Field(None, title='Id')
|
|
1345
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
1346
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
1347
|
+
name: str = Field(..., title='Name')
|
|
1348
|
+
alias: Optional[str] = Field(None, title='Alias')
|
|
1349
|
+
enabled: Optional[bool] = Field(None, title='Enabled')
|
|
1350
|
+
specific_gravity: Optional[float] = Field(None, title='Specific Gravity')
|
|
1351
|
+
short_name: Optional[constr(max_length=10)] = Field(None, title='Short Name')
|
|
1352
|
+
icon: Optional[TankLidEnum] = None
|
|
1353
|
+
tank_lid_code_id: Optional[str] = Field(None, title='Tank Lid Code Id')
|
|
1354
|
+
supply_map: Optional[List[SourceMap]] = Field(None, title='Supply Map')
|
|
1355
|
+
|
|
1356
|
+
|
|
1357
|
+
class UpsertTankRequest(BaseModel):
|
|
1358
|
+
id: Optional[str] = Field(None, title='Id')
|
|
1359
|
+
source_id: Optional[str] = Field(None, title='Source Id')
|
|
1360
|
+
source_system_id: Optional[str] = Field(None, title='Source System Id')
|
|
1361
|
+
store_id: Optional[constr(min_length=24, max_length=24)] = Field(
|
|
1362
|
+
None, title='Store Id'
|
|
1363
|
+
)
|
|
1364
|
+
tank_id: conint(gt=-1) = Field(..., title='Tank Id')
|
|
1365
|
+
island: Optional[str] = Field(None, title='Island')
|
|
1366
|
+
icon: Optional[TankLidEnum] = None
|
|
1367
|
+
product_id: Optional[str] = Field(None, title='Product Id')
|
|
1368
|
+
product: str = Field(..., title='Product')
|
|
1369
|
+
description: Optional[constr(max_length=1000)] = Field(None, title='Description')
|
|
1370
|
+
tank_chart: Optional[str] = Field(None, title='Tank Chart')
|
|
1371
|
+
storage_max: Optional[float] = Field(None, title='Storage Max')
|
|
1372
|
+
tank_size: Optional[float] = Field(None, title='Tank Size')
|
|
1373
|
+
fuel_bottom: Optional[float] = Field(None, title='Fuel Bottom')
|
|
1374
|
+
manufacturer: Optional[str] = Field(None, title='Manufacturer')
|
|
1375
|
+
dimensions: Optional[str] = Field(None, title='Dimensions')
|
|
1376
|
+
tank_color: Optional[str] = Field(None, title='Tank Color')
|
|
1377
|
+
minimum_load_size: Optional[int] = Field(None, title='Minimum Load Size')
|
|
1378
|
+
maximum_load_size: Optional[int] = Field(None, title='Maximum Load Size')
|
|
1379
|
+
strapping_table: Optional[str] = Field(None, title='Strapping Table')
|
|
1380
|
+
target_min: Optional[float] = Field(None, title='Target Min')
|
|
1381
|
+
target_max: Optional[float] = Field(None, title='Target Max')
|
|
1382
|
+
inventory_strategy: Optional[str] = Field(None, title='Inventory Strategy')
|
|
1383
|
+
load_tags: Optional[List[str]] = Field([], title='Load Tags')
|
|
1384
|
+
filter_tags: Optional[List[str]] = Field([], title='Filter Tags')
|
|
1385
|
+
split_me: Optional[bool] = Field(None, title='Split Me')
|
|
1386
|
+
water_reading_requirement: Optional[WaterReadingRequirement] = None
|
|
1387
|
+
requires_pump: Optional[bool] = Field(None, title='Requires Pump')
|
|
1388
|
+
carrier_id: Optional[str] = Field(None, title='Carrier Id')
|
|
1389
|
+
carrier: Optional[str] = Field(None, title='Carrier')
|
|
1390
|
+
extra_data: Optional[Dict[str, Any]] = Field({}, title='Extra Data')
|
|
1391
|
+
active: Optional[bool] = Field(True, title='Active')
|
|
1392
|
+
manifold_id: Optional[str] = Field(None, title='Manifold Id')
|
|
1393
|
+
apportion_percentage: Optional[float] = Field(None, title='Apportion Percentage')
|
|
1394
|
+
compliance_hold: Optional[bool] = Field(None, title='Compliance Hold')
|
|
1395
|
+
demand_model_tank_profile: Optional[str] = Field(
|
|
1396
|
+
None, title='Demand Model Tank Profile'
|
|
1397
|
+
)
|
|
1398
|
+
store_number: Optional[str] = Field(None, title='Store Number')
|