repzo 1.0.267 → 1.0.269

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/lib/index.d.ts CHANGED
@@ -1045,6 +1045,7 @@ export default class Repzo {
1045
1045
  salesAnalyticsReport: {
1046
1046
  _path: "sales-analytics-report";
1047
1047
  find: (params?: Service.SalesAnalyticsReport.Find.Params) => Promise<Service.SalesAnalyticsReport.Find.Result>;
1048
+ create: (body: Service.SalesAnalyticsReport.CreateBody, params?: Service.SalesAnalyticsReport.Create.Params) => Promise<Service.SalesAnalyticsReport.Create.Result>;
1048
1049
  };
1049
1050
  workorderAgenda: {
1050
1051
  _path: "workorder-agenda";
package/lib/index.js CHANGED
@@ -2028,6 +2028,10 @@ class Repzo {
2028
2028
  let res = await this._fetch(this.svAPIEndpoint, this.salesAnalyticsReport._path, params);
2029
2029
  return res;
2030
2030
  },
2031
+ create: async (body, params) => {
2032
+ let res = await this._create(this.svAPIEndpoint, this.salesAnalyticsReport._path, body, params);
2033
+ return res;
2034
+ },
2031
2035
  };
2032
2036
  this.workorderAgenda = {
2033
2037
  _path: Repzo._end_points.WORKORDER_AGENDA,
@@ -1,4 +1,5 @@
1
1
  import { EndPoints } from "../index.js";
2
+ import { SalesAnalyticsFieldAccumulators, SalesAnalyticsReportProjectionKey, SalesAnalyticsReportFilter, SalesAnalyticsGroupByIDs, SalesAnalyticsReportSortedKey } from "./report-type.js";
2
3
  export interface Params {
3
4
  [key: string]: any;
4
5
  }
@@ -17,6 +18,80 @@ export interface Options {
17
18
  refresh_token?: string;
18
19
  reauthCallBackFn?: (res: Service.Reauth.Result) => void;
19
20
  }
21
+ interface ReportColumn {
22
+ _id?: string;
23
+ disabled: boolean;
24
+ key: string;
25
+ name: string;
26
+ report_types: ReportType[];
27
+ default_show: boolean;
28
+ selectable: boolean;
29
+ position: number;
30
+ show: "default" | "hide" | "show";
31
+ column_group?: StringId | string;
32
+ totals_key?: string;
33
+ createdAt?: Date;
34
+ updatedAt?: Date;
35
+ }
36
+ type QueryCriteriaCondition = {
37
+ [key: string]: any;
38
+ };
39
+ type QueryCriteriaValue = boolean | string | number | QueryCriteriaElement | QueryCriteriaLogical | null | Date;
40
+ type LogicalOperators = "and" | "or";
41
+ export type QueryCriteriaOperators = "gt" | "lt" | "gte" | "lte" | "in" | "nin" | "eq" | "between" | "last_seven_days" | "today" | "yesterday" | "last_thirty_days" | "last_month" | "last_three_months" | "last_six_months" | "last_twelve_months";
42
+ type QueryCriteriaElement = {
43
+ key: string;
44
+ operator: QueryCriteriaOperators;
45
+ value: QueryCriteriaValue;
46
+ conditions?: QueryCriteriaCondition[];
47
+ };
48
+ type QueryCriteriaLogical = {
49
+ operator: LogicalOperators;
50
+ value: QueryCriteriaValue[];
51
+ };
52
+ type BaseKey = string;
53
+ type BaseValue = any;
54
+ type FilterMap = SalesAnalyticsReportFilter;
55
+ type GroupByKeys = SalesAnalyticsGroupByIDs;
56
+ type FieldAccumulators = SalesAnalyticsFieldAccumulators;
57
+ type SortValue<Keys extends BaseKey> = {
58
+ field: Keys;
59
+ type: "asc" | "desc" | -1 | 1;
60
+ };
61
+ interface EnhancedQueryCriteriaElement<TKeys extends keyof FilterMap, TValue extends BaseValue = QueryCriteriaValue, TCondition = QueryCriteriaCondition> {
62
+ key: TKeys;
63
+ operator: FilterMap[TKeys][number];
64
+ value: TValue;
65
+ conditions?: TCondition[];
66
+ }
67
+ type GroupByType<TGroupID extends keyof GroupByKeys, TFieldAccumulators> = {
68
+ _id: TGroupID;
69
+ fields: {
70
+ [K in GroupByKeys[TGroupID]]: {
71
+ key: K;
72
+ acc: K extends keyof TFieldAccumulators ? TFieldAccumulators[K] : never;
73
+ };
74
+ }[GroupByKeys[TGroupID]][];
75
+ };
76
+ interface GenericQuery<TSortKey extends BaseKey, TFilterMap extends FilterMap, TGroupKey extends GroupByKeys, TFieldAccumulators extends FieldAccumulators, TProjectionKeys extends BaseKey, TMaxAnyOfLength extends number = 1> {
77
+ maxAnyOfLength: TMaxAnyOfLength;
78
+ anyOf: {
79
+ criteria: {
80
+ [K in keyof TFilterMap]: EnhancedQueryCriteriaElement<K & keyof FilterMap>;
81
+ }[keyof TFilterMap][];
82
+ }[];
83
+ options?: {
84
+ sort?: SortValue<TSortKey>[];
85
+ limit?: number;
86
+ page?: number;
87
+ totals_summary?: "none" | "all" | "page";
88
+ without_currency?: boolean;
89
+ };
90
+ group?: GroupByType<keyof TGroupKey & keyof GroupByKeys, TFieldAccumulators>[];
91
+ projection?: TProjectionKeys[];
92
+ columns?: ReportColumn[];
93
+ metadata?: any;
94
+ }
20
95
  export interface Headers {
21
96
  "api-key": string;
22
97
  "Content-Type": string;
@@ -174,6 +249,8 @@ export interface DefaultPaginationResult {
174
249
  prev_page_url: string | null;
175
250
  path: string;
176
251
  data: any[];
252
+ columns?: ReportColumn[];
253
+ keys?: ReportKey[];
177
254
  }
178
255
  export interface AgendaPaginationResult extends DefaultPaginationResult {
179
256
  meta?: {
@@ -6107,6 +6184,8 @@ export declare namespace Service {
6107
6184
  business_day?: string;
6108
6185
  bypass_freshness_window_code_entered?: boolean;
6109
6186
  promotion_freshness_window_exceeded?: boolean;
6187
+ createdAt?: string;
6188
+ updatedAt?: string;
6110
6189
  }
6111
6190
  export interface UpdateBody {
6112
6191
  integration_meta?: {
@@ -7943,8 +8022,8 @@ export declare namespace Service {
7943
8022
  }
7944
8023
  type Data = ReceivingMaterialSchema;
7945
8024
  interface CreateBody {
7946
- from: string;
7947
- to: string;
8025
+ from?: StringId;
8026
+ to: StringId;
7948
8027
  time: number;
7949
8028
  sync_id: string;
7950
8029
  variants: {
@@ -15297,6 +15376,7 @@ export declare namespace Service {
15297
15376
  _id?: string;
15298
15377
  [key: string]: any;
15299
15378
  }
15379
+ type CreateBody = GenericQuery<SalesAnalyticsReportSortedKey, SalesAnalyticsReportFilter, SalesAnalyticsGroupByIDs, SalesAnalyticsFieldAccumulators, SalesAnalyticsReportProjectionKey, 1>;
15300
15380
  namespace Find {
15301
15381
  type Params = DefaultPaginationQueryParams & {
15302
15382
  from_issue_date?: string;
@@ -15363,6 +15443,75 @@ export declare namespace Service {
15363
15443
  data: Data[];
15364
15444
  }
15365
15445
  }
15446
+ namespace Create {
15447
+ type Params = DefaultPaginationQueryParams & {
15448
+ from_issue_date?: string;
15449
+ to_issue_date?: string;
15450
+ from_due_date?: string;
15451
+ to_due_date?: string;
15452
+ from_createdAt?: string;
15453
+ to_createdAt?: string;
15454
+ from_updatedAt?: string;
15455
+ to_updatedAt?: string;
15456
+ client?: StringId | StringId[];
15457
+ rep?: StringId | StringId[];
15458
+ creator?: StringId | StringId[];
15459
+ teams?: StringId | StringId[];
15460
+ status?: StatusOption | StatusOption[];
15461
+ promotion?: StringId | StringId[];
15462
+ product?: StringId | StringId[];
15463
+ variant?: StringId | StringId[];
15464
+ category?: StringId | StringId[];
15465
+ sub_category?: StringId | StringId[];
15466
+ brand?: StringId | StringId[];
15467
+ product_groups?: StringId | StringId[];
15468
+ class?: ClassOption | ClassOption[];
15469
+ with_brand?: boolean;
15470
+ with_category?: boolean;
15471
+ with_product_groups?: boolean;
15472
+ with_sub_category?: boolean;
15473
+ with_product_details?: boolean;
15474
+ with_variant_details?: boolean;
15475
+ with_teams?: boolean;
15476
+ with_promotions?: boolean;
15477
+ promotion_type?: PromotionTypeOption;
15478
+ with_balance?: boolean;
15479
+ groupBy?: GroupByOption | GroupByOption[];
15480
+ from_price?: number;
15481
+ to_price?: number;
15482
+ export?: string;
15483
+ chain?: StringId | StringId[];
15484
+ channel?: StringId | StringId[];
15485
+ CLIENT_TAGS?: StringId | StringId[];
15486
+ AREA_TAGS?: StringId | StringId[];
15487
+ tags?: StringId | StringId[];
15488
+ country?: string | string[];
15489
+ state?: string | string[];
15490
+ city?: string | string[];
15491
+ with_chain?: boolean;
15492
+ with_channel?: boolean;
15493
+ with_tags?: boolean;
15494
+ with_client_details?: boolean;
15495
+ admin?: StringId | StringId[];
15496
+ tax?: StringId | StringId[];
15497
+ with_original_price?: boolean;
15498
+ with_route?: boolean;
15499
+ route?: StringId | StringId[];
15500
+ with_external_serial_number?: boolean;
15501
+ with_workorder?: boolean;
15502
+ with_client_customFields?: boolean;
15503
+ with_rep_details?: boolean;
15504
+ with_rep_customFields?: boolean;
15505
+ sortBy?: SortByOption[];
15506
+ includeDocumentsCount?: boolean;
15507
+ };
15508
+ type Body = CreateBody;
15509
+ interface Result extends DefaultPaginationResult {
15510
+ data: Data[];
15511
+ columns: ReportColumn[];
15512
+ keys: ReportKey[];
15513
+ }
15514
+ }
15366
15515
  }
15367
15516
  namespace WorkorderAgenda {
15368
15517
  interface Workorder {
@@ -0,0 +1,207 @@
1
+ import type { QueryCriteriaOperators } from "./index";
2
+ type SalesAnalyticsReportFilterKeys = "is_void" | "client_id" | "rep" | "admin" | "creator._id" | "status" | "time" | "issue_date" | "due_date" | "createdAt" | "updatedAt" | "client.chain" | "client.channel" | "client.city" | "client.state" | "client.country" | "client.tags" | "client.CLIENT_TAGS" | "client.AREA_TAGS" | "product.brand" | "product.category" | "product.sub_category" | "product.product_groups" | "promotions._id" | "items.measureunit._id" | "items.return_reason" | "items.variant.variant_id" | "items.variant.product_id" | "items.promotion_type" | "items.class" | "items.discounted_price" | "items.tax._id" | "items.tax.name" | "items.tax.type" | "return_items.tax.name" | "return_items.tax.type" | "return_items.measureunit._id" | "return_items.return_reason" | "return_items.variant.variant_id" | "return_items.variant.product_id" | "return_items.promotion_type" | "return_items.class" | "return_items.discounted_price" | "return_items.tax._id" | "teams" | "route" | "custom_status";
3
+ interface SalesAnalyticsReportFilter extends Record<SalesAnalyticsReportFilterKeys, QueryCriteriaOperators[]> {
4
+ is_void: ["in"];
5
+ client_id: ["in", "nin"];
6
+ rep: ["in", "nin"];
7
+ admin: ["in", "nin"];
8
+ "creator._id": ["in", "nin"];
9
+ status: ["in", "nin"];
10
+ time: [
11
+ "between",
12
+ "last_seven_days",
13
+ "last_thirty_days",
14
+ "last_month",
15
+ "last_three_months",
16
+ "last_six_months",
17
+ "last_twelve_months",
18
+ "yesterday",
19
+ "today",
20
+ "gte",
21
+ "lte",
22
+ "lt",
23
+ "gt"
24
+ ];
25
+ issue_date: [
26
+ "between",
27
+ "last_seven_days",
28
+ "last_thirty_days",
29
+ "last_month",
30
+ "last_three_months",
31
+ "last_six_months",
32
+ "last_twelve_months",
33
+ "yesterday",
34
+ "today",
35
+ "gte",
36
+ "lte",
37
+ "lt",
38
+ "gt"
39
+ ];
40
+ due_date: [
41
+ "between",
42
+ "last_seven_days",
43
+ "last_thirty_days",
44
+ "last_month",
45
+ "last_three_months",
46
+ "last_six_months",
47
+ "last_twelve_months",
48
+ "yesterday",
49
+ "today",
50
+ "gte",
51
+ "lte",
52
+ "lt",
53
+ "gt"
54
+ ];
55
+ createdAt: [
56
+ "between",
57
+ "last_seven_days",
58
+ "last_thirty_days",
59
+ "last_month",
60
+ "last_three_months",
61
+ "last_six_months",
62
+ "last_twelve_months",
63
+ "yesterday",
64
+ "today",
65
+ "gte",
66
+ "lte",
67
+ "lt",
68
+ "gt"
69
+ ];
70
+ updatedAt: [
71
+ "between",
72
+ "last_seven_days",
73
+ "last_thirty_days",
74
+ "last_month",
75
+ "last_three_months",
76
+ "last_six_months",
77
+ "last_twelve_months",
78
+ "yesterday",
79
+ "today",
80
+ "gte",
81
+ "lte",
82
+ "lt",
83
+ "gt"
84
+ ];
85
+ "client.chain": ["in", "nin"];
86
+ "client.channel": ["in", "nin"];
87
+ "client.city": ["in", "nin"];
88
+ "client.state": ["in", "nin"];
89
+ "client.country": ["in", "nin"];
90
+ "client.tags": ["in", "nin"];
91
+ "client.CLIENT_TAGS": ["in", "nin"];
92
+ "client.AREA_TAGS": ["in", "nin"];
93
+ "product.brand": ["in", "nin"];
94
+ "product.category": ["in", "nin"];
95
+ "product.sub_category": ["in", "nin"];
96
+ "product.product_groups": ["in", "nin"];
97
+ "promotions._id": ["in", "nin"];
98
+ "items.promos": ["in", "nin"];
99
+ "items.measureunit._id": ["in", "nin"];
100
+ "items.return_reason": ["in", "nin"];
101
+ "items.variant.variant_id": ["in", "nin"];
102
+ "items.variant.product_id": ["in", "nin"];
103
+ "items.promotion_type": ["in", "nin"];
104
+ "items.class": ["in", "nin"];
105
+ "items.discounted_price": ["between"];
106
+ "items.tax._id": ["in", "nin"];
107
+ "items.tax.name": ["in", "nin"];
108
+ "items.tax.type": ["in", "nin"];
109
+ "return_items.tax.name": ["in", "nin"];
110
+ "return_items.tax.type": ["in", "nin"];
111
+ "return_items.measureunit._id": ["in", "nin"];
112
+ "return_items.return_reason": ["in", "nin"];
113
+ "return_items.variant.variant_id": ["in", "nin"];
114
+ "return_items.variant.product_id": ["in", "nin"];
115
+ "return_items.promotion_type": ["in", "nin"];
116
+ "return_items.class": ["in", "nin"];
117
+ "return_items.discounted_price": ["between"];
118
+ "return_items.tax._id": ["in", "nin"];
119
+ teams: ["in", "nin"];
120
+ route: ["in", "nin"];
121
+ custom_status: ["in", "nin"];
122
+ }
123
+ type SalesAnalyticsReportProjectionKey = "issue_date" | "due_date" | "serial_number" | "advanced_serial_number" | "external_serial_number" | "return_serial_number" | "client" | "client_code" | "creator" | "rep_username" | "teams" | "route" | "custom_status" | "workorder_serial_number" | "line_number" | "lines" | "status" | "product" | "product_local_name" | "product_sku" | "product_barcode" | "variant" | "variant_local_name" | "variant_sku" | "variant_barcode" | "category" | "sub_category" | "brand" | "product_groups" | "promotion" | "promotion_ref" | "promotion_type" | "class" | "class" | "return_reason" | "chain" | "channel" | "country" | "state" | "city" | "area_tags" | "client_tags" | "original_price" | "tax" | "visit_uuid" | "base_unit_qty" | "qty" | "measureunit" | "price" | "tax" | "line_total" | "lineTotalAfterDeduction" | "deduction" | "total_before_tax" | "discount_amount" | "tax_total" | "tax_total_after_deduction" | "pre_total" | "return_total" | "total" | "balance" | "tax_total_after_deduction" | `client_customFields.${string}` | `rep_customFields.${string}`;
124
+ type SalesAnalyticsReportSortedKey = "issue_date" | "due_date" | "createdAt" | "updatedAt" | "time" | "line_total" | "pre_total" | "return_total" | "total" | "balance" | "items.tax_total_after_deduction" | "items.lineTotalAfterDeduction" | "items.price" | "discount_amount" | "tax_total" | "items.base_unit_qty" | "items.qty" | "items.deduction";
125
+ type SalesAnalyticsGroupByIDs = {
126
+ client: "client_name" | "client_id" | "client_code" | "client_local_name" | "chain" | "channel" | "client_customFields" | "tags" | "country" | "state" | "city";
127
+ user: "creator_id" | "creator_type" | "creator_name" | "creator_customFields" | "creator_username";
128
+ issue_date: "issue_date";
129
+ due_date: "due_date";
130
+ serial_number: "serial_number" | "external_serial_number" | "return_serial_number";
131
+ product: "product_name" | "product_local_name" | "product" | "price" | "measureunit" | "base_unit_qty" | "qty" | "discount_amount" | "tax" | "return_reason" | "line_total" | "tax_total" | "total_before_tax" | "lineTotalAfterDeduction" | "deduction" | "tax_total_after_deduction" | "original_price" | "product_sku" | "product_barcode" | "sub_category" | "product_groups" | "category" | "brand";
132
+ variant: "variant_name" | "variant_local_name" | "variant_sku" | "variant_barcode" | "price" | "measureunit" | "base_unit_qty" | "qty" | "discount_amount" | "tax" | "return_reason" | "line_total" | "tax_total" | "total_before_tax" | "lineTotalAfterDeduction" | "deduction" | "tax_total_after_deduction" | "original_price";
133
+ brand: "brand" | "price" | "measureunit" | "base_unit_qty" | "qty" | "discount_amount" | "tax" | "return_reason" | "line_total" | "tax_total" | "total_before_tax" | "lineTotalAfterDeduction" | "deduction" | "tax_total_after_deduction" | "original_price";
134
+ category: "category" | "price" | "measureunit" | "base_unit_qty" | "qty" | "discount_amount" | "tax" | "return_reason" | "line_total" | "tax_total" | "total_before_tax" | "lineTotalAfterDeduction" | "deduction" | "tax_total_after_deduction" | "original_price";
135
+ status: "status";
136
+ promotion_type: "promotion_type" | "price" | "measureunit" | "base_unit_qty" | "qty" | "discount_amount" | "tax" | "return_reason" | "line_total" | "tax_total" | "total_before_tax" | "lineTotalAfterDeduction" | "deduction" | "tax_total_after_deduction" | "original_price";
137
+ class: "class" | "price" | "measureunit" | "base_unit_qty" | "qty" | "discount_amount" | "tax" | "return_reason" | "line_total" | "tax_total" | "total_before_tax" | "lineTotalAfterDeduction" | "deduction" | "tax_total_after_deduction" | "original_price";
138
+ measureunit: "measureunit" | "price" | "base_unit_qty" | "qty" | "discount_amount" | "tax" | "return_reason" | "line_total" | "tax_total" | "total_before_tax" | "lineTotalAfterDeduction" | "deduction" | "tax_total_after_deduction" | "original_price";
139
+ promotion: "promotions" | "promotion_ref" | "promotion_type" | "price" | "measureunit" | "base_unit_qty" | "qty" | "discount_amount" | "tax" | "return_reason" | "line_total" | "tax_total" | "total_before_tax" | "lineTotalAfterDeduction" | "deduction" | "tax_total_after_deduction" | "original_price";
140
+ chain: "client_name" | "chain";
141
+ channel: "client_name" | "channel";
142
+ city: "client_name" | "city";
143
+ state: "client_name" | "state";
144
+ country: "client_name" | "country";
145
+ route: "route";
146
+ custom_status: "custom_status";
147
+ teams: "teams";
148
+ };
149
+ type SalesAnalyticsFieldAccumulators = {
150
+ client_name: "first" | "last";
151
+ client_id: "first" | "last";
152
+ client_code: "first" | "last";
153
+ client_local_name: "first" | "last";
154
+ chain: "first" | "last";
155
+ channel: "first" | "last";
156
+ client_customFields: "first" | "last";
157
+ tags: "first" | "last";
158
+ country: "first" | "last";
159
+ state: "first" | "last";
160
+ city: "first" | "last";
161
+ creator_id: "first" | "last";
162
+ creator_type: "first" | "last";
163
+ creator_name: "first" | "last";
164
+ creator_customFields: "first" | "last";
165
+ creator_username: "first" | "last";
166
+ issue_date: "first" | "last";
167
+ due_date: "first" | "last";
168
+ serial_number: "first" | "last";
169
+ external_serial_number: "first" | "last";
170
+ return_serial_number: "first" | "last";
171
+ price: "sum" | "avg" | "max" | "min";
172
+ base_unit_qty: "sum" | "avg" | "max" | "min";
173
+ qty: "sum" | "avg" | "max" | "min";
174
+ discount_amount: "sum" | "avg" | "max" | "min";
175
+ line_total: "sum" | "avg" | "max" | "min";
176
+ tax_total: "sum" | "avg" | "max" | "min";
177
+ total_before_tax: "sum" | "avg" | "ma" | "min";
178
+ lineTotalAfterDeduction: "sum" | "avg" | "max" | "min";
179
+ deduction: "sum" | "avg" | "max" | "min";
180
+ tax_total_after_deduction: "sum" | "avg" | "max" | "min";
181
+ original_price: "avg" | "max" | "min" | "sum";
182
+ measureunit: "addToSet" | "first" | "last";
183
+ tax: "addToSet" | "first" | "last";
184
+ return_reason: "addToSet" | "first" | "last";
185
+ promotion_type: "addToSet" | "first" | "last";
186
+ product_name: "first" | "last";
187
+ product_local_name: "first" | "last";
188
+ product: "first" | "last";
189
+ product_sku: "first" | "last";
190
+ product_barcode: "first" | "last";
191
+ sub_category: "first" | "last";
192
+ product_groups: "first" | "last";
193
+ category: "first" | "last";
194
+ brand: "first" | "last";
195
+ variant_name: "first" | "last";
196
+ variant_local_name: "first" | "last";
197
+ variant_sku: "first" | "last";
198
+ variant_barcode: "first" | "last";
199
+ status: "first" | "last";
200
+ class: "first" | "last";
201
+ promotions: "first" | "last";
202
+ promotion_ref: "first" | "last";
203
+ route: "first" | "last";
204
+ custom_status: "first" | "last";
205
+ teams: "first" | "last";
206
+ };
207
+ export { SalesAnalyticsReportSortedKey, SalesAnalyticsGroupByIDs, SalesAnalyticsFieldAccumulators, SalesAnalyticsReportFilter, SalesAnalyticsReportProjectionKey, };
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "repzo",
3
- "version": "1.0.267",
3
+ "version": "1.0.269",
4
4
  "description": "Repzo TypeScript SDK",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
package/src/index.ts CHANGED
@@ -5116,6 +5116,19 @@ export default class Repzo {
5116
5116
  );
5117
5117
  return res;
5118
5118
  },
5119
+
5120
+ create: async (
5121
+ body: Service.SalesAnalyticsReport.CreateBody,
5122
+ params?: Service.SalesAnalyticsReport.Create.Params,
5123
+ ): Promise<Service.SalesAnalyticsReport.Create.Result> => {
5124
+ let res = await this._create(
5125
+ this.svAPIEndpoint,
5126
+ this.salesAnalyticsReport._path,
5127
+ body,
5128
+ params,
5129
+ );
5130
+ return res;
5131
+ },
5119
5132
  };
5120
5133
 
5121
5134
  workorderAgenda = {
@@ -1,4 +1,11 @@
1
1
  import { EndPoints } from "../index.js";
2
+ import {
3
+ SalesAnalyticsFieldAccumulators,
4
+ SalesAnalyticsReportProjectionKey,
5
+ SalesAnalyticsReportFilter,
6
+ SalesAnalyticsGroupByIDs,
7
+ SalesAnalyticsReportSortedKey,
8
+ } from "./report-type.js";
2
9
 
3
10
  export interface Params {
4
11
  [key: string]: any;
@@ -19,6 +26,121 @@ export interface Options {
19
26
  refresh_token?: string;
20
27
  reauthCallBackFn?: (res: Service.Reauth.Result) => void;
21
28
  }
29
+ interface ReportColumn {
30
+ _id?: string;
31
+ disabled: boolean;
32
+ key: string;
33
+ name: string;
34
+ report_types: ReportType[];
35
+ default_show: boolean;
36
+ selectable: boolean;
37
+ position: number;
38
+ show: "default" | "hide" | "show";
39
+ column_group?: StringId | string;
40
+ totals_key?: string;
41
+ createdAt?: Date;
42
+ updatedAt?: Date;
43
+ }
44
+ type QueryCriteriaCondition = { [key: string]: any };
45
+ type QueryCriteriaValue =
46
+ | boolean
47
+ | string
48
+ | number
49
+ | QueryCriteriaElement
50
+ | QueryCriteriaLogical
51
+ | null
52
+ | Date;
53
+ type LogicalOperators = "and" | "or";
54
+ export type QueryCriteriaOperators =
55
+ | "gt"
56
+ | "lt"
57
+ | "gte"
58
+ | "lte"
59
+ | "in"
60
+ | "nin"
61
+ | "eq"
62
+ | "between"
63
+ | "last_seven_days"
64
+ | "today"
65
+ | "yesterday"
66
+ | "last_thirty_days"
67
+ | "last_month"
68
+ | "last_three_months"
69
+ | "last_six_months"
70
+ | "last_twelve_months";
71
+
72
+ type QueryCriteriaElement = {
73
+ key: string;
74
+ operator: QueryCriteriaOperators;
75
+ value: QueryCriteriaValue;
76
+ conditions?: QueryCriteriaCondition[];
77
+ };
78
+ type QueryCriteriaLogical = {
79
+ operator: LogicalOperators;
80
+ value: QueryCriteriaValue[];
81
+ };
82
+ type BaseKey = string;
83
+ type BaseValue = any;
84
+ type FilterMap = SalesAnalyticsReportFilter;
85
+ type GroupByKeys = SalesAnalyticsGroupByIDs;
86
+ type FieldAccumulators = SalesAnalyticsFieldAccumulators;
87
+ type SortValue<Keys extends BaseKey> = {
88
+ field: Keys;
89
+ type: "asc" | "desc" | -1 | 1;
90
+ };
91
+ interface EnhancedQueryCriteriaElement<
92
+ TKeys extends keyof FilterMap,
93
+ TValue extends BaseValue = QueryCriteriaValue,
94
+ TCondition = QueryCriteriaCondition,
95
+ > {
96
+ key: TKeys;
97
+ operator: FilterMap[TKeys][number];
98
+ value: TValue;
99
+ conditions?: TCondition[];
100
+ }
101
+
102
+ type GroupByType<TGroupID extends keyof GroupByKeys, TFieldAccumulators> = {
103
+ _id: TGroupID;
104
+ fields: {
105
+ [K in GroupByKeys[TGroupID]]: {
106
+ key: K;
107
+ acc: K extends keyof TFieldAccumulators ? TFieldAccumulators[K] : never;
108
+ };
109
+ }[GroupByKeys[TGroupID]][];
110
+ };
111
+
112
+ interface GenericQuery<
113
+ TSortKey extends BaseKey,
114
+ TFilterMap extends FilterMap,
115
+ TGroupKey extends GroupByKeys,
116
+ TFieldAccumulators extends FieldAccumulators,
117
+ TProjectionKeys extends BaseKey,
118
+ TMaxAnyOfLength extends number = 1,
119
+ > {
120
+ maxAnyOfLength: TMaxAnyOfLength;
121
+ anyOf: {
122
+ criteria: {
123
+ [K in keyof TFilterMap]: EnhancedQueryCriteriaElement<
124
+ K & keyof FilterMap
125
+ >;
126
+ }[keyof TFilterMap][];
127
+ }[];
128
+ options?: {
129
+ sort?: SortValue<TSortKey>[];
130
+ limit?: number;
131
+ page?: number;
132
+ totals_summary?: "none" | "all" | "page";
133
+ without_currency?: boolean;
134
+ };
135
+ group?: GroupByType<
136
+ keyof TGroupKey & keyof GroupByKeys,
137
+ TFieldAccumulators
138
+ >[];
139
+ projection?: TProjectionKeys[];
140
+ columns?: ReportColumn[];
141
+ metadata?: any;
142
+ }
143
+
22
144
  export interface Headers {
23
145
  "api-key": string;
24
146
  "Content-Type": string;
@@ -205,6 +327,8 @@ export interface DefaultPaginationResult {
205
327
  prev_page_url: string | null;
206
328
  path: string;
207
329
  data: any[];
330
+ columns?: ReportColumn[];
331
+ keys?: ReportKey[];
208
332
  }
209
333
  export interface AgendaPaginationResult extends DefaultPaginationResult {
210
334
  meta?: {
@@ -6708,6 +6832,8 @@ export namespace Service {
6708
6832
  business_day?: string;
6709
6833
  bypass_freshness_window_code_entered?: boolean;
6710
6834
  promotion_freshness_window_exceeded?: boolean;
6835
+ createdAt?: string;
6836
+ updatedAt?: string;
6711
6837
  }
6712
6838
  export interface UpdateBody {
6713
6839
  integration_meta?: { [key: string]: any };
@@ -8499,8 +8625,8 @@ export namespace Service {
8499
8625
  }
8500
8626
  export type Data = ReceivingMaterialSchema;
8501
8627
  export interface CreateBody {
8502
- from: string;
8503
- to: string;
8628
+ from?: StringId;
8629
+ to: StringId;
8504
8630
  time: number;
8505
8631
  sync_id: string;
8506
8632
  variants: {
@@ -17118,6 +17244,15 @@ export namespace Service {
17118
17244
  [key: string]: any;
17119
17245
  }
17120
17246
 
17247
+ export type CreateBody = GenericQuery<
17248
+ SalesAnalyticsReportSortedKey,
17249
+ SalesAnalyticsReportFilter,
17250
+ SalesAnalyticsGroupByIDs,
17251
+ SalesAnalyticsFieldAccumulators,
17252
+ SalesAnalyticsReportProjectionKey,
17253
+ 1
17254
+ >;
17255
+
17121
17256
  export namespace Find {
17122
17257
  export type Params = DefaultPaginationQueryParams & {
17123
17258
  from_issue_date?: string;
@@ -17184,6 +17319,77 @@ export namespace Service {
17184
17319
  data: Data[];
17185
17320
  }
17186
17321
  }
17322
+
17323
+ export namespace Create {
17324
+ export type Params = DefaultPaginationQueryParams & {
17325
+ from_issue_date?: string;
17326
+ to_issue_date?: string;
17327
+ from_due_date?: string;
17328
+ to_due_date?: string;
17329
+ from_createdAt?: string;
17330
+ to_createdAt?: string;
17331
+ from_updatedAt?: string;
17332
+ to_updatedAt?: string;
17333
+ client?: StringId | StringId[];
17334
+ rep?: StringId | StringId[];
17335
+ creator?: StringId | StringId[];
17336
+ teams?: StringId | StringId[];
17337
+ status?: StatusOption | StatusOption[];
17338
+ promotion?: StringId | StringId[];
17339
+ product?: StringId | StringId[];
17340
+ variant?: StringId | StringId[];
17341
+ category?: StringId | StringId[];
17342
+ sub_category?: StringId | StringId[];
17343
+ brand?: StringId | StringId[];
17344
+ product_groups?: StringId | StringId[];
17345
+ class?: ClassOption | ClassOption[];
17346
+ with_brand?: boolean;
17347
+ with_category?: boolean;
17348
+ with_product_groups?: boolean;
17349
+ with_sub_category?: boolean;
17350
+ with_product_details?: boolean;
17351
+ with_variant_details?: boolean;
17352
+ with_teams?: boolean;
17353
+ with_promotions?: boolean;
17354
+ promotion_type?: PromotionTypeOption;
17355
+ with_balance?: boolean;
17356
+ groupBy?: GroupByOption | GroupByOption[];
17357
+ from_price?: number;
17358
+ to_price?: number;
17359
+ export?: string;
17360
+ chain?: StringId | StringId[];
17361
+ channel?: StringId | StringId[];
17362
+ CLIENT_TAGS?: StringId | StringId[];
17363
+ AREA_TAGS?: StringId | StringId[];
17364
+ tags?: StringId | StringId[];
17365
+ country?: string | string[];
17366
+ state?: string | string[];
17367
+ city?: string | string[];
17368
+ with_chain?: boolean;
17369
+ with_channel?: boolean;
17370
+ with_tags?: boolean;
17371
+ with_client_details?: boolean;
17372
+ admin?: StringId | StringId[];
17373
+ tax?: StringId | StringId[];
17374
+ with_original_price?: boolean;
17375
+ with_route?: boolean;
17376
+ route?: StringId | StringId[];
17377
+ with_external_serial_number?: boolean;
17378
+ with_workorder?: boolean;
17379
+ with_client_customFields?: boolean;
17380
+ with_rep_details?: boolean;
17381
+ with_rep_customFields?: boolean;
17382
+ sortBy?: SortByOption[];
17383
+ includeDocumentsCount?: boolean;
17384
+ };
17385
+
17386
+ export type Body = CreateBody;
17387
+ export interface Result extends DefaultPaginationResult {
17388
+ data: Data[];
17389
+ columns: ReportColumn[];
17390
+ keys: ReportKey[];
17391
+ }
17392
+ }
17187
17393
  }
17188
17394
 
17189
17395
  export namespace WorkorderAgenda {
@@ -0,0 +1,503 @@
1
+ import type { QueryCriteriaOperators } from "./index";
2
+
3
+ type SalesAnalyticsReportFilterKeys =
4
+ | "is_void"
5
+ | "client_id"
6
+ | "rep"
7
+ | "admin"
8
+ | "creator._id"
9
+ | "status"
10
+ | "time"
11
+ | "issue_date"
12
+ | "due_date"
13
+ | "createdAt"
14
+ | "updatedAt"
15
+ | "client.chain"
16
+ | "client.channel"
17
+ | "client.city"
18
+ | "client.state"
19
+ | "client.country"
20
+ | "client.tags"
21
+ | "client.CLIENT_TAGS"
22
+ | "client.AREA_TAGS"
23
+ | "product.brand"
24
+ | "product.category"
25
+ | "product.sub_category"
26
+ | "product.product_groups"
27
+ | "promotions._id"
28
+ | "items.measureunit._id"
29
+ | "items.return_reason"
30
+ | "items.variant.variant_id"
31
+ | "items.variant.product_id"
32
+ | "items.promotion_type"
33
+ | "items.class"
34
+ | "items.discounted_price"
35
+ | "items.tax._id"
36
+ | "items.tax.name"
37
+ | "items.tax.type"
38
+ | "return_items.tax.name"
39
+ | "return_items.tax.type"
40
+ | "return_items.measureunit._id"
41
+ | "return_items.return_reason"
42
+ | "return_items.variant.variant_id"
43
+ | "return_items.variant.product_id"
44
+ | "return_items.promotion_type"
45
+ | "return_items.class"
46
+ | "return_items.discounted_price"
47
+ | "return_items.tax._id"
48
+ | "teams"
49
+ | "route"
50
+ | "custom_status";
51
+
52
+ interface SalesAnalyticsReportFilter extends Record<
53
+ SalesAnalyticsReportFilterKeys,
54
+ QueryCriteriaOperators[]
55
+ > {
56
+ is_void: ["in"];
57
+ client_id: ["in", "nin"];
58
+ rep: ["in", "nin"];
59
+ admin: ["in", "nin"];
60
+ "creator._id": ["in", "nin"];
61
+ status: ["in", "nin"];
62
+ time: [
63
+ "between",
64
+ "last_seven_days",
65
+ "last_thirty_days",
66
+ "last_month",
67
+ "last_three_months",
68
+ "last_six_months",
69
+ "last_twelve_months",
70
+ "yesterday",
71
+ "today",
72
+ "gte",
73
+ "lte",
74
+ "lt",
75
+ "gt",
76
+ ];
77
+ issue_date: [
78
+ "between",
79
+ "last_seven_days",
80
+ "last_thirty_days",
81
+ "last_month",
82
+ "last_three_months",
83
+ "last_six_months",
84
+ "last_twelve_months",
85
+ "yesterday",
86
+ "today",
87
+ "gte",
88
+ "lte",
89
+ "lt",
90
+ "gt",
91
+ ];
92
+ due_date: [
93
+ "between",
94
+ "last_seven_days",
95
+ "last_thirty_days",
96
+ "last_month",
97
+ "last_three_months",
98
+ "last_six_months",
99
+ "last_twelve_months",
100
+ "yesterday",
101
+ "today",
102
+ "gte",
103
+ "lte",
104
+ "lt",
105
+ "gt",
106
+ ];
107
+ createdAt: [
108
+ "between",
109
+ "last_seven_days",
110
+ "last_thirty_days",
111
+ "last_month",
112
+ "last_three_months",
113
+ "last_six_months",
114
+ "last_twelve_months",
115
+ "yesterday",
116
+ "today",
117
+ "gte",
118
+ "lte",
119
+ "lt",
120
+ "gt",
121
+ ];
122
+ updatedAt: [
123
+ "between",
124
+ "last_seven_days",
125
+ "last_thirty_days",
126
+ "last_month",
127
+ "last_three_months",
128
+ "last_six_months",
129
+ "last_twelve_months",
130
+ "yesterday",
131
+ "today",
132
+ "gte",
133
+ "lte",
134
+ "lt",
135
+ "gt",
136
+ ];
137
+ "client.chain": ["in", "nin"];
138
+ "client.channel": ["in", "nin"];
139
+ "client.city": ["in", "nin"];
140
+ "client.state": ["in", "nin"];
141
+ "client.country": ["in", "nin"];
142
+ "client.tags": ["in", "nin"];
143
+ "client.CLIENT_TAGS": ["in", "nin"];
144
+ "client.AREA_TAGS": ["in", "nin"];
145
+ "product.brand": ["in", "nin"];
146
+ "product.category": ["in", "nin"];
147
+ "product.sub_category": ["in", "nin"];
148
+ "product.product_groups": ["in", "nin"];
149
+ "promotions._id": ["in", "nin"];
150
+ "items.promos": ["in", "nin"];
151
+ "items.measureunit._id": ["in", "nin"];
152
+ "items.return_reason": ["in", "nin"];
153
+ "items.variant.variant_id": ["in", "nin"];
154
+ "items.variant.product_id": ["in", "nin"];
155
+ "items.promotion_type": ["in", "nin"];
156
+ "items.class": ["in", "nin"];
157
+ "items.discounted_price": ["between"];
158
+ "items.tax._id": ["in", "nin"];
159
+ "items.tax.name": ["in", "nin"];
160
+ "items.tax.type": ["in", "nin"];
161
+ "return_items.tax.name": ["in", "nin"];
162
+ "return_items.tax.type": ["in", "nin"];
163
+ "return_items.measureunit._id": ["in", "nin"];
164
+ "return_items.return_reason": ["in", "nin"];
165
+ "return_items.variant.variant_id": ["in", "nin"];
166
+ "return_items.variant.product_id": ["in", "nin"];
167
+ "return_items.promotion_type": ["in", "nin"];
168
+ "return_items.class": ["in", "nin"];
169
+ "return_items.discounted_price": ["between"];
170
+ "return_items.tax._id": ["in", "nin"];
171
+ teams: ["in", "nin"];
172
+ route: ["in", "nin"];
173
+ custom_status: ["in", "nin"];
174
+ }
175
+
176
+ type SalesAnalyticsReportProjectionKey =
177
+ | "issue_date"
178
+ | "due_date"
179
+ | "serial_number"
180
+ | "advanced_serial_number"
181
+ | "external_serial_number"
182
+ | "return_serial_number"
183
+ | "client"
184
+ | "client_code"
185
+ | "creator"
186
+ | "rep_username"
187
+ | "teams"
188
+ | "route"
189
+ | "custom_status"
190
+ | "workorder_serial_number"
191
+ | "line_number"
192
+ | "lines"
193
+ | "status"
194
+ | "product"
195
+ | "product_local_name"
196
+ | "product_sku"
197
+ | "product_barcode"
198
+ | "variant"
199
+ | "variant_local_name"
200
+ | "variant_sku"
201
+ | "variant_barcode"
202
+ | "category"
203
+ | "sub_category"
204
+ | "brand"
205
+ | "product_groups"
206
+ | "promotion"
207
+ | "promotion_ref"
208
+ | "promotion_type"
209
+ | "class"
210
+ | "class"
211
+ | "return_reason"
212
+ | "chain"
213
+ | "channel"
214
+ | "country"
215
+ | "state"
216
+ | "city"
217
+ | "area_tags"
218
+ | "client_tags"
219
+ | "original_price"
220
+ | "tax"
221
+ | "visit_uuid"
222
+ | "base_unit_qty"
223
+ | "qty"
224
+ | "measureunit"
225
+ | "price"
226
+ | "tax"
227
+ | "line_total"
228
+ | "lineTotalAfterDeduction"
229
+ | "deduction"
230
+ | "total_before_tax"
231
+ | "discount_amount"
232
+ | "tax_total"
233
+ | "tax_total_after_deduction"
234
+ | "pre_total"
235
+ | "return_total"
236
+ | "total"
237
+ | "balance"
238
+ | "tax_total_after_deduction"
239
+ | `client_customFields.${string}`
240
+ | `rep_customFields.${string}`;
241
+
242
+ type SalesAnalyticsReportSortedKey =
243
+ | "issue_date"
244
+ | "due_date"
245
+ | "createdAt"
246
+ | "updatedAt"
247
+ | "time"
248
+ | "line_total"
249
+ | "pre_total"
250
+ | "return_total"
251
+ | "total"
252
+ | "balance"
253
+ | "items.tax_total_after_deduction"
254
+ | "items.lineTotalAfterDeduction"
255
+ | "items.price"
256
+ | "discount_amount"
257
+ | "tax_total"
258
+ | "items.base_unit_qty"
259
+ | "items.qty"
260
+ | "items.deduction";
261
+
262
+ type SalesAnalyticsGroupByIDs = {
263
+ client:
264
+ | "client_name"
265
+ | "client_id"
266
+ | "client_code"
267
+ | "client_local_name"
268
+ | "chain"
269
+ | "channel"
270
+ | "client_customFields"
271
+ | "tags"
272
+ | "country"
273
+ | "state"
274
+ | "city";
275
+ user:
276
+ | "creator_id"
277
+ | "creator_type"
278
+ | "creator_name"
279
+ | "creator_customFields"
280
+ | "creator_username";
281
+ issue_date: "issue_date";
282
+ due_date: "due_date";
283
+ serial_number:
284
+ | "serial_number"
285
+ | "external_serial_number"
286
+ | "return_serial_number";
287
+ product:
288
+ | "product_name"
289
+ | "product_local_name"
290
+ | "product"
291
+ | "price"
292
+ | "measureunit"
293
+ | "base_unit_qty"
294
+ | "qty"
295
+ | "discount_amount"
296
+ | "tax"
297
+ | "return_reason"
298
+ | "line_total"
299
+ | "tax_total"
300
+ | "total_before_tax"
301
+ | "lineTotalAfterDeduction"
302
+ | "deduction"
303
+ | "tax_total_after_deduction"
304
+ | "original_price"
305
+ | "product_sku"
306
+ | "product_barcode"
307
+ | "sub_category"
308
+ | "product_groups"
309
+ | "category"
310
+ | "brand";
311
+ variant:
312
+ | "variant_name"
313
+ | "variant_local_name"
314
+ | "variant_sku"
315
+ | "variant_barcode"
316
+ | "price"
317
+ | "measureunit"
318
+ | "base_unit_qty"
319
+ | "qty"
320
+ | "discount_amount"
321
+ | "tax"
322
+ | "return_reason"
323
+ | "line_total"
324
+ | "tax_total"
325
+ | "total_before_tax"
326
+ | "lineTotalAfterDeduction"
327
+ | "deduction"
328
+ | "tax_total_after_deduction"
329
+ | "original_price";
330
+ brand:
331
+ | "brand"
332
+ | "price"
333
+ | "measureunit"
334
+ | "base_unit_qty"
335
+ | "qty"
336
+ | "discount_amount"
337
+ | "tax"
338
+ | "return_reason"
339
+ | "line_total"
340
+ | "tax_total"
341
+ | "total_before_tax"
342
+ | "lineTotalAfterDeduction"
343
+ | "deduction"
344
+ | "tax_total_after_deduction"
345
+ | "original_price";
346
+ category:
347
+ | "category"
348
+ | "price"
349
+ | "measureunit"
350
+ | "base_unit_qty"
351
+ | "qty"
352
+ | "discount_amount"
353
+ | "tax"
354
+ | "return_reason"
355
+ | "line_total"
356
+ | "tax_total"
357
+ | "total_before_tax"
358
+ | "lineTotalAfterDeduction"
359
+ | "deduction"
360
+ | "tax_total_after_deduction"
361
+ | "original_price";
362
+ status: "status";
363
+ promotion_type:
364
+ | "promotion_type"
365
+ | "price"
366
+ | "measureunit"
367
+ | "base_unit_qty"
368
+ | "qty"
369
+ | "discount_amount"
370
+ | "tax"
371
+ | "return_reason"
372
+ | "line_total"
373
+ | "tax_total"
374
+ | "total_before_tax"
375
+ | "lineTotalAfterDeduction"
376
+ | "deduction"
377
+ | "tax_total_after_deduction"
378
+ | "original_price";
379
+ class:
380
+ | "class"
381
+ | "price"
382
+ | "measureunit"
383
+ | "base_unit_qty"
384
+ | "qty"
385
+ | "discount_amount"
386
+ | "tax"
387
+ | "return_reason"
388
+ | "line_total"
389
+ | "tax_total"
390
+ | "total_before_tax"
391
+ | "lineTotalAfterDeduction"
392
+ | "deduction"
393
+ | "tax_total_after_deduction"
394
+ | "original_price";
395
+ measureunit:
396
+ | "measureunit"
397
+ | "price"
398
+ | "base_unit_qty"
399
+ | "qty"
400
+ | "discount_amount"
401
+ | "tax"
402
+ | "return_reason"
403
+ | "line_total"
404
+ | "tax_total"
405
+ | "total_before_tax"
406
+ | "lineTotalAfterDeduction"
407
+ | "deduction"
408
+ | "tax_total_after_deduction"
409
+ | "original_price";
410
+ promotion:
411
+ | "promotions"
412
+ | "promotion_ref"
413
+ | "promotion_type"
414
+ | "price"
415
+ | "measureunit"
416
+ | "base_unit_qty"
417
+ | "qty"
418
+ | "discount_amount"
419
+ | "tax"
420
+ | "return_reason"
421
+ | "line_total"
422
+ | "tax_total"
423
+ | "total_before_tax"
424
+ | "lineTotalAfterDeduction"
425
+ | "deduction"
426
+ | "tax_total_after_deduction"
427
+ | "original_price";
428
+ chain: "client_name" | "chain";
429
+ channel: "client_name" | "channel";
430
+ city: "client_name" | "city";
431
+ state: "client_name" | "state";
432
+ country: "client_name" | "country";
433
+ route: "route";
434
+ custom_status: "custom_status";
435
+ teams: "teams";
436
+ };
437
+
438
+ type SalesAnalyticsFieldAccumulators = {
439
+ client_name: "first" | "last";
440
+ client_id: "first" | "last";
441
+ client_code: "first" | "last";
442
+ client_local_name: "first" | "last";
443
+ chain: "first" | "last";
444
+ channel: "first" | "last";
445
+ client_customFields: "first" | "last";
446
+ tags: "first" | "last";
447
+ country: "first" | "last";
448
+ state: "first" | "last";
449
+ city: "first" | "last";
450
+ creator_id: "first" | "last";
451
+ creator_type: "first" | "last";
452
+ creator_name: "first" | "last";
453
+ creator_customFields: "first" | "last";
454
+ creator_username: "first" | "last";
455
+ issue_date: "first" | "last";
456
+ due_date: "first" | "last";
457
+ serial_number: "first" | "last";
458
+ external_serial_number: "first" | "last";
459
+ return_serial_number: "first" | "last";
460
+ price: "sum" | "avg" | "max" | "min";
461
+ base_unit_qty: "sum" | "avg" | "max" | "min";
462
+ qty: "sum" | "avg" | "max" | "min";
463
+ discount_amount: "sum" | "avg" | "max" | "min";
464
+ line_total: "sum" | "avg" | "max" | "min";
465
+ tax_total: "sum" | "avg" | "max" | "min";
466
+ total_before_tax: "sum" | "avg" | "ma" | "min";
467
+ lineTotalAfterDeduction: "sum" | "avg" | "max" | "min";
468
+ deduction: "sum" | "avg" | "max" | "min";
469
+ tax_total_after_deduction: "sum" | "avg" | "max" | "min";
470
+ original_price: "avg" | "max" | "min" | "sum";
471
+ measureunit: "addToSet" | "first" | "last";
472
+ tax: "addToSet" | "first" | "last";
473
+ return_reason: "addToSet" | "first" | "last";
474
+ promotion_type: "addToSet" | "first" | "last";
475
+ product_name: "first" | "last";
476
+ product_local_name: "first" | "last";
477
+ product: "first" | "last";
478
+ product_sku: "first" | "last";
479
+ product_barcode: "first" | "last";
480
+ sub_category: "first" | "last";
481
+ product_groups: "first" | "last";
482
+ category: "first" | "last";
483
+ brand: "first" | "last";
484
+ variant_name: "first" | "last";
485
+ variant_local_name: "first" | "last";
486
+ variant_sku: "first" | "last";
487
+ variant_barcode: "first" | "last";
488
+ status: "first" | "last";
489
+ class: "first" | "last";
490
+ promotions: "first" | "last";
491
+ promotion_ref: "first" | "last";
492
+ route: "first" | "last";
493
+ custom_status: "first" | "last";
494
+ teams: "first" | "last";
495
+ };
496
+
497
+ export {
498
+ SalesAnalyticsReportSortedKey,
499
+ SalesAnalyticsGroupByIDs,
500
+ SalesAnalyticsFieldAccumulators,
501
+ SalesAnalyticsReportFilter,
502
+ SalesAnalyticsReportProjectionKey,
503
+ };