convexity-api-client 0.21.0.dev332__py3-none-any.whl → 0.21.0.dev336__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.
Files changed (140) hide show
  1. convexity_api_client/api/v1/crm_create_sales_rep.py +186 -0
  2. convexity_api_client/api/v1/crm_delete_sales_rep.py +182 -0
  3. convexity_api_client/api/v1/crm_get_sales_rep.py +182 -0
  4. convexity_api_client/api/v1/crm_list_sales_reps.py +236 -0
  5. convexity_api_client/api/v1/crm_update_sales_rep.py +202 -0
  6. convexity_api_client/api/v1/inventory_assign_item_warehouse_location.py +206 -0
  7. convexity_api_client/api/v1/inventory_create_cost_list_vendor_assignment.py +202 -0
  8. convexity_api_client/api/v1/inventory_create_price_list_channel_assignment.py +202 -0
  9. convexity_api_client/api/v1/inventory_create_price_list_customer_assignment.py +202 -0
  10. convexity_api_client/api/v1/inventory_delete_cost_list_vendor_assignment.py +196 -0
  11. convexity_api_client/api/v1/inventory_delete_price_list_channel_assignment.py +196 -0
  12. convexity_api_client/api/v1/inventory_delete_price_list_customer_assignment.py +196 -0
  13. convexity_api_client/api/v1/inventory_list_cost_list_vendor_assignments.py +202 -0
  14. convexity_api_client/api/v1/inventory_list_item_cost_list_entries.py +182 -0
  15. convexity_api_client/api/v1/inventory_list_item_price_list_entries.py +182 -0
  16. convexity_api_client/api/v1/inventory_list_item_warehouse_locations.py +212 -0
  17. convexity_api_client/api/v1/inventory_list_price_list_channel_assignments.py +202 -0
  18. convexity_api_client/api/v1/inventory_list_price_list_customer_assignments.py +202 -0
  19. convexity_api_client/api/v1/inventory_list_warehouse_location_items.py +226 -0
  20. convexity_api_client/api/v1/inventory_update_cost_list_vendor_assignment.py +216 -0
  21. convexity_api_client/api/v1/inventory_update_price_list_channel_assignment.py +216 -0
  22. convexity_api_client/api/v1/inventory_update_price_list_customer_assignment.py +216 -0
  23. convexity_api_client/api/v1/purchasing_create_item_sourcing.py +190 -0
  24. convexity_api_client/api/v1/purchasing_deactivate_item_sourcing.py +182 -0
  25. convexity_api_client/api/v1/purchasing_get_item_sourcing_options.py +166 -0
  26. convexity_api_client/api/v1/purchasing_list_item_sourcing.py +382 -0
  27. convexity_api_client/api/v1/purchasing_update_item_sourcing.py +202 -0
  28. convexity_api_client/api/v1/purchasing_upsert_item_sourcing_cost.py +206 -0
  29. convexity_api_client/api/v1/sales_list_orders.py +20 -0
  30. convexity_api_client/api/v1/warehouse_workflow_cancel_pick_pack_ship.py +182 -0
  31. convexity_api_client/api/v1/warehouse_workflow_complete_pick_pack_ship_pack.py +202 -0
  32. convexity_api_client/api/v1/warehouse_workflow_complete_pick_pack_ship_pick.py +202 -0
  33. convexity_api_client/api/v1/warehouse_workflow_create_pick_pack_ship.py +186 -0
  34. convexity_api_client/api/v1/warehouse_workflow_generate_pick_pack_ship_pdf.py +188 -0
  35. convexity_api_client/api/v1/warehouse_workflow_get_pick_pack_ship.py +182 -0
  36. convexity_api_client/api/v1/warehouse_workflow_mark_pick_pack_ship_shipped.py +202 -0
  37. convexity_api_client/api/v1/warehouse_workflow_save_pick_pack_ship_shipment.py +202 -0
  38. convexity_api_client/models/__init__.py +134 -0
  39. convexity_api_client/models/adjust_stock_request.py +20 -8
  40. convexity_api_client/models/assign_inventory_item_location_request.py +108 -0
  41. convexity_api_client/models/assign_inventory_item_location_request_ext_data_type_0.py +47 -0
  42. convexity_api_client/models/bulk_upsert_customer_payload.py +20 -0
  43. convexity_api_client/models/bulk_upsert_sales_order_payload.py +40 -0
  44. convexity_api_client/models/complete_pick_pack_ship_pack_request.py +75 -0
  45. convexity_api_client/models/complete_pick_pack_ship_request.py +97 -0
  46. convexity_api_client/models/cost_list_entry_response.py +77 -0
  47. convexity_api_client/models/cost_list_vendor_assignment_response.py +149 -0
  48. convexity_api_client/models/cost_list_vendor_assignment_response_ext_data_type_0.py +47 -0
  49. convexity_api_client/models/cost_rule.py +53 -0
  50. convexity_api_client/models/cost_rule_response.py +22 -0
  51. convexity_api_client/models/cost_source_type.py +9 -0
  52. convexity_api_client/models/create_cost_list_request.py +4 -5
  53. convexity_api_client/models/create_cost_list_vendor_assignment_request.py +116 -0
  54. convexity_api_client/models/create_cost_list_vendor_assignment_request_ext_data_type_0.py +47 -0
  55. convexity_api_client/models/create_customer_request.py +20 -0
  56. convexity_api_client/models/create_item_sourcing_request.py +256 -0
  57. convexity_api_client/models/create_item_sourcing_request_ext_data_type_0.py +47 -0
  58. convexity_api_client/models/create_pick_pack_ship_request.py +153 -0
  59. convexity_api_client/models/create_price_list_channel_assignment_request.py +116 -0
  60. convexity_api_client/models/create_price_list_channel_assignment_request_ext_data_type_0.py +47 -0
  61. convexity_api_client/models/create_price_list_customer_assignment_request.py +116 -0
  62. convexity_api_client/models/create_price_list_customer_assignment_request_ext_data_type_0.py +47 -0
  63. convexity_api_client/models/create_price_list_request.py +4 -5
  64. convexity_api_client/models/create_sales_order_line_request.py +40 -8
  65. convexity_api_client/models/create_sales_order_request.py +40 -0
  66. convexity_api_client/models/create_sales_rep_request.py +181 -0
  67. convexity_api_client/models/create_sales_rep_request_ext_data_type_0.py +47 -0
  68. convexity_api_client/models/customer.py +53 -0
  69. convexity_api_client/models/customer_response.py +14 -0
  70. convexity_api_client/models/inventory_config.py +53 -0
  71. convexity_api_client/models/inventory_config_response.py +28 -0
  72. convexity_api_client/models/inventory_item.py +43 -0
  73. convexity_api_client/models/inventory_item_location.py +237 -0
  74. convexity_api_client/models/inventory_item_location_assignment_response.py +150 -0
  75. convexity_api_client/models/inventory_item_location_assignment_response_ext_data_type_0.py +47 -0
  76. convexity_api_client/models/inventory_item_type.py +0 -1
  77. convexity_api_client/models/item_sourcing.py +41 -0
  78. convexity_api_client/models/item_sourcing_item_option.py +107 -0
  79. convexity_api_client/models/item_sourcing_options_response.py +120 -0
  80. convexity_api_client/models/item_sourcing_response.py +360 -0
  81. convexity_api_client/models/item_sourcing_response_ext_data_type_0.py +47 -0
  82. convexity_api_client/models/item_sourcing_uom_option.py +77 -0
  83. convexity_api_client/models/item_sourcing_vendor_option.py +77 -0
  84. convexity_api_client/models/item_warehouse_location_response.py +248 -0
  85. convexity_api_client/models/list_cost_list_entries_response.py +83 -0
  86. convexity_api_client/models/list_cost_list_vendor_assignments_response.py +83 -0
  87. convexity_api_client/models/list_item_sourcing_response.py +83 -0
  88. convexity_api_client/models/list_item_warehouse_locations_response.py +83 -0
  89. convexity_api_client/models/list_price_list_channel_assignments_response.py +83 -0
  90. convexity_api_client/models/list_price_list_customer_assignments_response.py +83 -0
  91. convexity_api_client/models/list_price_list_entries_response.py +83 -0
  92. convexity_api_client/models/list_sales_reps_response.py +83 -0
  93. convexity_api_client/models/list_warehouse_location_items_response.py +83 -0
  94. convexity_api_client/models/mark_pick_pack_ship_shipped_request.py +84 -0
  95. convexity_api_client/models/pick_pack_ship_line_request.py +100 -0
  96. convexity_api_client/models/pick_pack_ship_packed_line_request.py +111 -0
  97. convexity_api_client/models/pick_pack_ship_picked_line_request.py +91 -0
  98. convexity_api_client/models/pick_pack_ship_response.py +111 -0
  99. convexity_api_client/models/price_list.py +41 -0
  100. convexity_api_client/models/price_list_channel_assignment_response.py +149 -0
  101. convexity_api_client/models/price_list_channel_assignment_response_ext_data_type_0.py +47 -0
  102. convexity_api_client/models/price_list_customer_assignment_response.py +149 -0
  103. convexity_api_client/models/price_list_customer_assignment_response_ext_data_type_0.py +47 -0
  104. convexity_api_client/models/price_list_entry_response.py +77 -0
  105. convexity_api_client/models/price_source_type.py +9 -0
  106. convexity_api_client/models/project.py +43 -0
  107. convexity_api_client/models/purchase_order_line.py +101 -0
  108. convexity_api_client/models/purchase_order_line_request.py +20 -8
  109. convexity_api_client/models/purchase_order_line_response.py +103 -0
  110. convexity_api_client/models/purchasing_list_item_sourcing_filter_operator_type_0.py +19 -0
  111. convexity_api_client/models/purchasing_list_item_sourcing_sort_direction_type_0.py +9 -0
  112. convexity_api_client/models/resolve_cost_response.py +22 -0
  113. convexity_api_client/models/resolve_price_response.py +20 -0
  114. convexity_api_client/models/sales_invoice_line.py +121 -0
  115. convexity_api_client/models/sales_invoice_line_request.py +40 -8
  116. convexity_api_client/models/sales_invoice_line_response.py +121 -0
  117. convexity_api_client/models/sales_order.py +73 -0
  118. convexity_api_client/models/sales_order_line.py +121 -0
  119. convexity_api_client/models/sales_order_line_response.py +123 -0
  120. convexity_api_client/models/sales_order_response.py +28 -0
  121. convexity_api_client/models/sales_rep.py +279 -0
  122. convexity_api_client/models/sales_rep_response.py +185 -0
  123. convexity_api_client/models/sales_rep_response_ext_data_type_0.py +47 -0
  124. convexity_api_client/models/save_pick_pack_ship_shipment_request.py +163 -0
  125. convexity_api_client/models/stock_balance.py +20 -8
  126. convexity_api_client/models/update_customer_request.py +20 -0
  127. convexity_api_client/models/update_item_sourcing_request.py +312 -0
  128. convexity_api_client/models/update_item_sourcing_request_ext_data_type_0.py +47 -0
  129. convexity_api_client/models/update_list_assignment_request.py +111 -0
  130. convexity_api_client/models/update_list_assignment_request_ext_data_type_0.py +47 -0
  131. convexity_api_client/models/update_sales_order_request.py +40 -0
  132. convexity_api_client/models/update_sales_rep_request.py +211 -0
  133. convexity_api_client/models/update_sales_rep_request_ext_data_type_0.py +47 -0
  134. convexity_api_client/models/upsert_inventory_config_request.py +40 -0
  135. convexity_api_client/models/upsert_item_sourcing_cost_request.py +62 -0
  136. convexity_api_client/models/warehouse_location.py +43 -0
  137. convexity_api_client/models/warehouse_location_item_response.py +160 -0
  138. {convexity_api_client-0.21.0.dev332.dist-info → convexity_api_client-0.21.0.dev336.dist-info}/METADATA +1 -1
  139. {convexity_api_client-0.21.0.dev332.dist-info → convexity_api_client-0.21.0.dev336.dist-info}/RECORD +140 -41
  140. {convexity_api_client-0.21.0.dev332.dist-info → convexity_api_client-0.21.0.dev336.dist-info}/WHEEL +1 -1
