idi-manageorders-sdk 0.1.0__tar.gz → 0.2.0__tar.gz

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 (28) hide show
  1. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/.github/workflows/python-publish-pypi.yaml +2 -2
  2. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/PKG-INFO +1 -1
  3. idi_manageorders_sdk-0.2.0/docs/source/changelog.rst +11 -0
  4. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/pyproject.toml +1 -1
  5. idi_manageorders_sdk-0.2.0/src/manageorders_sdk/models.py +208 -0
  6. idi_manageorders_sdk-0.2.0/src/manageorders_sdk/py.typed +1 -0
  7. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/uv.lock +2 -2
  8. idi_manageorders_sdk-0.1.0/docs/source/changelog.rst +0 -5
  9. idi_manageorders_sdk-0.1.0/src/manageorders_sdk/models.py +0 -65
  10. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/.devcontainer/devcontainer-lock.json +0 -0
  11. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/.devcontainer/devcontainer.json +0 -0
  12. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/.github/dependabot.yaml +0 -0
  13. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/.github/workflows/dependency-review.yaml +0 -0
  14. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/.github/workflows/python-ci.yaml +0 -0
  15. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/.gitignore +0 -0
  16. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/.pre-commit-config.yaml +0 -0
  17. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/LICENSE +0 -0
  18. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/README.md +0 -0
  19. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/docs/Makefile +0 -0
  20. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/docs/source/conf.py +0 -0
  21. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/docs/source/index.rst +0 -0
  22. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/noxfile.py +0 -0
  23. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/requirements-dev.txt +0 -0
  24. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/requirements.txt +0 -0
  25. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/src/manageorders_sdk/__init__.py +0 -0
  26. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/src/manageorders_sdk/client.py +0 -0
  27. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/tests/__init__.py +0 -0
  28. {idi_manageorders_sdk-0.1.0 → idi_manageorders_sdk-0.2.0}/tests/test_client.py +0 -0
@@ -24,7 +24,7 @@ jobs:
24
24
  uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
25
25
 
26
26
  - name: Build and inspect Python 🐍 package 📦
27
- uses: hynek/build-and-inspect-python-package@73aea398b9c8de9ea9e4464c6b13cb8b1f3d6294 # v2.9.0
27
+ uses: hynek/build-and-inspect-python-package@f01e4d047aadcc0c054c95ec9900da3ec3fc7a0f # v2.10.0
28
28
  with:
29
29
  attest-build-provenance-github: ${{ github.event.action == 'published' }}
30
30
 
@@ -47,7 +47,7 @@ jobs:
47
47
  path: dist/
48
48
 
49
49
  - name: Publish distribution 📦 to PyPI
50
- uses: pypa/gh-action-pypi-publish@f7600683efdcb7656dec5b29656edb7bc586e597 # v1.10.3
50
+ uses: pypa/gh-action-pypi-publish@15c56dba361d8335944d31a2ecd17d700fc7bcbc # v1.12.2
51
51
  with:
52
52
  attestations: true
53
53
  verbose: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: idi-manageorders-sdk
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: ShopWorks ManageOrders API SDK
5
5
  Project-URL: repository, https://github.com/impressdesigns/manageorders-sdk/
6
6
  Project-URL: documentation, https://impressdesigns.dev/manageorders-sdk/
@@ -0,0 +1,11 @@
1
+ Changelog
2
+ =========
3
+
4
+ - :release:`0.2.0 <19th November 2024>`
5
+ - :support:`-` Complete model definitions for the SDK
6
+
7
+ - :release:`0.1.1 <19th November 2024>`
8
+ - :support:`-` Include py.typed file in package for PEP 561 compliance
9
+
10
+ - :release:`0.1.0 <19th November 2024>`
11
+ - :feature:`-` Initial release
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "idi-manageorders-sdk"
3
- version = "0.1.0"
3
+ version = "0.2.0"
4
4
  description = "ShopWorks ManageOrders API SDK"
