@secondcloset/types 2.8.0-beta.1-yyc-atl → 2.8.0-beta.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@secondcloset/types",
3
- "version": "2.8.0-beta.1-yyc-atl",
3
+ "version": "2.8.0-beta.4",
4
4
  "description": "secondcloset type declaration and definitions",
5
5
  "main": "src/index.ts",
6
6
  "scripts": {
@@ -6,6 +6,7 @@ import {
6
6
  BaseUser,
7
7
  Organization,
8
8
  File,
9
+ Version,
9
10
  } from "../../_common";
10
11
  import { OrderItem } from "./orderItem";
11
12
 
@@ -40,41 +41,43 @@ export interface FulfillmentOrderAddress extends BaseAddress {
40
41
  updated_at: string;
41
42
  }
42
43
 
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: FulfillmentOrderAddress;
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
- has_errors: boolean;
80
- }
44
+ export type Order<V extends Version = "V1"> = V extends "V1"
45
+ ? {
46
+ id: string;
47
+ order_id: string;
48
+ external_order_number: string;
49
+ external_order_id: string | null;
50
+ notes: string;
51
+ internal_notes?: string;
52
+ platform: OrderPlatform;
53
+ external_platform_version: number | null;
54
+ parcel_type: string;
55
+ cancelled: boolean;
56
+ fulfilled_from: FacilityCode;
57
+ client_type: string | null;
58
+ insurance_value: number;
59
+ shipping_service: string | null;
60
+ signature_required?: boolean;
61
+ customer: Customer;
62
+ address: FulfillmentOrderAddress;
63
+ created_at: string;
64
+ updated_at: string;
65
+ organization: Organization;
66
+ overdue: boolean;
67
+ user: BaseUser;
68
+ status?: string;
69
+ shipment_tags: ShipmentTag[];
70
+ shipments: Shipment<V>[];
71
+ items: OrderItem<V>[];
72
+ files: File[];
73
+ stock_status:
74
+ | "in_stock"
75
+ | "partially_in_stock"
76
+ | "out_of_stock"
77
+ | "unknown_stock";
78
+ on_hold: boolean;
79
+ on_hold_at: string;
80
+ selected_service_code?: ScServiceCode;
81
+ has_errors: boolean;
82
+ }
83
+ : Omit<Order<"V1">, "items" | "shipments">;
@@ -1,16 +1,34 @@
1
- import { Product } from "../product";
1
+ import { Version } from "../../_common";
2
+ import { BaseProduct, Product } from "../product";
2
3
  import { ShipmentActionType } from "../shipment";
3
4
 
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
- }
5
+ export type OrderItem<V extends Version = "V1"> = V extends "V1"
6
+ ? {
7
+ id: string;
8
+ product: Product;
9
+ quantity: number;
10
+ attributes: string[];
11
+ return_reasons: string[];
12
+ available_actions: ShipmentActionType[];
13
+ actions_history: ShipmentActionType[];
14
+ virtual_kit_id: null | string;
15
+ available_quantity: number;
16
+ removed: boolean;
17
+ removed_reason: string;
18
+ }
19
+ : {
20
+ product: BaseProduct & {
21
+ available_quantity: OrderItem<"V1">["available_quantity"];
22
+ base_products?: OrderItem<"V2">["product"][];
23
+ required_parts?: Record<string, number>;
24
+ };
25
+ available_actions: {
26
+ inventory_pick_up_item_ids: OrderItem<"V1">["id"][];
27
+ inventory_warehouse_receiving_item_ids: OrderItem<"V1">["id"][];
28
+ delivery_item_ids: OrderItem<"V1">["id"][];
29
+ };
30
+ removed_items: {
31
+ removed_reason: string;
32
+ quantity: number;
33
+ }[];
34
+ };
@@ -3,14 +3,18 @@ import { BaseImage } from "../../_common";
3
3
 