@@ -0,0 +1,312 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ if TYPE_CHECKING:
12
+ from ..models.update_item_sourcing_request_ext_data_type_0 import UpdateItemSourcingRequestExtDataType0
13
+
14
+
15
+ T = TypeVar("T", bound="UpdateItemSourcingRequest")
16
+
17
+
18
+ @_attrs_define
19
+ class UpdateItemSourcingRequest:
20
+ """Partial inline update for a sourcing relationship.
21
+
22
+ Attributes:
23
+ inventory_item_id (None | str | Unset):
24
+ vendor_id (None | str | Unset):
25
+ vendor_item_code (None | str | Unset):
26
+ origin_country_code (None | str | Unset):
27
+ hts_code (None | str | Unset):
28
+ uom_id (None | str | Unset):
29
+ min_order_qty (float | None | Unset):
30
+ order_multiple_qty (float | None | Unset):
31
+ lead_time_days (int | None | Unset):
32
+ is_primary (bool | None | Unset):
33
+ is_active (bool | None | Unset):
34
+ ext_data (None | Unset | UpdateItemSourcingRequestExtDataType0):
35
+ """
36
+
37
+ inventory_item_id: None | str | Unset = UNSET
38
+ vendor_id: None | str | Unset = UNSET
39
+ vendor_item_code: None | str | Unset = UNSET
40
+ origin_country_code: None | str | Unset = UNSET
41
+ hts_code: None | str | Unset = UNSET
42
+ uom_id: None | str | Unset = UNSET
43
+ min_order_qty: float | None | Unset = UNSET
44
+ order_multiple_qty: float | None | Unset = UNSET
45
+ lead_time_days: int | None | Unset = UNSET
46
+ is_primary: bool | None | Unset = UNSET
47
+ is_active: bool | None | Unset = UNSET
48
+ ext_data: None | Unset | UpdateItemSourcingRequestExtDataType0 = UNSET
49
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
50
+
51
+ def to_dict(self) -> dict[str, Any]:
52
+ from ..models.update_item_sourcing_request_ext_data_type_0 import UpdateItemSourcingRequestExtDataType0
53
+
54
+ inventory_item_id: None | str | Unset
55
+ if isinstance(self.inventory_item_id, Unset):
56
+ inventory_item_id = UNSET
57
+ else:
58
+ inventory_item_id = self.inventory_item_id
59
+
60
+ vendor_id: None | str | Unset
61
+ if isinstance(self.vendor_id, Unset):
62
+ vendor_id = UNSET
63
+ else:
64
+ vendor_id = self.vendor_id
65
+
66
+ vendor_item_code: None | str | Unset
67
+ if isinstance(self.vendor_item_code, Unset):
68
+ vendor_item_code = UNSET
69
+ else:
70
+ vendor_item_code = self.vendor_item_code
71
+
72
+ origin_country_code: None | str | Unset
73
+ if isinstance(self.origin_country_code, Unset):
74
+ origin_country_code = UNSET
75
+ else:
76
+ origin_country_code = self.origin_country_code
77
+
78
+ hts_code: None | str | Unset
79
+ if isinstance(self.hts_code, Unset):
80
+ hts_code = UNSET
81
+ else:
82
+ hts_code = self.hts_code
83
+
84
+ uom_id: None | str | Unset
85
+ if isinstance(self.uom_id, Unset):
86
+ uom_id = UNSET
87
+ else:
88
+ uom_id = self.uom_id
89
+
90
+ min_order_qty: float | None | Unset
91
+ if isinstance(self.min_order_qty, Unset):
92
+ min_order_qty = UNSET
93
+ else:
94
+ min_order_qty = self.min_order_qty
95
+
96
+ order_multiple_qty: float | None | Unset
97
+ if isinstance(self.order_multiple_qty, Unset):
98
+ order_multiple_qty = UNSET
99
+ else:
100
+ order_multiple_qty = self.order_multiple_qty
101
+
102
+ lead_time_days: int | None | Unset
103
+ if isinstance(self.lead_time_days, Unset):
104
+ lead_time_days = UNSET
105
+ else:
106
+ lead_time_days = self.lead_time_days
107
+
108
+ is_primary: bool | None | Unset
109
+ if isinstance(self.is_primary, Unset):
110
+ is_primary = UNSET
111
+ else:
112
+ is_primary = self.is_primary
113
+
114
+ is_active: bool | None | Unset
115
+ if isinstance(self.is_active, Unset):
116
+ is_active = UNSET
117
+ else:
118
+ is_active = self.is_active
119
+
120
+ ext_data: dict[str, Any] | None | Unset
121
+ if isinstance(self.ext_data, Unset):
122
+ ext_data = UNSET
123
+ elif isinstance(self.ext_data, UpdateItemSourcingRequestExtDataType0):
124
+ ext_data = self.ext_data.to_dict()
125
+ else:
126
+ ext_data = self.ext_data
127
+
128
+ field_dict: dict[str, Any] = {}
129
+ field_dict.update(self.additional_properties)
130
+ field_dict.update({})
131
+ if inventory_item_id is not UNSET:
132
+ field_dict["inventory_item_id"] = inventory_item_id
133
+ if vendor_id is not UNSET:
134
+ field_dict["vendor_id"] = vendor_id
135
+ if vendor_item_code is not UNSET:
136
+ field_dict["vendor_item_code"] = vendor_item_code
137
+ if origin_country_code is not UNSET:
138
+ field_dict["origin_country_code"] = origin_country_code
139
+ if hts_code is not UNSET:
140
+ field_dict["hts_code"] = hts_code
141
+ if uom_id is not UNSET:
142
+ field_dict["uom_id"] = uom_id
143
+ if min_order_qty is not UNSET:
144
+ field_dict["min_order_qty"] = min_order_qty
145
+ if order_multiple_qty is not UNSET:
146
+ field_dict["order_multiple_qty"] = order_multiple_qty
147
+ if lead_time_days is not UNSET:
148
+ field_dict["lead_time_days"] = lead_time_days
149
+ if is_primary is not UNSET:
150
+ field_dict["is_primary"] = is_primary
151
+ if is_active is not UNSET:
152
+ field_dict["is_active"] = is_active
153
+ if ext_data is not UNSET:
154
+ field_dict["ext_data"] = ext_data
155
+
156
+ return field_dict
157
+
158
+ @classmethod
159
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
160
+ from ..models.update_item_sourcing_request_ext_data_type_0 import UpdateItemSourcingRequestExtDataType0
161
+
162
+ d = dict(src_dict)
163
+
164
+ def _parse_inventory_item_id(data: object) -> None | str | Unset:
165
+ if data is None:
166
+ return data
167
+ if isinstance(data, Unset):
168
+ return data
169
+ return cast(None | str | Unset, data)
170
+
171
+ inventory_item_id = _parse_inventory_item_id(d.pop("inventory_item_id", UNSET))
172
+
173
+ def _parse_vendor_id(data: object) -> None | str | Unset:
174
+ if data is None:
175
+ return data
176
+ if isinstance(data, Unset):
177
+ return data
178
+ return cast(None | str | Unset, data)
179
+
180
+ vendor_id = _parse_vendor_id(d.pop("vendor_id", UNSET))
181
+
182
+ def _parse_vendor_item_code(data: object) -> None | str | Unset:
183
+ if data is None:
184
+ return data
185
+ if isinstance(data, Unset):
186
+ return data
187
+ return cast(None | str | Unset, data)
188
+
189
+ vendor_item_code = _parse_vendor_item_code(d.pop("vendor_item_code", UNSET))
190
+
191
+ def _parse_origin_country_code(data: object) -> None | str | Unset:
192
+ if data is None:
193
+ return data
194
+ if isinstance(data, Unset):
195
+ return data
196
+ return cast(None | str | Unset, data)
197
+
198
+ origin_country_code = _parse_origin_country_code(d.pop("origin_country_code", UNSET))
199
+
200
+ def _parse_hts_code(data: object) -> None | str | Unset:
201
+ if data is None:
202
+ return data
203
+ if isinstance(data, Unset):
204
+ return data
205
+ return cast(None | str | Unset, data)
206
+
207
+ hts_code = _parse_hts_code(d.pop("hts_code", UNSET))
208
+
209
+ def _parse_uom_id(data: object) -> None | str | Unset:
210
+ if data is None:
211
+ return data
212
+ if isinstance(data, Unset):
213
+ return data
214
+ return cast(None | str | Unset, data)
215
+
216
+ uom_id = _parse_uom_id(d.pop("uom_id", UNSET))
217
+
218
+ def _parse_min_order_qty(data: object) -> float | None | Unset:
219
+ if data is None:
220
+ return data
221
+ if isinstance(data, Unset):
222
+ return data
223
+ return cast(float | None | Unset, data)
224
+
225
+ min_order_qty = _parse_min_order_qty(d.pop("min_order_qty", UNSET))
226
+
227
+ def _parse_order_multiple_qty(data: object) -> float | None | Unset:
228
+ if data is None:
229
+ return data
230
+ if isinstance(data, Unset):
231
+ return data
232
+ return cast(float | None | Unset, data)
233
+
234
+ order_multiple_qty = _parse_order_multiple_qty(d.pop("order_multiple_qty", UNSET))
235
+
236
+ def _parse_lead_time_days(data: object) -> int | None | Unset:
237
+ if data is None:
238
+ return data
239
+ if isinstance(data, Unset):
240
+ return data
241
+ return cast(int | None | Unset, data)
242
+
243
+ lead_time_days = _parse_lead_time_days(d.pop("lead_time_days", UNSET))
244
+
245
+ def _parse_is_primary(data: object) -> bool | None | Unset:
246
+ if data is None:
247
+ return data
248
+ if isinstance(data, Unset):
249
+ return data
250
+ return cast(bool | None | Unset, data)
251
+
252
+ is_primary = _parse_is_primary(d.pop("is_primary", UNSET))
253
+
254
+ def _parse_is_active(data: object) -> bool | None | Unset:
255
+ if data is None:
256
+ return data
257
+ if isinstance(data, Unset):
258
+ return data
259
+ return cast(bool | None | Unset, data)
260
+
261
+ is_active = _parse_is_active(d.pop("is_active", UNSET))
262
+
263
+ def _parse_ext_data(data: object) -> None | Unset | UpdateItemSourcingRequestExtDataType0:
264
+ if data is None:
265
+ return data
266
+ if isinstance(data, Unset):
267
+ return data
268
+ try:
269
+ if not isinstance(data, dict):
270
+ raise TypeError()
271
+ ext_data_type_0 = UpdateItemSourcingRequestExtDataType0.from_dict(data)
272
+
273
+ return ext_data_type_0
274
+ except (TypeError, ValueError, AttributeError, KeyError):
275
+ pass
276
+ return cast(None | Unset | UpdateItemSourcingRequestExtDataType0, data)
277
+
278
+ ext_data = _parse_ext_data(d.pop("ext_data", UNSET))
279
+
280
+ update_item_sourcing_request = cls(
281
+ inventory_item_id=inventory_item_id,
282
+ vendor_id=vendor_id,
283
+ vendor_item_code=vendor_item_code,
284
+ origin_country_code=origin_country_code,
285
+ hts_code=hts_code,
286
+ uom_id=uom_id,
287
+ min_order_qty=min_order_qty,
288
+ order_multiple_qty=order_multiple_qty,
289
+ lead_time_days=lead_time_days,
290
+ is_primary=is_primary,
291
+ is_active=is_active,
292
+ ext_data=ext_data,
293
+ )
294
+
295
+ update_item_sourcing_request.additional_properties = d
296
+ return update_item_sourcing_request
297
+
298
+ @property
299
+ def additional_keys(self) -> list[str]:
300
+ return list(self.additional_properties.keys())
301
+
302
+ def __getitem__(self, key: str) -> Any:
303
+ return self.additional_properties[key]
304
+
305
+ def __setitem__(self, key: str, value: Any) -> None:
306
+ self.additional_properties[key] = value
307
+
308
+ def __delitem__(self, key: str) -> None:
309
+ del self.additional_properties[key]
310
+
311
+ def __contains__(self, key: str) -> bool:
312
+ return key in self.additional_properties
@@ -0,0 +1,47 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ T = TypeVar("T", bound="UpdateItemSourcingRequestExtDataType0")
10
+
11
+
12
+ @_attrs_define
13
+ class UpdateItemSourcingRequestExtDataType0:
14
+ """ """
15
+
16
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
17
+
18
+ def to_dict(self) -> dict[str, Any]:
19
+
20
+ field_dict: dict[str, Any] = {}
21
+ field_dict.update(self.additional_properties)
22
+
23
+ return field_dict
24
+
25
+ @classmethod
26
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
27
+ d = dict(src_dict)
28
+ update_item_sourcing_request_ext_data_type_0 = cls()
29
+
30
+ update_item_sourcing_request_ext_data_type_0.additional_properties = d
31
+ return update_item_sourcing_request_ext_data_type_0
32
+
33
+ @property
34
+ def additional_keys(self) -> list[str]:
35
+ return list(self.additional_properties.keys())
36
+
37
+ def __getitem__(self, key: str) -> Any:
38
+ return self.additional_properties[key]
39
+
40
+ def __setitem__(self, key: str, value: Any) -> None:
41
+ self.additional_properties[key] = value
42
+
43
+ def __delitem__(self, key: str) -> None:
44
+ del self.additional_properties[key]
45
+
46
+ def __contains__(self, key: str) -> bool:
47
+ return key in self.additional_properties
@@ -0,0 +1,111 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..types import UNSET, Unset
10
+
11
+ if TYPE_CHECKING:
12
+ from ..models.update_list_assignment_request_ext_data_type_0 import UpdateListAssignmentRequestExtDataType0
13
+
14
+
15
+ T = TypeVar("T", bound="UpdateListAssignmentRequest")
16
+
17
+
18
+ @_attrs_define
19
+ class UpdateListAssignmentRequest:
20
+ """
21
+ Attributes:
22
+ is_active (bool | None | Unset):
23
+ ext_data (None | Unset | UpdateListAssignmentRequestExtDataType0):
24
+ """
25
+
26
+ is_active: bool | None | Unset = UNSET
27
+ ext_data: None | Unset | UpdateListAssignmentRequestExtDataType0 = UNSET
28
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> dict[str, Any]:
31
+ from ..models.update_list_assignment_request_ext_data_type_0 import UpdateListAssignmentRequestExtDataType0
32
+
33
+ is_active: bool | None | Unset
34
+ if isinstance(self.is_active, Unset):
35
+ is_active = UNSET
36
+ else:
37
+ is_active = self.is_active
38
+
39
+ ext_data: dict[str, Any] | None | Unset
40
+ if isinstance(self.ext_data, Unset):
41
+ ext_data = UNSET
42
+ elif isinstance(self.ext_data, UpdateListAssignmentRequestExtDataType0):
43
+ ext_data = self.ext_data.to_dict()
44
+ else:
45
+ ext_data = self.ext_data
46
+
47
+ field_dict: dict[str, Any] = {}
48
+ field_dict.update(self.additional_properties)
49
+ field_dict.update({})
50
+ if is_active is not UNSET:
51
+ field_dict["is_active"] = is_active
52
+ if ext_data is not UNSET:
53
+ field_dict["ext_data"] = ext_data
54
+
55
+ return field_dict
56
+
57
+ @classmethod
58
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
59
+ from ..models.update_list_assignment_request_ext_data_type_0 import UpdateListAssignmentRequestExtDataType0
60
+
61
+ d = dict(src_dict)
62
+
63
+ def _parse_is_active(data: object) -> bool | None | Unset:
64
+ if data is None:
65
+ return data
66
+ if isinstance(data, Unset):
67
+ return data
68
+ return cast(bool | None | Unset, data)
69
+
70
+ is_active = _parse_is_active(d.pop("is_active", UNSET))
71
+
72
+ def _parse_ext_data(data: object) -> None | Unset | UpdateListAssignmentRequestExtDataType0:
73
+ if data is None:
74
+ return data
75
+ if isinstance(data, Unset):
76
+ return data
77
+ try:
78
+ if not isinstance(data, dict):
79
+ raise TypeError()
80
+ ext_data_type_0 = UpdateListAssignmentRequestExtDataType0.from_dict(data)
81
+
82
+ return ext_data_type_0
83
+ except (TypeError, ValueError, AttributeError, KeyError):
84
+ pass
85
+ return cast(None | Unset | UpdateListAssignmentRequestExtDataType0, data)
86
+
87
+ ext_data = _parse_ext_data(d.pop("ext_data", UNSET))
88
+
89
+ update_list_assignment_request = cls(
90
+ is_active=is_active,
91
+ ext_data=ext_data,
92
+ )
93
+
94
+ update_list_assignment_request.additional_properties = d
95
+ return update_list_assignment_request
96
+
97
+ @property
98
+ def additional_keys(self) -> list[str]:
99
+ return list(self.additional_properties.keys())
100
+
101
+ def __getitem__(self, key: str) -> Any:
102
+ return self.additional_properties[key]
103
+
104
+ def __setitem__(self, key: str, value: Any) -> None:
105
+ self.additional_properties[key] = value
106
+
107
+ def __delitem__(self, key: str) -> None:
108
+ del self.additional_properties[key]
109
+
110
+ def __contains__(self, key: str) -> bool:
111
+ return key in self.additional_properties
@@ -0,0 +1,47 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ T = TypeVar("T", bound="UpdateListAssignmentRequestExtDataType0")
10
+
11
+
12
+ @_attrs_define
13
+ class UpdateListAssignmentRequestExtDataType0:
14
+ """ """
15
+
16
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
17
+
18
+ def to_dict(self) -> dict[str, Any]:
19
+
20
+ field_dict: dict[str, Any] = {}
21
+ field_dict.update(self.additional_properties)
22
+
23
+ return field_dict
24
+
25
+ @classmethod
26
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
27
+ d = dict(src_dict)
28
+ update_list_assignment_request_ext_data_type_0 = cls()
29
+
30
+ update_list_assignment_request_ext_data_type_0.additional_properties = d
31
+ return update_list_assignment_request_ext_data_type_0
32
+
33
+ @property
34
+ def additional_keys(self) -> list[str]:
35
+ return list(self.additional_properties.keys())
36
+
37
+ def __getitem__(self, key: str) -> Any:
38
+ return self.additional_properties[key]
39
+
40
+ def __setitem__(self, key: str, value: Any) -> None:
41
+ self.additional_properties[key] = value
42
+
43
+ def __delitem__(self, key: str) -> None:
44
+ del self.additional_properties[key]
45
+
46
+ def __contains__(self, key: str) -> bool:
47
+ return key in self.additional_properties
@@ -23,6 +23,8 @@ class UpdateSalesOrderRequest:
23
23
  Attributes:
