@secondcloset/types 2.5.8-beta-epic29357-0
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.
- package/.vscode/settings.json +5 -0
- package/README.md +13 -0
- package/package.json +24 -0
- package/src/_common/address.ts +19 -0
- package/src/_common/credential.ts +12 -0
- package/src/_common/facility.ts +38 -0
- package/src/_common/file.ts +7 -0
- package/src/_common/image.ts +7 -0
- package/src/_common/index.ts +9 -0
- package/src/_common/note.ts +9 -0
- package/src/_common/organization.ts +63 -0
- package/src/_common/serviceArea.ts +1 -0
- package/src/_common/user.ts +26 -0
- package/src/fulfillment/appointment/appointment.ts +77 -0
- package/src/fulfillment/appointment/appointmentStatus.ts +21 -0
- package/src/fulfillment/appointment/appointmentType.ts +7 -0
- package/src/fulfillment/appointment/index.ts +3 -0
- package/src/fulfillment/asn/asn.ts +68 -0
- package/src/fulfillment/asn/asnItem.ts +15 -0
- package/src/fulfillment/asn/index.ts +2 -0
- package/src/fulfillment/index.ts +6 -0
- package/src/fulfillment/order/customer.ts +23 -0
- package/src/fulfillment/order/index.ts +3 -0
- package/src/fulfillment/order/order.ts +79 -0
- package/src/fulfillment/order/orderItem.ts +16 -0
- package/src/fulfillment/product/index.ts +2 -0
- package/src/fulfillment/product/product.ts +86 -0
- package/src/fulfillment/product/stock.ts +21 -0
- package/src/fulfillment/shipment/carrier.ts +17 -0
- package/src/fulfillment/shipment/index.ts +7 -0
- package/src/fulfillment/shipment/package.ts +32 -0
- package/src/fulfillment/shipment/packageIssue.ts +11 -0
- package/src/fulfillment/shipment/shipment.ts +56 -0
- package/src/fulfillment/shipment/shipmentItem.ts +42 -0
- package/src/fulfillment/shipment/shippingMethod.ts +136 -0
- package/src/fulfillment/warehouseReceivingOrder/incomingShipment.ts +35 -0
- package/src/fulfillment/warehouseReceivingOrder/index.ts +2 -0
- package/src/fulfillment/warehouseReceivingOrder/warehouseReceivingOrder.ts +34 -0
- package/src/index.ts +5 -0
- package/src/logistics/availability.ts +18 -0
- package/src/logistics/index.ts +2 -0
- package/src/logistics/shippingRate.ts +19 -0
- package/src/storage/address.ts +9 -0
- package/src/storage/appointment/appointment.ts +100 -0
- package/src/storage/appointment/appointmentItem.ts +34 -0
- package/src/storage/appointment/appointmentStatus.ts +21 -0
- package/src/storage/appointment/appointmentType.ts +8 -0
- package/src/storage/appointment/index.ts +4 -0
- package/src/storage/availability.ts +19 -0
- package/src/storage/categoryItem.ts +12 -0
- package/src/storage/closet.ts +16 -0
- package/src/storage/index.ts +8 -0
- package/src/storage/inventoryItem.ts +41 -0
- package/src/storage/order/index.ts +2 -0
- package/src/storage/order/order.ts +29 -0
- package/src/storage/order/orderItem.ts +26 -0
- package/src/storage/product.ts +26 -0
- package/src/warehouse/asnProcessLog.ts +15 -0
- package/src/warehouse/bin.ts +7 -0
- package/src/warehouse/index.ts +17 -0
- package/src/warehouse/location.ts +20 -0
- package/src/warehouse/locationItem.ts +23 -0
- package/src/warehouse/locationTemplate.ts +8 -0
- package/src/warehouse/manualItem.ts +20 -0
- package/src/warehouse/organization.ts +31 -0
- package/src/warehouse/pallet.ts +11 -0
- package/src/warehouse/palletRequestLog.ts +15 -0
- package/src/warehouse/product.ts +14 -0
- package/src/warehouse/return.ts +78 -0
- package/src/warehouse/shipmentProductsTracking.ts +18 -0
- package/src/warehouse/stock.ts +7 -0
- package/src/warehouse/supply.ts +41 -0
- package/src/warehouse/supplyStock.ts +10 -0
- package/src/warehouse/supplyTransaction.ts +14 -0
- package/src/warehouse/transaction.ts +25 -0
- package/tsconfig.json +17 -0
package/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
# Install
|
|
4
|
+
`npm i @secondcloset/types`
|
|
5
|
+
|
|
6
|
+
# Usage
|
|
7
|
+
```
|
|
8
|
+
import { Storage, Fulfillment, Warehouse, Common } from "@secondcloset/types"
|
|
9
|
+
type Appointment = Storage.Appointment;
|
|
10
|
+
type Order = Storage.Order;
|
|
11
|
+
...
|
|
12
|
+
type Order = Fulfillment.Order;
|
|
13
|
+
```
|
package/package.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@secondcloset/types",
|
|
3
|
+
"version": "2.5.8-beta-epic29357-0",
|
|
4
|
+
"description": "secondcloset type declaration and definitions",
|
|
5
|
+
"main": "src/index.ts",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
8
|
+
"prepublishOnly": "tsc"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/SecondCloset/types.git"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [],
|
|
15
|
+
"author": "",
|
|
16
|
+
"license": "ISC",
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/SecondCloset/types/issues"
|
|
19
|
+
},
|
|
20
|
+
"homepage": "https://github.com/SecondCloset/types#readme",
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"typescript": "^3.9.5"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ServiceArea } from "./serviceArea";
|
|
2
|
+
|
|
3
|
+
export interface Coordinates {
|
|
4
|
+
lat: number;
|
|
5
|
+
lng: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface BaseAddress {
|
|
9
|
+
id: string;
|
|
10
|
+
apartment_number: string | null;
|
|
11
|
+
address: string;
|
|
12
|
+
city: string;
|
|
13
|
+
province: string;
|
|
14
|
+
country: string;
|
|
15
|
+
postal_code: string;
|
|
16
|
+
phone_number: string;
|
|
17
|
+
coordinates: Coordinates;
|
|
18
|
+
service_area: ServiceArea | null;
|
|
19
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ServiceArea } from "./serviceArea";
|
|
2
|
+
|
|
3
|
+
export type FacilityCode =
|
|
4
|
+
| "yyz1"
|
|
5
|
+
| "yyz2"
|
|
6
|
+
| "yyz3"
|
|
7
|
+
| "yyz4"
|
|
8
|
+
| "yvr1"
|
|
9
|
+
| "yvr2"
|
|
10
|
+
| "yow1"
|
|
11
|
+
| "yul1"
|
|
12
|
+
| "unknown";
|
|
13
|
+
|
|
14
|
+
export type DeprecatedFacilityCode = "yyz1" | "yyz2";
|
|
15
|
+
|
|
16
|
+
export type FacilityCity =
|
|
17
|
+
| "Toronto"
|
|
18
|
+
| "Mississauga"
|
|
19
|
+
| "Vancouver"
|
|
20
|
+
| "Ottawa"
|
|
21
|
+
| "Montreal";
|
|
22
|
+
|
|
23
|
+
export interface Facility {
|
|
24
|
+
id: number;
|
|
25
|
+
name: FacilityCode;
|
|
26
|
+
phone: string;
|
|
27
|
+
email: string;
|
|
28
|
+
address: {
|
|
29
|
+
table: {
|
|
30
|
+
street: string;
|
|
31
|
+
city: FacilityCity;
|
|
32
|
+
province: string;
|
|
33
|
+
country: string;
|
|
34
|
+
postal_code: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
service_area: ServiceArea;
|
|
38
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { BaseImage } from "./image";
|
|
2
|
+
import { BaseAddress } from "./address";
|
|
3
|
+
import { BaseUser } from "./user";
|
|
4
|
+
import { Carrier } from "../fulfillment";
|
|
5
|
+
|
|
6
|
+
export type OrganizationConfigKey =
|
|
7
|
+
| "default_fulfilled_from"
|
|
8
|
+
| "auto_fulfill_orders";
|
|
9
|
+
|
|
10
|
+
export interface OrganizationConfig {
|
|
11
|
+
key: OrganizationConfigKey;
|
|
12
|
+
value: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface Permission {
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface OrganizationAddress extends BaseAddress {
|
|
21
|
+
building_type: string;
|
|
22
|
+
care_of: string;
|
|
23
|
+
elevator_access: boolean;
|
|
24
|
+
is_primary: boolean;
|
|
25
|
+
partner_name: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface GeofilterConstraint {
|
|
29
|
+
country: string;
|
|
30
|
+
provinces: string[];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface SCServiceTier {
|
|
34
|
+
threshold?: boolean;
|
|
35
|
+
room_of_choice?: boolean;
|
|
36
|
+
white_glove?: boolean;
|
|
37
|
+
to_the_door?: boolean;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface BaseOrganization {
|
|
41
|
+
created_at: string;
|
|
42
|
+
email: string;
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
packing_notes: string;
|
|
46
|
+
phone_number: string;
|
|
47
|
+
logo?: BaseImage;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface Organization extends BaseOrganization {
|
|
51
|
+
addresses: OrganizationAddress[];
|
|
52
|
+
carriers: Carrier[];
|
|
53
|
+
users: BaseUser[];
|
|
54
|
+
recommended_shipping_methods?: {
|
|
55
|
+
parcel: boolean;
|
|
56
|
+
freight: boolean;
|
|
57
|
+
sc_last_mile: boolean;
|
|
58
|
+
sc_service_tier?: SCServiceTier;
|
|
59
|
+
};
|
|
60
|
+
configurations_attributes: OrganizationConfig[];
|
|
61
|
+
permissions: Permission[];
|
|
62
|
+
geofilter_constraints?: GeofilterConstraint[];
|
|
63
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ServiceArea = "yyz" | "yvr" | "yow" | "yul";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface BaseUser {
|
|
2
|
+
id: string;
|
|
3
|
+
first_name: string;
|
|
4
|
+
last_name: string;
|
|
5
|
+
user_code: string;
|
|
6
|
+
email: string;
|
|
7
|
+
role: string;
|
|
8
|
+
phone_number: string | null;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface User extends BaseUser {
|
|
12
|
+
business_name: string | null;
|
|
13
|
+
business_type: string | null;
|
|
14
|
+
business_user: boolean;
|
|
15
|
+
closets: number;
|
|
16
|
+
confirmed: boolean;
|
|
17
|
+
created_at: string;
|
|
18
|
+
legacy: boolean;
|
|
19
|
+
orders: number;
|
|
20
|
+
organization_id: string;
|
|
21
|
+
organization_role: string;
|
|
22
|
+
payment_issue: boolean | null;
|
|
23
|
+
stripe_customer_id: string;
|
|
24
|
+
subrole: string;
|
|
25
|
+
updated_at: string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { AppointmentType } from "./appointmentType";
|
|
2
|
+
import { AppointmentStatus } from "./appointmentStatus";
|
|
3
|
+
import { Shipment, ScServiceCode } from "../shipment";
|
|
4
|
+
import { Order } from "../order";
|
|
5
|
+
import { AppointmentSlot } from "../../storage";
|
|
6
|
+
import { BaseImage, BaseNote } from "../../_common";
|
|
7
|
+
|
|
8
|
+
export interface Appointment {
|
|
9
|
+
appointment_actions: string[];
|
|
10
|
+
arrived_time: string | null;
|
|
11
|
+
cancelled_at: string | null;
|
|
12
|
+
completed_at: string | null;
|
|
13
|
+
claim_number?: string;
|
|
14
|
+
created_at: string;
|
|
15
|
+
customer_segment: "business";
|
|
16
|
+
date: string;
|
|
17
|
+
delivery_service_level?: ScServiceCode;
|
|
18
|
+
driver_id: string | null;
|
|
19
|
+
end_time: string | null;
|
|
20
|
+
estimated_time: number;
|
|
21
|
+
failed_notes: string | null;
|
|
22
|
+
failed_reason: string | null;
|
|
23
|
+
field_ops_notes?: BaseNote[];
|
|
24
|
+
formatted_timeslot: string | null;
|
|
25
|
+
id: string;
|
|
26
|
+
incomplete_at: string | null;
|
|
27
|
+
issue_images?: BaseImage[];
|
|
28
|
+
job_type: AppointmentType;
|
|
29
|
+
location: Location;
|
|
30
|
+
movers: null;
|
|
31
|
+
num_movers: null;
|
|
32
|
+
number: string;
|
|
33
|
+
range_of_days_assigned_dates?: {
|
|
34
|
+
assigned_start_datetime: string;
|
|
35
|
+
assigned_end_datetime: string;
|
|
36
|
+
} | null;
|
|
37
|
+
range_of_days_start_date?: string | null;
|
|
38
|
+
range_of_days_end_date?: string | null;
|
|
39
|
+
rescheduled: boolean;
|
|
40
|
+
rescheduled_appointment_id: string | null;
|
|
41
|
+
shipment: Partial<Shipment>;
|
|
42
|
+
signature_image: any;
|
|
43
|
+
signature_url: string | null;
|
|
44
|
+
signed_at: string | null;
|
|
45
|
+
sms: boolean;
|
|
46
|
+
source: Partial<Order>;
|
|
47
|
+
start_time: string | null;
|
|
48
|
+
status: AppointmentStatus;
|
|
49
|
+
timerange: AppointmentSlot;
|
|
50
|
+
type: "fulfillment";
|
|
51
|
+
updated_at: string;
|
|
52
|
+
user_code: string;
|
|
53
|
+
user_email: string;
|
|
54
|
+
user_firstname: string;
|
|
55
|
+
user_id: string;
|
|
56
|
+
user_lastname: string;
|
|
57
|
+
verification_images?: BaseImage[];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface Location {
|
|
61
|
+
address: string;
|
|
62
|
+
cell_phone_number: string | null;
|
|
63
|
+
city: string;
|
|
64
|
+
contact_name: string;
|
|
65
|
+
coordinates: { lat: number; lng: number };
|
|
66
|
+
country: string;
|
|
67
|
+
created_at: string;
|
|
68
|
+
customer_id: string;
|
|
69
|
+
customer_phone_number: string;
|
|
70
|
+
evening_phone_number: string | null;
|
|
71
|
+
id: string;
|
|
72
|
+
phone_number: string;
|
|
73
|
+
postal_code: string;
|
|
74
|
+
province: string;
|
|
75
|
+
service_area: "yyz" | "yvr" | "yow" | "yul" | null;
|
|
76
|
+
updated_at: string;
|
|
77
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type AppointmentStatus =
|
|
2
|
+
| "request_received"
|
|
3
|
+
| "confirmed"
|
|
4
|
+
| "shipment_created"
|
|
5
|
+
| "fulfillment"
|
|
6
|
+
| "ready"
|
|
7
|
+
| "loaded"
|
|
8
|
+
| "cancelled"
|
|
9
|
+
| "scheduled"
|
|
10
|
+
| "fulfilled"
|
|
11
|
+
| "on_the_way"
|
|
12
|
+
| "active"
|
|
13
|
+
| "done"
|
|
14
|
+
| "staging"
|
|
15
|
+
| "completed"
|
|
16
|
+
| "completed_with_exceptions"
|
|
17
|
+
| "started"
|
|
18
|
+
| "arrived"
|
|
19
|
+
| "incomplete"
|
|
20
|
+
| "failed"
|
|
21
|
+
| "no_show";
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { FacilityCode } from "../../_common/facility";
|
|
2
|
+
import { ASNItem } from "./asnItem";
|
|
3
|
+
|
|
4
|
+
export type ASNStatus =
|
|
5
|
+
| "draft"
|
|
6
|
+
| "awaiting"
|
|
7
|
+
| "arrived"
|
|
8
|
+
| "on_hold"
|
|
9
|
+
| "completed";
|
|
10
|
+
|
|
11
|
+
export type ASNShipmentType =
|
|
12
|
+
| "parcel"
|
|
13
|
+
| "pallet"
|
|
14
|
+
| "container"
|
|
15
|
+
| "floor_loaded"
|
|
16
|
+
| "drop_off";
|
|
17
|
+
|
|
18
|
+
export type ASNPalletPackingOption =
|
|
19
|
+
| "one_sku_per_pallet"
|
|
20
|
+
| "multiple_sku_per_pallet";
|
|
21
|
+
|
|
22
|
+
export type ASNBoxPackingOption = "one_sku_per_box" | "multiple_sku_per_box";
|
|
23
|
+
|
|
24
|
+
export interface AsnBol {
|
|
25
|
+
access: "external" | "internal";
|
|
26
|
+
created_at: string;
|
|
27
|
+
id: string;
|
|
28
|
+
updated_at: string;
|
|
29
|
+
url: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface TimelineEvent {
|
|
33
|
+
user_name: string;
|
|
34
|
+
user_is_admin: boolean;
|
|
35
|
+
event: string;
|
|
36
|
+
description: string;
|
|
37
|
+
created_at: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface ASN {
|
|
41
|
+
id: string;
|
|
42
|
+
status: ASNStatus;
|
|
43
|
+
number: string;
|
|
44
|
+
facility?: FacilityCode;
|
|
45
|
+
submitted_date?: string;
|
|
46
|
+
expected_arrival_date?: string;
|
|
47
|
+
actual_arrival_date?: string;
|
|
48
|
+
reference_number?: string;
|
|
49
|
+
po_number?: string;
|
|
50
|
+
container_size?: string;
|
|
51
|
+
box_packing_option?: ASNBoxPackingOption;
|
|
52
|
+
pallet_packing_option?: ASNPalletPackingOption;
|
|
53
|
+
shipment_type?: ASNShipmentType;
|
|
54
|
+
internal_notes?: string;
|
|
55
|
+
qty_under_received?: boolean;
|
|
56
|
+
qty_over_received?: boolean;
|
|
57
|
+
box_expected_quantity?: number;
|
|
58
|
+
box_received_quantity?: number;
|
|
59
|
+
pallet_expected_quantity?: number;
|
|
60
|
+
pallet_received_quantity?: number;
|
|
61
|
+
bols_attributes: AsnBol[];
|
|
62
|
+
current_step?: string;
|
|
63
|
+
created_at: string;
|
|
64
|
+
updated_at: string;
|
|
65
|
+
deleted_at?: string;
|
|
66
|
+
items_attributes: ASNItem[];
|
|
67
|
+
timeline?: TimelineEvent[];
|
|
68
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ASNItem {
|
|
2
|
+
id: string;
|
|
3
|
+
product_id: string;
|
|
4
|
+
product_name: string;
|
|
5
|
+
product_sku: string;
|
|
6
|
+
product_upc?: string;
|
|
7
|
+
product_scid: string;
|
|
8
|
+
expected_quantity: number;
|
|
9
|
+
received_quantity?: number;
|
|
10
|
+
damaged_quantity?: number;
|
|
11
|
+
lot_number?: string;
|
|
12
|
+
created_at: string;
|
|
13
|
+
updated_at: string;
|
|
14
|
+
deleted_at: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseAddress } from "../../_common";
|
|
2
|
+
|
|
3
|
+
export interface Customer {
|
|
4
|
+
id: string;
|
|
5
|
+
user_id: string;
|
|
6
|
+
organization_id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
email_address: string;
|
|
9
|
+
phone_number?: string;
|
|
10
|
+
created_at: string;
|
|
11
|
+
updated_at: string;
|
|
12
|
+
addresses?: CustomerAddress[];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface CustomerAddress extends BaseAddress {
|
|
16
|
+
cell_phone_number: string | null;
|
|
17
|
+
contact_name: string;
|
|
18
|
+
created_at: string;
|
|
19
|
+
customer_id: string;
|
|
20
|
+
customer_phone_number: string;
|
|
21
|
+
evening_phone_number: string | null;
|
|
22
|
+
updated_at: string;
|
|
23
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Shipment, ScServiceCode } from "../shipment/shipment";
|
|
2
|
+
import { Customer } from "./customer";
|
|
3
|
+
import {
|
|
4
|
+
FacilityCode,
|
|
5
|
+
BaseAddress,
|
|
6
|
+
BaseUser,
|
|
7
|
+
Organization,
|
|
8
|
+
File,
|
|
9
|
+
} from "../../_common";
|
|
10
|
+
import { OrderItem } from "./orderItem";
|
|
11
|
+
|
|
12
|
+
export type ShipmentTag =
|
|
13
|
+
| "ready_to_fulfill"
|
|
14
|
+
| "unfulfilled_items"
|
|
15
|
+
| "processing_items"
|
|
16
|
+
| "items_fulfilled"
|
|
17
|
+
| "processing_return_items"
|
|
18
|
+
| "items_returned"
|
|
19
|
+
| "items_removed"
|
|
20
|
+
| "pending_inventory_receiving"
|
|
21
|
+
| "items_partially_fulfilled"
|
|
22
|
+
| "customer_booking";
|
|
23
|
+
|
|
24
|
+
export type OrderPlatform =
|
|
25
|
+
| "manual"
|
|
26
|
+
| "csv"
|
|
27
|
+
| "shopify"
|
|
28
|
+
| "centiro"
|
|
29
|
+
| "woo_commerce"
|
|
30
|
+
| "shipstaion"
|
|
31
|
+
| "external_api";
|
|
32
|
+
|
|
33
|
+
interface Address extends BaseAddress {
|
|
34
|
+
customer_id: string;
|
|
35
|
+
contact_name: string;
|
|
36
|
+
customer_phone_number: string | null;
|
|
37
|
+
evening_phone_number: string | null;
|
|
38
|
+
cell_phone_number: string | null;
|
|
39
|
+
created_at: string;
|
|
40
|
+
updated_at: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface Order {
|
|
44
|
+
id: string;
|
|
45
|
+
order_id: string;
|
|
46
|
+
external_order_number: string;
|
|
47
|
+
external_order_id: string | null;
|
|
48
|
+
notes: string;
|
|
49
|
+
internal_notes?: string;
|
|
50
|
+
platform: OrderPlatform;
|
|
51
|
+
external_platform_version: number | null;
|
|
52
|
+
parcel_type: string;
|
|
53
|
+
cancelled: boolean;
|
|
54
|
+
fulfilled_from: FacilityCode;
|
|
55
|
+
client_type: string | null;
|
|
56
|
+
insurance_value: number;
|
|
57
|
+
shipping_service: string | null;
|
|
58
|
+
signature_required?: boolean;
|
|
59
|
+
customer: Customer;
|
|
60
|
+
address: Address;
|
|
61
|
+
created_at: string;
|
|
62
|
+
updated_at: string;
|
|
63
|
+
organization: Organization;
|
|
64
|
+
overdue: boolean;
|
|
65
|
+
user: BaseUser;
|
|
66
|
+
status?: string;
|
|
67
|
+
shipment_tags: ShipmentTag[];
|
|
68
|
+
shipments: Shipment[];
|
|
69
|
+
items: OrderItem[];
|
|
70
|
+
files: File[];
|
|
71
|
+
stock_status:
|
|
72
|
+
| "in_stock"
|
|
73
|
+
| "partially_in_stock"
|
|
74
|
+
| "out_of_stock"
|
|
75
|
+
| "unknown_stock";
|
|
76
|
+
on_hold: boolean;
|
|
77
|
+
on_hold_at: string;
|
|
78
|
+
selected_service_code?: ScServiceCode;
|
|
79
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Product } from "../product";
|
|
2
|
+
import { ShipmentActionType } from "../shipment";
|
|
3
|
+
|
|
4
|
+
export interface OrderItem {
|
|
5
|
+
id: string;
|
|
6
|
+
product: Product;
|
|
7
|
+
quantity: number;
|
|
8
|
+
attributes: string[];
|
|
9
|
+
return_reasons: string[];
|
|
10
|
+
available_actions: ShipmentActionType[];
|
|
11
|
+
actions_history: ShipmentActionType[];
|
|
12
|
+
virtual_kit_id: null | string;
|
|
13
|
+
available_quantity: number;
|
|
14
|
+
removed: boolean;
|
|
15
|
+
removed_reason: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Stock } from "./stock";
|
|
2
|
+
import { BaseImage } from "../../_common";
|
|
3
|
+
|
|
4
|
+
export interface BaseProduct {
|
|
5
|
+
id: string;
|
|
6
|
+
organization_id: string;
|
|
7
|
+
scid: string;
|
|
8
|
+
sku: string;
|
|
9
|
+
upc: string;
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
platform: string;
|
|
13
|
+
active: boolean;
|
|
14
|
+
fragile: boolean;
|
|
15
|
+
dangerous: boolean;
|
|
16
|
+
liquid: boolean;
|
|
17
|
+
digital: boolean;
|
|
18
|
+
tracks_lot_numbers: boolean;
|
|
19
|
+
contains_battery: boolean;
|
|
20
|
+
external_product_id: string | null;
|
|
21
|
+
height: number;
|
|
22
|
+
length: number;
|
|
23
|
+
width: number;
|
|
24
|
+
weight: number;
|
|
25
|
+
weight_unit: string;
|
|
26
|
+
usd_value: number;
|
|
27
|
+
value: number;
|
|
28
|
+
cost: number;
|
|
29
|
+
wholesale_price: number;
|
|
30
|
+
retail_price: number;
|
|
31
|
+
hs_tariff_code: string;
|
|
32
|
+
customs_description: string | null;
|
|
33
|
+
images: BaseImage[];
|
|
34
|
+
packaging_criteria: string;
|
|
35
|
+
product_type: "base" | "kit";
|
|
36
|
+
stocks?: Stock[];
|
|
37
|
+
deleted_at: string;
|
|
38
|
+
created_at: string;
|
|
39
|
+
updated_at: string;
|
|
40
|
+
virtual_kits?: {
|
|
41
|
+
id: string;
|
|
42
|
+
organization_id: string;
|
|
43
|
+
scid: string;
|
|
44
|
+
sku: string;
|
|
45
|
+
name: string;
|
|
46
|
+
quantity_per_kit: number;
|
|
47
|
+
deleted_at: string | null;
|
|
48
|
+
created_at: string;
|
|
49
|
+
updated_at: string;
|
|
50
|
+
product_type: string;
|
|
51
|
+
}[];
|
|
52
|
+
required_parts?: { [productID: string]: number };
|
|
53
|
+
packaging_levels?: PackagingLevel[];
|
|
54
|
+
return_days?: number;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface Product extends BaseProduct {
|
|
58
|
+
base_products?: BaseProduct[];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export interface PackagingLevel {
|
|
62
|
+
id?: string;
|
|
63
|
+
product_id?: string;
|
|
64
|
+
product: {
|
|
65
|
+
id: string;
|
|
66
|
+
sku: string;
|
|
67
|
+
scid: string;
|
|
68
|
+
name: string;
|
|
69
|
+
tracks_lot_numbers: boolean;
|
|
70
|
+
};
|
|
71
|
+
level: "single_item" | "inner_pack" | "master_pack" | "pallet";
|
|
72
|
+
base_product_quantity: number;
|
|
73
|
+
sku: string;
|
|
74
|
+
name?: string;
|
|
75
|
+
description: string;
|
|
76
|
+
weight_value: string;
|
|
77
|
+
weight_unit: "lb" | "kg" | "g" | "mg" | "oz";
|
|
78
|
+
length_value: string;
|
|
79
|
+
length_unit: "m" | "in" | "ft" | "yd" | "mi";
|
|
80
|
+
height_value: string;
|
|
81
|
+
height_unit: "m" | "in" | "ft" | "yd" | "mi";
|
|
82
|
+
width_value: string;
|
|
83
|
+
width_unit: "m" | "in" | "ft" | "yd" | "mi";
|
|
84
|
+
created_at: string;
|
|
85
|
+
updated_at: string;
|
|
86
|
+
}
|