5
5
  authors = [
6
6
  { name = "Bradley Reynolds", email = "bradley.reynolds@impressdesigns.com" },
@@ -0,0 +1,208 @@
1
+ """Models."""
2
+
3
+ from typing import Literal
4
+
5
+ from pydantic import BaseModel, Field
6
+
7
+ DATE_REGEX = "[0-9]{2}/[0-9]{2}/[0-9]{4}|[0-9]{2}"
8
+
9
+
10
+ class Customer(BaseModel):
11
+ """Customer model."""
12
+
13
+ company_name: str = Field(serialization_alias="CompanyName")
14
+ customer_source: str | None = Field(None, serialization_alias="CustomerSource")
15
+ customer_type: str | None = Field(None, serialization_alias="CustomerType")
16
+ invoice_notes: str | None = Field(None, serialization_alias="InvoiceNotes")
17
+ main_email: str | None = Field(None, serialization_alias="MainEmail")
18
+ sales_group: str | None = Field(None, serialization_alias="SalesGroup")
19
+ tax_exempt: Literal[0, 1] | None = Field(None, serialization_alias="TaxExempt")
20
+ tax_exempt_number: str | None = Field(None, serialization_alias="TaxExemptNumber")
21
+ website: str | None = Field(None, serialization_alias="WebSite")
22
+ custom_date_field_1: str | None = Field(None, pattern=DATE_REGEX, serialization_alias="CustomDateField01")
23
+ custom_date_field_2: str | None = Field(None, pattern=DATE_REGEX, serialization_alias="CustomDateField02")
24
+ custom_date_field_3: str | None = Field(None, pattern=DATE_REGEX, serialization_alias="CustomDateField03")
25
+ custom_date_field_4: str | None = Field(None, pattern=DATE_REGEX, serialization_alias="CustomDateField04")
26
+ custom_field_1: str | None = Field(None, serialization_alias="CustomField01")
27
+ custom_field_2: str | None = Field(None, serialization_alias="CustomField02")
28
+ custom_field_3: str | None = Field(None, serialization_alias="CustomField03")
29
+ custom_field_4: str | None = Field(None, serialization_alias="CustomField04")
30
+ custom_field_5: str | None = Field(None, serialization_alias="CustomField05")
31
+ custom_field_6: str | None = Field(None, serialization_alias="CustomField06")
32
+ customer_reminder_invoice_notes: str | None = Field(None, serialization_alias="CustomerReminderInvoiceNotes")
33
+ billing_company: str | None = Field(None, serialization_alias="BillingCompany")
34
+ billing_address01: str | None = Field(None, serialization_alias="BillingAddress01")
35
+ billing_address02: str | None = Field(None, serialization_alias="BillingAddress02")
36
+ billing_city: str | None = Field(None, serialization_alias="BillingCity")
37
+ billing_state: str | None = Field(None, serialization_alias="BillingState")
38
+ billing_zip: str | None = Field(None, serialization_alias="BillingZip")
39
+ billing_country: str | None = Field(None, serialization_alias="BillingCountry")
40
+
41
+
42
+ class LocationDetail(BaseModel):
43
+ """LocationDetail model."""
44
+
45
+ color: str | None = Field(None, serialization_alias="Color")
46
+ parameter_label: str | None = Field(None, serialization_alias="ParameterLabel")
47
+ parameter_value: str | None = Field(None, serialization_alias="ParameterValue")
48
+ text: str | None = Field(None, serialization_alias="Text")
49
+ custom_field_1: str | None = Field(None, serialization_alias="CustomField01")
50
+ custom_field_2: str | None = Field(None, serialization_alias="CustomField02")
51
+ custom_field_3: str | None = Field(None, serialization_alias="CustomField03")
52
+ custom_field_4: str | None = Field(None, serialization_alias="CustomField04")
53
+ custom_field_5: str | None = Field(None, serialization_alias="CustomField05")
54
+
55
+
56
+ class Location(BaseModel):
57
+ """Location model."""
58
+
59
+ location: str | None = Field(None, serialization_alias="Location")
60
+ total_colors: str | None = Field(None, serialization_alias="TotalColors")
61
+ total_flashes: str | None = Field(None, serialization_alias="TotalFlashes")
62
+ total_stitches: str | None = Field(None, serialization_alias="TotalStitches")
63
+ design_code: str | None = Field(None, serialization_alias="DesignCode")
64
+ custom_field_1: str | None = Field(None, serialization_alias="CustomField01")
65
+ custom_field_2: str | None = Field(None, serialization_alias="CustomField02")
66
+ custom_field_3: str | None = Field(None, serialization_alias="CustomField03")
67
+ custom_field_4: str | None = Field(None, serialization_alias="CustomField04")
68
+ custom_field_5: str | None = Field(None, serialization_alias="CustomField05")
69
+ image_url: str | None = Field(None, serialization_alias="ImageURL")
70
+ notes: str | None = Field(None, serialization_alias="Notes")
71
+ location_details: list[LocationDetail] | None = Field(None, serialization_alias="LocationDetails")
72
+
73
+
74
+ class Design(BaseModel):
75
+ """Design model."""
76
+
77
+ design_name: str | None = Field(None, serialization_alias="DesignName")
78
+ external_design_id: str | None = Field(None, serialization_alias="ExtDesignID")
79
+ design_id: int | None = Field(None, serialization_alias="id_Design")
80
+ design_type_id: int | None = Field(None, serialization_alias="id_DesignType")
81
+ artist_id: int | None = Field(None, serialization_alias="id_Artist")
82
+ for_product_color: str | None = Field(None, serialization_alias="ForProductColor")
83
+ thread_break: str | None = Field(None, serialization_alias="ThreadBreak")
84
+ vendor_design_id: str | None = Field(None, serialization_alias="VendorDesignID")
85
+ custom_field_1: str | None = Field(None, serialization_alias="CustomField01")
86
+ custom_field_2: str | None = Field(None, serialization_alias="CustomField02")
87
+ custom_field_3: str | None = Field(None, serialization_alias="CustomField03")
88
+ custom_field_4: str | None = Field(None, serialization_alias="CustomField04")
89
+ custom_field_5: str | None = Field(None, serialization_alias="CustomField05")
90
+ locations: list[Location] | None = Field(None, serialization_alias="Locations")
91
+
92
+
93
+ class LinesOEItem(BaseModel):
94
+ """LinesOEItem model."""
95
+
96
+ part_number: str | None = Field(None, serialization_alias="PartNumber")
97
+ color: str | None = Field(None, serialization_alias="Color")
98
+ description: str | None = Field(None, serialization_alias="Description")
99
+ size: str | None = Field(None, serialization_alias="Size")
100
+ quantity: str | None = Field(None, serialization_alias="Qty")
101
+ price: str | None = Field(None, serialization_alias="Price")
102
+ product_class_id: int | None = Field(None, serialization_alias="id_ProductClass")
103
+ custom_field_1: str | None = Field(None, serialization_alias="CustomField01")
104
+ custom_field_2: str | None = Field(None, serialization_alias="CustomField02")
105
+ custom_field_3: str | None = Field(None, serialization_alias="CustomField03")
106
+ custom_field_4: str | None = Field(None, serialization_alias="CustomField04")
107
+ custom_field_5: str | None = Field(None, serialization_alias="CustomField05")
108
+ name_first: str | None = Field(None, serialization_alias="NameFirst")
109
+ name_last: str | None = Field(None, serialization_alias="NameLast")
110
+ line_item_notes: str | None = Field(None, serialization_alias="LineItemNotes")
111
+ external_design_id_block: str | None = Field(None, serialization_alias="ExtDesignIDBlock")
112
+ external_ship_id: str | None = Field(None, serialization_alias="ExtShipID")
113
+
114
+
115
+ class Note(BaseModel):
116
+ """Note model."""
117
+
118
+ note: str = Field(serialization_alias="Note")
119
+ type_: (
120
+ Literal[
121
+ "Notes On Order",
122
+ "Notes To Art",
123
+ "Notes To Purchasing",
124
+ "Notes To Subcontract",
125
+ "Notes To Production",
126
+ "Notes To Receiving",
127
+ "Notes To Shipping",
128
+ "Notes To Accounting",
129
+ "Notes On Customer",
130
+ ]
131
+ | None
132
+ ) = Field(None, serialization_alias="Type")
133
+
134
+
135
+ class Payment(BaseModel):
136
+ """Payment model."""
137
+
138
+ date_payment: str = Field(serialization_alias="date_Payment")
139
+ account_number: str | None = Field(None, serialization_alias="AccountNumber")
140
+ amount: int = Field(serialization_alias="Amount")
141
+ auth_code: str | None = Field(None, serialization_alias="AuthCode")
142
+ credit_card_company: str | None = Field(None, serialization_alias="CreditCardCompany")
143
+ gateway: str | None = Field(None, serialization_alias="Gateway")
144
+ response_code: str | None = Field(None, serialization_alias="ResponseCode")
145
+ response_reason_code: str | None = Field(None, serialization_alias="ResponseReasonCode")
146
+ response_reason_text: str | None = Field(None, serialization_alias="ResponseReasonText")
147
+ status: Literal["success"] = Field(serialization_alias="Status")
148
+
149
+
150
+ class ShippingAddress(BaseModel):
151
+ """ShippingAddress model."""
152
+
153
+ external_shipment_id: str | None = Field(None, serialization_alias="ExtShipID")
154
+
155
+ shipping_method: str | None = Field(None, serialization_alias="ShipMethod")
156
+
157
+ company: str | None = Field(None, serialization_alias="ShipCompany")
158
+ address1: str | None = Field(None, serialization_alias="ShipAddress01")
159
+ address2: str | None = Field(None, serialization_alias="ShipAddress02")
160
+ city: str | None = Field(None, serialization_alias="ShipCity")
161
+ state: str | None = Field(None, serialization_alias="ShipState")
162
+ postal_code: str | None = Field(None, serialization_alias="ShipZip")
163
+ country: str | None = Field(None, serialization_alias="ShipCountry")
164
+
165
+
166
+ class Attachment(BaseModel):
167
+ """Attachment model."""
168
+
169
+ medial_url: str | None = Field(None, serialization_alias="MediaURL")
170
+ media_name: str | None = Field(None, serialization_alias="MediaName")
171
+ link_url: str | None = Field(None, serialization_alias="LinkURL")
172
+ link_note: str | None = Field(None, serialization_alias="LinkNote")
173
+ link: Literal[0, 1] | None = Field(None, serialization_alias="Link")
174
+
175
+
176
+ class Order(BaseModel):
177
+ """Order model."""
178
+
179
+ external_order_id: str = Field(serialization_alias="ExtOrderID")
180
+ external_source: str = Field(serialization_alias="ExtSource")
181
+ external_customer_id: str | None = Field(None, serialization_alias="ExtCustomerID")
182
+ external_customer_pref: str | None = Field(None, serialization_alias="ExtCustomerPref")
183
+ date_order_placed: str | None = Field(None, serialization_alias="date_OrderPlaced")
184
+ date_order_requested_to_ship: str | None = Field(None, serialization_alias="date_OrderRequestedToShip")
185
+ date_order_drop_dead: str | None = Field(None, serialization_alias="date_OrderDropDead")
186
+ order_type_id: int | None = Field(None, serialization_alias="id_OrderType")
187
+ employee_created_by: int | None = Field(None, serialization_alias="id_EmpCreatedBy")
188
+ customer_id: int | None = Field(None, serialization_alias="id_Customer")
189
+ contact_email: str | None = Field(None, serialization_alias="ContactEmail")
190
+ contact_name_first: str | None = Field(None, serialization_alias="ContactNameFirst")
191
+ contact_name_last: str | None = Field(None, serialization_alias="ContactNameLast")
192
+ contact_phone: str | None = Field(None, serialization_alias="ContactPhone")
193
+ customer_purchase_order: str | None = Field(None, serialization_alias="CustomerPurchaseOrder")
194
+ customer_service_rep: str | None = Field(None, serialization_alias="CustomerSeviceRep")
195
+ on_hold: Literal[0, 1] | None = Field(None, serialization_alias="OnHold")
196
+ terms: str | None = Field(None, serialization_alias="Terms")
197
+ discount_part_number: str | None = Field(None, serialization_alias="DiscountPartNumber")
198
+ discount_part_description: str | None = Field(None, serialization_alias="DiscountPartDescription")
199
+ cur_shipping: int | None = Field(None, serialization_alias="cur_Shipping")
200
+ tax_total: int | None = Field(None, serialization_alias="TaxTotal")
201
+ total_discounts: int | None = Field(None, serialization_alias="TotalDiscounts")
202
+ customer: Customer | None = Field(None, serialization_alias="Customer")
203
+ designs: list[Design] | None = Field(None, serialization_alias="Designs")
204
+ line_items: list[LinesOEItem] | None = Field(None, serialization_alias="LinesOE")
205
+ notes: list[Note] | None = Field(None, serialization_alias="Notes")
206
+ payments: list[Payment] | None = Field(None, serialization_alias="Payments")
207
+ addresses: list[ShippingAddress] | None = Field(None, serialization_alias="ShippingAddresses")
208
+ attachments: list[Attachment] | None = Field(None, serialization_alias="Attachments")
@@ -0,0 +1 @@
1
+ # Marker file for PEP 561.
@@ -347,8 +347,8 @@ wheels = [
347
347
  ]
348
348
 
349
349
  [[package]]
350
- name = "idi-manageorders-api"
351
- version = "0.1.0"
350
+ name = "idi-manageorders-sdk"
351
+ version = "0.2.0"
352
352
  source = { editable = "." }
353
353
  dependencies = [
354
354
  { name = "httpx" },
@@ -1,5 +0,0 @@
1
- Changelog
2
- =========
3
-
4
- - :release:`0.1.0 <19th November 2024>`
5
- - :feature:`-` Initial release
@@ -1,65 +0,0 @@
1
- """Models."""
2
-
3
- from typing import Literal
4
-
5
- from pydantic import BaseModel, Field
6
-
7
- DATE_REGEX = "[0-9]{2}/[0-9]{2}/[0-9]{4}|[0-9]{2}"
8
-
9
-
10
- class Design(BaseModel):
11
- """Design."""
12
-
13
- design_number: int = Field(serialization_alias="id_Design")
14
- design_type: int = Field(serialization_alias="id_DesignType")
15
-
16
-
17
- class LineItem(BaseModel):
18
- """LineItem."""
19
-
20
- part_number: str = Field(serialization_alias="PartNumber")
21
- product_class: int = Field(serialization_alias="id_ProductClass")
22
- quantity: int = Field(serialization_alias="Qty")
23
-
24
- external_shipment_id: str = Field(serialization_alias="ExtShipID")
25
-
26
-
27
- class Address(BaseModel):
28
- """Address."""
29
-
30
- external_shipment_id: str | None = Field(None, serialization_alias="ExtShipID")
31
-
32
- shipping_method: str | None = Field(None, serialization_alias="ShipMethod")
33
-
34
- company: str | None = Field(None, serialization_alias="ShipCompany")
35
- address1: str | None = Field(None, serialization_alias="ShipAddress01")
36
- address2: str | None = Field(None, serialization_alias="ShipAddress02")
37
- city: str | None = Field(None, serialization_alias="ShipCity")
38
- state: str | None = Field(None, serialization_alias="ShipState")
39
- postal_code: str | None = Field(None, serialization_alias="ShipZip")
40
- country: str | None = Field(None, serialization_alias="ShipCountry")
41
-
42
-
43
- class Note(BaseModel):
44
- """Note."""
45
-
46
- note: str
47
- type_: Literal["Notes To Production", "Notes To Shipping"] = Field(serialization_alias="Type")
48
-
49
-
50
- class Order(BaseModel):
51
- """Order."""
52
-
53
- external_order_id: str = Field(serialization_alias="ExtOrderID")
54
- external_source: str = Field(serialization_alias="ExtSource")
55
-
56
- order_type: int = Field(serialization_alias="id_OrderType")
57
- employee_created_by: int = Field(serialization_alias="id_EmpCreatedBy")
58
- customer_id: int = Field(serialization_alias="id_Customer")
59
- customer_purchase_order: str = Field(serialization_alias="CustomerPurchaseOrder")
60
- ship_date: str = Field(pattern=DATE_REGEX, serialization_alias="date_OrderRequestedToShip")
61
-
62
- designs: list[Design] = Field(serialization_alias="Designs")
63
- line_items: list[LineItem] = Field(serialization_alias="LineItems")
64
- addresses: list[Address] = Field(serialization_alias="ShippingAddresses")
65
- notes: list[Note] = Field(serialization_alias="Notes")