24
24
  so_number (str):
25
25
  customer_id (None | str | Unset):
26
+ sales_rep_id (None | str | Unset):
27
+ commission_rate_snapshot (float | None | str | Unset):
26
28
  channel_id (None | str | Unset):
27
29
  external_id (None | str | Unset):
28
30
  custom_status_id (None | str | Unset):
@@ -38,6 +40,8 @@ class UpdateSalesOrderRequest:
38
40
 
39
41
  so_number: str
40
42
  customer_id: None | str | Unset = UNSET
43
+ sales_rep_id: None | str | Unset = UNSET
44
+ commission_rate_snapshot: float | None | str | Unset = UNSET
41
45
  channel_id: None | str | Unset = UNSET
42
46
  external_id: None | str | Unset = UNSET
43
47
  custom_status_id: None | str | Unset = UNSET
@@ -62,6 +66,18 @@ class UpdateSalesOrderRequest:
62
66
  else:
63
67
  customer_id = self.customer_id
64
68
 
69
+ sales_rep_id: None | str | Unset
70
+ if isinstance(self.sales_rep_id, Unset):
71
+ sales_rep_id = UNSET
72
+ else:
73
+ sales_rep_id = self.sales_rep_id
74
+
75
+ commission_rate_snapshot: float | None | str | Unset
76
+ if isinstance(self.commission_rate_snapshot, Unset):
77
+ commission_rate_snapshot = UNSET
78
+ else:
79
+ commission_rate_snapshot = self.commission_rate_snapshot
80
+
65
81
  channel_id: None | str | Unset
