@secondcloset/types 2.7.48-beta-signature-reqs-0 → 2.8.0-beta.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@secondcloset/types",
3
- "version": "2.7.48-beta-signature-reqs-0",
3
+ "version": "2.8.0-beta.0",
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 = Version> = 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[];
71
+ items: OrderItem[];
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,32 @@
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 = Version> = 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
+ };
23
+ available_actions: {
24
+ inventory_pick_up_item_ids: OrderItem<"V1">["id"][];
25
+ inventory_warehouse_receiving_item_ids: OrderItem<"V1">["id"][];
26
+ delivery_item_ids: OrderItem<"V1">["id"][];
27
+ };
28
+ removed_items: {
29
+ removed_reason: string;
30
+ quantity: number;
31
+ }[];
32
+ };
@@ -3,11 +3,15 @@ import { BaseImage } from "../../_common";
3
3
 
4
4
  export interface BaseProduct {
5
5
  id: string;
6
- organization_id: string;
7
- scid: string;
6
+ name: string;
8
7
  sku: string;
8
+ scid: string;
9
+ type: "base" | "kit";
10
+ }
11
+
12
+ export interface Product extends Omit<BaseProduct, "type"> {
13
+ organization_id: string;
9
14
  upc: string;
10
- name: string;
11
15
  description: string;
12
16
  platform: string;
13
17
  active: 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 = Version> = 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[];
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 = Version> = 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
+ }
@@ -21,7 +21,6 @@ export enum OrganizationConfigKey {
21
21
  RTS_INSTRUCTION = "RTS_INSTRUCTION",
22
22
  ENABLE_SEND_EMAIL_TO_CUSTOMERS = "ENABLE_SEND_EMAIL_TO_CUSTOMERS",
23
23
  DEFAULT_RATE_FETCHING_V1 = "DEFAULT_RATE_FETCHING_V1",
24
- DEFAULT_REQUIRE_SIGNATURE = "DEFAULT_REQUIRE_SIGNATURE",
25
24
  }
26
25
  export interface OrganizationConfig {
27
26
  id: string;