4
4
  export interface BaseProduct {
5
5
  id: string;
6
- organization_id: string;
7
6
  scid: string;
7
+ name: string;
8
8
  sku: string;
9
9
  upc: string;
10
- name: string;
10
+ type: "base" | "kit";
11
+ active: boolean;
12
+ }
13
+
14
+ export interface Product extends Omit<BaseProduct, "type"> {
15
+ organization_id: string;
11
16
  description: string;
12
17
  platform: string;
13
- active: boolean;
14
18
  fragile: boolean;
15
19
  dangerous: boolean;
16
20
  liquid: boolean;
@@ -32,7 +36,7 @@ export interface BaseProduct {
32
36
  customs_description: string | null;
33
37
  images: BaseImage[];
34
38
  packaging_criteria: string;
35
- product_type: "base" | "kit";
39
+ product_type: BaseProduct["type"];
36
40
  stocks?: Stock[];
37
41
  deleted_at: string;
38
42
  created_at: string;
@@ -56,21 +60,14 @@ export interface BaseProduct {
56
60
  insurance_value: number | null;
57
61
  has_errors: boolean;
58
62
  under_conversion: boolean;
59
- }
60
-
61
- export interface Product extends BaseProduct {
62
- base_products?: BaseProduct[];
63
+ base_products?: Product[];
63
64
  }
64
65
 
65
66
  export interface PackagingLevel {
66
67
  id?: string;
67
68
  product_id?: string;
68
- product: {
69
- id: string;
70
- sku: string;
69
+ product: BaseProduct & {
71
70
  upc: string;
72
- scid: string;
73
- name: string;
74
71
  tracks_lot_numbers: boolean;
75
72
  };
76
73
  level: "single_item" | "inner_pack" | "master_pack" | "pallet";
@@ -1,5 +1,11 @@
1
1
  import { ShipmentItem } from "./shipmentItem";
2
- import { BaseUser, BaseNote, BaseOrganization, Facility } from "../../_common";
2
+ import {
3
+ BaseUser,
4
+ BaseNote,
5
+ BaseOrganization,
6
+ Facility,
7
+ Version,
8
+ } from "../../_common";
3
9
  import { Package } from "./package";
4
10
  import {
5
11
  SecondClosetShippingMethod,
@@ -33,35 +39,39 @@ export type ScServiceCode =
33
39
  | "second_closet_to_the_door_1_person"
34
40
  | ServiceCode;
35
41
 
36
- export interface Shipment {
37
- id: string;
38
- organization_id: string;
39
- organization?: BaseOrganization;
40
- billed: boolean;
41
- user: BaseUser;
42
- notes: BaseNote[] | string;
43
- shipment_items: ShipmentItem[];
44
- shipment_number: string;
45
- packages: Package[];
46
- external_order_id: string | null;
47
- external_order_type: string;
48
- external_shipment_id: string | null;
49
- carrier: Carrier | null;
50
- created_at: string;
51
- updated_at: string;
52
- action_summary: ShipmentActionType[];
53
- freight: boolean;
54
- shipping_method: SecondClosetShippingMethod | ExternalCarrierShippingMethod;
55
- shipping_method_type:
56
- | "external_carrier_shipment"
57
- | "appointment"
58
- | "untracked_shipment";
59
- external_order?: {
60
- id: string;
61
- external_order_number: string;
62
- external_order_id: string | null;
63
- created_at: string;
64
- updated_at: string;
65
- };
66
- facility?: Partial<Facility>;
67
- }
42
+ export type Shipment<V extends Version = "V1"> = V extends "V1"
43
+ ? {
44
+ id: string;
45
+ organization_id: string;
46
+ organization?: BaseOrganization;
47
+ billed: boolean;
48
+ user: BaseUser;
49
+ notes: BaseNote[] | string;
50
+ shipment_items: ShipmentItem<V>[];
51
+ shipment_number: string;
52
+ packages: Package[];
53
+ external_order_id: string | null;
54
+ external_order_type: string;
55
+ external_shipment_id: string | null;
56
+ carrier: Carrier | null;
57
+ created_at: string;
58
+ updated_at: string;
59
+ action_summary: ShipmentActionType[];
60
+ freight: boolean;
61
+ shipping_method:
62
+ | SecondClosetShippingMethod
63
+ | ExternalCarrierShippingMethod;
64
+ shipping_method_type:
65
+ | "external_carrier_shipment"
66
+ | "appointment"
67
+ | "untracked_shipment";
68
+ external_order?: {
69
+ id: string;
70
+ external_order_number: string;
71
+ external_order_id: string | null;
72
+ created_at: string;
73
+ updated_at: string;
74
+ };
75
+ facility?: Partial<Facility>;
76
+ }
77
+ : Omit<Shipment<"V1">, "shipment_items">;
@@ -1,42 +1,49 @@
1
+ import { Version } from "../../_common";
2
+ import { BaseProduct } from "../product";
1
3
  import { ShipmentActionType } from "./shipment";
2
- export interface ShipmentItem {
3
- id: string;
4
- order_item_id: string;
5
- description: string;
6
- item_identifier: string;
7
- item_identifier_type: string;
8
- item_identifier_value: string;
9
- product_id?: string;
10
- weight_value: string;
11
- weight_unit: string;
12
- length_value: string;
13
- length_unit: string;
14
- height_value: string;
15
- height_unit: string;
16
- width_value: string;
17
- width_unit: string;
18
- shipment_actions: ShipmentActionType[];
19
- shipment_actions_completion: Partial<
20
- {
21
- [key in ShipmentActionType]: boolean;
4
+ export type ShipmentItem<V extends Version = "V1"> = V extends "V1"
5
+ ? {
6
+ id: string;
7
+ order_item_id: string;
8
+ description: string;
9
+ item_identifier: string;
10
+ item_identifier_type: string;
11
+ item_identifier_value: string;
12
+ product_id?: string;
13
+ weight_value: string;
14
+ weight_unit: string;
15
+ length_value: string;
16
+ length_unit: string;
17
+ height_value: string;
18
+ height_unit: string;
19
+ width_value: string;
20
+ width_unit: string;
21
+ shipment_actions: ShipmentActionType[];
22
+ shipment_actions_completion: Partial<
23
+ {
24
+ [key in ShipmentActionType]: boolean;
25
+ }
26
+ >;
27
+ shipment_actions_status?: {
28
+ [key in ShipmentActionType]: {
29
+ completed: boolean;
30
+ failed: boolean;
31
+ failed_reason: string | null;
32
+ };
33
+ };
34
+ shipment_item_group: {
35
+ id: string;
36
+ name: string;
37
+ description: string;
38
+ external_group_id: string;
39
+ group_identifier_type: string;
40
+ group_identifier_value: string;
41
+ created_at: string;
42
+ updated_at: string;
43
+ group_identifier: string;
44
+ } | null;
22
45
  }
23
- >;
24
- shipment_actions_status?: {
25
- [key in ShipmentActionType]: {
26
- completed: boolean;
27
- failed: boolean;
28
- failed_reason: string | null;
46
+ : {
47
+ product: BaseProduct;
48
+ shipment_item_ids: ShipmentItem<"V1">["id"][];
29
49
  };
30
- };
31
- shipment_item_group: {
32
- id: string;
33
- name: string;
34
- description: string;
35
- external_group_id: string;
36
- group_identifier_type: string;
37
- group_identifier_value: string;
38
- created_at: string;
39
- updated_at: string;
40
- group_identifier: string;
41
- } | null;
42
- }
@@ -43,7 +43,7 @@ interface ShippingLabel extends Partial<ExternalCarrierShippingLabel> {
43
43
  created_at: string;
44
44
  updated_at: string;
45
45
  }
46
- interface PackageShipment extends Partial<Shipment> {
46
+ interface PackageShipment extends Partial<Shipment<"V1">> {
47
47
  user_id: string;
48
48
  shipping_method_id?: string;
49
49
  customer_scheduling_token?: string;
@@ -62,4 +62,4 @@ export interface PackageDetailsInfo extends PackageInfo {
62
62
  organization: Organization;
63
63
  carrier?: PackageCarrier;
64
64
  shipping_label?: ShippingLabel;
65
- }
65
+ }
@@ -24,3 +24,4 @@ export * from "./stock";
24
24
  export * from "./supply";
25
25
  export * from "./supplyStock";
26
26
  export * from "./supplyTransaction";
27
+ export * from "./rmaContainer";
@@ -1,4 +1,5 @@
1
1
  import { Organization } from "./organization";
2
+ import { RmaContainer } from "./rmaContainer";
2
3
 
3
4
  export enum ReturnItemCondition {
4
5
  RESELLABLE = "resellable",
@@ -39,6 +40,8 @@ export interface ReturnItem {
39
40
  condition_notes?: string;
40
41
  reason?: string;
41
42
  reason_notes?: string;
43
+ rma_container_id?: string;
44
+ rma_container?: RmaContainer;
42
45
  }
43
46
 
44
47
  export interface ReturnAddress {
@@ -0,0 +1,9 @@
1
+ import { ReturnItem } from "./return";
2
+
3
+ export type RmaContainer = {
4
+ id: string;
5
+ rma_number: string;
6
+ container_id: string;
7
+ quantity: number;
8
+ return_items: ReturnItem[];
9
+ };