66
82
  if isinstance(self.channel_id, Unset):
67
83
  channel_id = UNSET
@@ -140,6 +156,10 @@ class UpdateSalesOrderRequest:
140
156
  )
141
157
  if customer_id is not UNSET:
142
158
  field_dict["customer_id"] = customer_id
159
+ if sales_rep_id is not UNSET:
160
+ field_dict["sales_rep_id"] = sales_rep_id
161
+ if commission_rate_snapshot is not UNSET:
162
+ field_dict["commission_rate_snapshot"] = commission_rate_snapshot
143
163
  if channel_id is not UNSET:
144
164
  field_dict["channel_id"] = channel_id
145
165
  if external_id is not UNSET:
@@ -182,6 +202,24 @@ class UpdateSalesOrderRequest:
182
202
 
183
203
  customer_id = _parse_customer_id(d.pop("customer_id", UNSET))
184
204
 
205
+ def _parse_sales_rep_id(data: object) -> None | str | Unset:
206
+ if data is None:
207
+ return data
208
+ if isinstance(data, Unset):
209
+ return data
210
+ return cast(None | str | Unset, data)
211
+
212
+ sales_rep_id = _parse_sales_rep_id(d.pop("sales_rep_id", UNSET))
213
+
214
+ def _parse_commission_rate_snapshot(data: object) -> float | None | str | Unset:
215
+ if data is None:
216
+ return data
217
+ if isinstance(data, Unset):
218
+ return data
219
+ return cast(float | None | str | Unset, data)
220
+
221
+ commission_rate_snapshot = _parse_commission_rate_snapshot(d.pop("commission_rate_snapshot", UNSET))
222
+
185
223
  def _parse_channel_id(data: object) -> None | str | Unset:
186
224
  if data is None:
187
225
  return data
@@ -301,6 +339,8 @@ class UpdateSalesOrderRequest:
301
339
  update_sales_order_request = cls(
302
340
  so_number=so_number,
303
341
  customer_id=customer_id,
342
+ sales_rep_id=sales_rep_id,
343
+ commission_rate_snapshot=commission_rate_snapshot,
304
344
  channel_id=channel_id,
305
345
  external_id=external_id,
306
346
  custom_status_id=custom_status_id,