cmp-aws-database 2.1.2-proddebug.10 → 2.1.2-proddebug.12
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/dist/config/table-names.d.ts +4 -0
- package/dist/config/table-names.js +5 -1
- package/dist/customer-user/add-ons/add-ons-model.d.ts +1 -0
- package/dist/customer-user/add-ons/add-ons-model.js +5 -1
- package/dist/customer-user/browse-history/browse-history-model.d.ts +1 -0
- package/dist/customer-user/browse-history/browse-history-model.js +5 -1
- package/dist/customer-user/cart/cart-model.d.ts +1 -0
- package/dist/customer-user/cart/cart-model.js +5 -1
- package/dist/customer-user/items-bundle/items-bundle-dao.d.ts +72 -0
- package/dist/customer-user/items-bundle/items-bundle-dao.js +117 -0
- package/dist/customer-user/items-bundle/items-bundle-model.d.ts +23 -0
- package/dist/customer-user/items-bundle/items-bundle-model.js +62 -0
- package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-dao.d.ts +140 -0
- package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-dao.js +253 -0
- package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-model.d.ts +63 -0
- package/dist/customer-user/lsq-priority-updation/lsq-priority-updation-model.js +135 -0
- package/dist/customer-user/order-module/plate-order/plate-order-model.d.ts +1 -0
- package/dist/customer-user/order-module/plate-order/plate-order-model.js +5 -1
- package/dist/customer-user/replace-items/replace-items-model.d.ts +1 -0
- package/dist/customer-user/replace-items/replace-items-model.js +5 -1
- package/package.json +1 -1
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { GenericDynamooseDAO } from "../../base-dynamoose-dao";
|
|
2
|
+
import { AuthContext } from "../../base-dynamoose-model";
|
|
3
|
+
import { CreateLsqPriorityUpdationInput, LsqPassedStr, LsqPriorityUpdation } from "./lsq-priority-updation-model";
|
|
4
|
+
type ListResult = {
|
|
5
|
+
items: LsqPriorityUpdation[];
|
|
6
|
+
nextToken?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* DAO for LeadSquared priority-updation queue.
|
|
10
|
+
*
|
|
11
|
+
* Table keys: `lsqPriorityUpdationId` (PK).
|
|
12
|
+
* Lookups:
|
|
13
|
+
* - `opportunityIdIndex` → by LeadSquared `opportunityId`
|
|
14
|
+
* - `leadNumberIndex` → by lead phone/number
|
|
15
|
+
* - `statusIndex` → by record `status`
|
|
16
|
+
* - `passedStrIndex` → unprocessed queue (`passedStr` + `priorityRank`)
|
|
17
|
+
* Processed rows are deleted from the table (not soft-flagged).
|
|
18
|
+
*/
|
|
19
|
+
declare class LsqPriorityUpdationDao extends GenericDynamooseDAO<LsqPriorityUpdation> {
|
|
20
|
+
constructor();
|
|
21
|
+
private normalizeInput;
|
|
22
|
+
/**
|
|
23
|
+
* Creates / queues one opportunity for priority updation.
|
|
24
|
+
*
|
|
25
|
+
* Use when: LeadSquared webhook receives a new/updated opportunity.
|
|
26
|
+
* - `lsqPriorityUpdationId` auto-generates if omitted.
|
|
27
|
+
* - Auto-fills `passedStr` from `passed` (`false` → `"FALSE"`).
|
|
28
|
+
* - Auto-fills `priorityRank` from `priority` (P1→1 … P5→5).
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* await lsqPriorityUpdationDao.save({
|
|
32
|
+
* opportunityId: "opp-123",
|
|
33
|
+
* leadNumber: "9876543210",
|
|
34
|
+
* passed: false,
|
|
35
|
+
* priority: "P1",
|
|
36
|
+
* urgency: "U2",
|
|
37
|
+
* value: "V3",
|
|
38
|
+
* eventDate: "2026-07-30",
|
|
39
|
+
* payload: { raw: "webhook-body" }
|
|
40
|
+
* });
|
|
41
|
+
*/
|
|
42
|
+
save: (item: CreateLsqPriorityUpdationInput, authContext?: AuthContext) => Promise<LsqPriorityUpdation>;
|
|
43
|
+
/**
|
|
44
|
+
* Updates an existing queued record by `lsqPriorityUpdationId`.
|
|
45
|
+
*
|
|
46
|
+
* Use when: recalculating priority/urgency/value (e.g. midnight job) or
|
|
47
|
+
* refreshing webhook payload fields.
|
|
48
|
+
* - Re-syncs `passedStr` / `priorityRank` when `passed` / `priority` change.
|
|
49
|
+
* - Always refreshes `updatedAt`.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* await lsqPriorityUpdationDao.update("lsq-uuid", {
|
|
53
|
+
* priority: "P2",
|
|
54
|
+
* urgency: "U1",
|
|
55
|
+
* value: "V2"
|
|
56
|
+
* });
|
|
57
|
+
*/
|
|
58
|
+
update: (lsqPriorityUpdationId: string, updates: Partial<LsqPriorityUpdation>, authContext?: AuthContext) => Promise<LsqPriorityUpdation>;
|
|
59
|
+
/**
|
|
60
|
+
* Fetches one queue record by table primary key.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* const row = await lsqPriorityUpdationDao.getById("lsq-uuid");
|
|
64
|
+
*/
|
|
65
|
+
getById: (lsqPriorityUpdationId: string) => Promise<LsqPriorityUpdation | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Fetches one queue record by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* const row = await lsqPriorityUpdationDao.getByOpportunityId("opp-123");
|
|
71
|
+
*/
|
|
72
|
+
getByOpportunityId: (opportunityId: string) => Promise<LsqPriorityUpdation | null>;
|
|
73
|
+
/**
|
|
74
|
+
* Lists queue records by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* const { items } = await lsqPriorityUpdationDao.listByOpportunityId("opp-123");
|
|
78
|
+
*/
|
|
79
|
+
listByOpportunityId: (opportunityId: string, limit?: number, token?: string) => Promise<ListResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Fetches one queue record by `leadNumber` (GSI `leadNumberIndex`).
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* const row = await lsqPriorityUpdationDao.getByLeadNumber("9876543210");
|
|
85
|
+
*/
|
|
86
|
+
getByLeadNumber: (leadNumber: string) => Promise<LsqPriorityUpdation | null>;
|
|
87
|
+
/**
|
|
88
|
+
* Lists queue records by `leadNumber` (GSI `leadNumberIndex`).
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* const { items } = await lsqPriorityUpdationDao.listByLeadNumber("9876543210");
|
|
92
|
+
*/
|
|
93
|
+
listByLeadNumber: (leadNumber: string, limit?: number, token?: string) => Promise<ListResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Lists queue records by `status` (GSI `statusIndex`).
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* const { items } = await lsqPriorityUpdationDao.listByStatus("PENDING", 25);
|
|
99
|
+
*/
|
|
100
|
+
listByStatus: (status: string, limit?: number, token?: string) => Promise<ListResult>;
|
|
101
|
+
/**
|
|
102
|
+
* Lists queued (unprocessed) opportunities sorted by `priorityRank` ascending.
|
|
103
|
+
*
|
|
104
|
+
* Use when: worker pulls next batch of unassigned LSQ priority updates.
|
|
105
|
+
* Queries GSI `passedStrIndex` with `passedStr = "FALSE"`.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* const { items, nextToken } = await lsqPriorityUpdationDao.listUnprocessed(25);
|
|
109
|
+
*/
|
|
110
|
+
listUnprocessed: (limit?: number, token?: string) => Promise<ListResult>;
|
|
111
|
+
/**
|
|
112
|
+
* Lists opportunities by `passedStr` (GSI `passedStrIndex`), sorted by `priorityRank`.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* const queued = await lsqPriorityUpdationDao.listByPassedStr("FALSE", 25);
|
|
116
|
+
*/
|
|
117
|
+
listByPassedStr: (passedStr: LsqPassedStr, limit?: number, token?: string) => Promise<ListResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Marks a queue row as processed by deleting it via primary key.
|
|
120
|
+
*
|
|
121
|
+
* Use when: worker successfully applied priority update in LeadSquared.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* await lsqPriorityUpdationDao.markProcessed("lsq-uuid");
|
|
125
|
+
*/
|
|
126
|
+
markProcessed: (lsqPriorityUpdationId: string) => Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Marks processed by LeadSquared `opportunityId` (lookup GSI, then delete by PK).
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* await lsqPriorityUpdationDao.markProcessedByOpportunityId("opp-123");
|
|
132
|
+
*/
|
|
133
|
+
markProcessedByOpportunityId: (opportunityId: string) => Promise<boolean>;
|
|
134
|
+
/**
|
|
135
|
+
* Deletes one queue record by primary key.
|
|
136
|
+
*/
|
|
137
|
+
deleteById: (lsqPriorityUpdationId: string) => Promise<void>;
|
|
138
|
+
}
|
|
139
|
+
export declare const lsqPriorityUpdationDao: LsqPriorityUpdationDao;
|
|
140
|
+
export {};
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.lsqPriorityUpdationDao = void 0;
|
|
7
|
+
const dynamoose_1 = __importDefault(require("dynamoose"));
|
|
8
|
+
const base_dynamoose_dao_1 = require("../../base-dynamoose-dao");
|
|
9
|
+
const lsq_priority_updation_model_1 = require("./lsq-priority-updation-model");
|
|
10
|
+
/**
|
|
11
|
+
* DAO for LeadSquared priority-updation queue.
|
|
12
|
+
*
|
|
13
|
+
* Table keys: `lsqPriorityUpdationId` (PK).
|
|
14
|
+
* Lookups:
|
|
15
|
+
* - `opportunityIdIndex` → by LeadSquared `opportunityId`
|
|
16
|
+
* - `leadNumberIndex` → by lead phone/number
|
|
17
|
+
* - `statusIndex` → by record `status`
|
|
18
|
+
* - `passedStrIndex` → unprocessed queue (`passedStr` + `priorityRank`)
|
|
19
|
+
* Processed rows are deleted from the table (not soft-flagged).
|
|
20
|
+
*/
|
|
21
|
+
class LsqPriorityUpdationDao extends base_dynamoose_dao_1.GenericDynamooseDAO {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(lsq_priority_updation_model_1.LsqPriorityUpdationModel, "lsqPriorityUpdationId");
|
|
24
|
+
this.normalizeInput = (item) => {
|
|
25
|
+
const passed = item.passed ?? false;
|
|
26
|
+
const priority = item.priority;
|
|
27
|
+
return {
|
|
28
|
+
...item,
|
|
29
|
+
passed,
|
|
30
|
+
passedStr: item.passedStr ?? (0, lsq_priority_updation_model_1.toPassedStr)(passed),
|
|
31
|
+
priorityRank: item.priorityRank ?? (priority ? (0, lsq_priority_updation_model_1.toPriorityRank)(priority) : undefined)
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Creates / queues one opportunity for priority updation.
|
|
36
|
+
*
|
|
37
|
+
* Use when: LeadSquared webhook receives a new/updated opportunity.
|
|
38
|
+
* - `lsqPriorityUpdationId` auto-generates if omitted.
|
|
39
|
+
* - Auto-fills `passedStr` from `passed` (`false` → `"FALSE"`).
|
|
40
|
+
* - Auto-fills `priorityRank` from `priority` (P1→1 … P5→5).
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* await lsqPriorityUpdationDao.save({
|
|
44
|
+
* opportunityId: "opp-123",
|
|
45
|
+
* leadNumber: "9876543210",
|
|
46
|
+
* passed: false,
|
|
47
|
+
* priority: "P1",
|
|
48
|
+
* urgency: "U2",
|
|
49
|
+
* value: "V3",
|
|
50
|
+
* eventDate: "2026-07-30",
|
|
51
|
+
* payload: { raw: "webhook-body" }
|
|
52
|
+
* });
|
|
53
|
+
*/
|
|
54
|
+
this.save = async (item, authContext) => {
|
|
55
|
+
return super.save(this.normalizeInput(item), authContext);
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Updates an existing queued record by `lsqPriorityUpdationId`.
|
|
59
|
+
*
|
|
60
|
+
* Use when: recalculating priority/urgency/value (e.g. midnight job) or
|
|
61
|
+
* refreshing webhook payload fields.
|
|
62
|
+
* - Re-syncs `passedStr` / `priorityRank` when `passed` / `priority` change.
|
|
63
|
+
* - Always refreshes `updatedAt`.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* await lsqPriorityUpdationDao.update("lsq-uuid", {
|
|
67
|
+
* priority: "P2",
|
|
68
|
+
* urgency: "U1",
|
|
69
|
+
* value: "V2"
|
|
70
|
+
* });
|
|
71
|
+
*/
|
|
72
|
+
this.update = async (lsqPriorityUpdationId, updates, authContext) => {
|
|
73
|
+
const nextUpdates = {
|
|
74
|
+
...updates,
|
|
75
|
+
updated_time: new Date(),
|
|
76
|
+
updated_user: authContext?.userSub
|
|
77
|
+
};
|
|
78
|
+
if (typeof updates.passed === "boolean") {
|
|
79
|
+
nextUpdates.passedStr = updates.passedStr ?? (0, lsq_priority_updation_model_1.toPassedStr)(updates.passed);
|
|
80
|
+
}
|
|
81
|
+
if (updates.priority) {
|
|
82
|
+
nextUpdates.priorityRank = updates.priorityRank ?? (0, lsq_priority_updation_model_1.toPriorityRank)(updates.priority);
|
|
83
|
+
}
|
|
84
|
+
const updated = await lsq_priority_updation_model_1.LsqPriorityUpdationModel.update({ lsqPriorityUpdationId }, nextUpdates, {
|
|
85
|
+
condition: new dynamoose_1.default.Condition().attribute("lsqPriorityUpdationId").exists()
|
|
86
|
+
});
|
|
87
|
+
return updated;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Fetches one queue record by table primary key.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* const row = await lsqPriorityUpdationDao.getById("lsq-uuid");
|
|
94
|
+
*/
|
|
95
|
+
this.getById = async (lsqPriorityUpdationId) => this.get(lsqPriorityUpdationId);
|
|
96
|
+
/**
|
|
97
|
+
* Fetches one queue record by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* const row = await lsqPriorityUpdationDao.getByOpportunityId("opp-123");
|
|
101
|
+
*/
|
|
102
|
+
this.getByOpportunityId = async (opportunityId) => {
|
|
103
|
+
const result = await this.listByOpportunityId(opportunityId, 1);
|
|
104
|
+
return result.items[0] ?? null;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Lists queue records by LeadSquared `opportunityId` (GSI `opportunityIdIndex`).
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* const { items } = await lsqPriorityUpdationDao.listByOpportunityId("opp-123");
|
|
111
|
+
*/
|
|
112
|
+
this.listByOpportunityId = async (opportunityId, limit, token) => {
|
|
113
|
+
const decodedToken = this.decode(token);
|
|
114
|
+
let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("opportunityId")
|
|
115
|
+
.eq(opportunityId)
|
|
116
|
+
.using("opportunityIdIndex");
|
|
117
|
+
if (decodedToken) {
|
|
118
|
+
queryBuilder = queryBuilder.startAt(decodedToken);
|
|
119
|
+
}
|
|
120
|
+
if (typeof limit === "number") {
|
|
121
|
+
queryBuilder = queryBuilder.limit(limit);
|
|
122
|
+
}
|
|
123
|
+
const queryResult = await queryBuilder.exec();
|
|
124
|
+
return {
|
|
125
|
+
items: queryResult,
|
|
126
|
+
nextToken: await this.encode(queryResult.lastKey)
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Fetches one queue record by `leadNumber` (GSI `leadNumberIndex`).
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* const row = await lsqPriorityUpdationDao.getByLeadNumber("9876543210");
|
|
134
|
+
*/
|
|
135
|
+
this.getByLeadNumber = async (leadNumber) => {
|
|
136
|
+
const result = await this.listByLeadNumber(leadNumber, 1);
|
|
137
|
+
return result.items[0] ?? null;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Lists queue records by `leadNumber` (GSI `leadNumberIndex`).
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* const { items } = await lsqPriorityUpdationDao.listByLeadNumber("9876543210");
|
|
144
|
+
*/
|
|
145
|
+
this.listByLeadNumber = async (leadNumber, limit, token) => {
|
|
146
|
+
const decodedToken = this.decode(token);
|
|
147
|
+
let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("leadNumber")
|
|
148
|
+
.eq(leadNumber)
|
|
149
|
+
.using("leadNumberIndex");
|
|
150
|
+
if (decodedToken) {
|
|
151
|
+
queryBuilder = queryBuilder.startAt(decodedToken);
|
|
152
|
+
}
|
|
153
|
+
if (typeof limit === "number") {
|
|
154
|
+
queryBuilder = queryBuilder.limit(limit);
|
|
155
|
+
}
|
|
156
|
+
const queryResult = await queryBuilder.exec();
|
|
157
|
+
return {
|
|
158
|
+
items: queryResult,
|
|
159
|
+
nextToken: await this.encode(queryResult.lastKey)
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Lists queue records by `status` (GSI `statusIndex`).
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* const { items } = await lsqPriorityUpdationDao.listByStatus("PENDING", 25);
|
|
167
|
+
*/
|
|
168
|
+
this.listByStatus = async (status, limit, token) => {
|
|
169
|
+
const decodedToken = this.decode(token);
|
|
170
|
+
let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("status")
|
|
171
|
+
.eq(status)
|
|
172
|
+
.using("statusIndex");
|
|
173
|
+
if (decodedToken) {
|
|
174
|
+
queryBuilder = queryBuilder.startAt(decodedToken);
|
|
175
|
+
}
|
|
176
|
+
if (typeof limit === "number") {
|
|
177
|
+
queryBuilder = queryBuilder.limit(limit);
|
|
178
|
+
}
|
|
179
|
+
const queryResult = await queryBuilder.exec();
|
|
180
|
+
return {
|
|
181
|
+
items: queryResult,
|
|
182
|
+
nextToken: await this.encode(queryResult.lastKey)
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Lists queued (unprocessed) opportunities sorted by `priorityRank` ascending.
|
|
187
|
+
*
|
|
188
|
+
* Use when: worker pulls next batch of unassigned LSQ priority updates.
|
|
189
|
+
* Queries GSI `passedStrIndex` with `passedStr = "FALSE"`.
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* const { items, nextToken } = await lsqPriorityUpdationDao.listUnprocessed(25);
|
|
193
|
+
*/
|
|
194
|
+
this.listUnprocessed = async (limit, token) => this.listByPassedStr(lsq_priority_updation_model_1.LSQ_PASSED_STR.FALSE, limit, token);
|
|
195
|
+
/**
|
|
196
|
+
* Lists opportunities by `passedStr` (GSI `passedStrIndex`), sorted by `priorityRank`.
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* const queued = await lsqPriorityUpdationDao.listByPassedStr("FALSE", 25);
|
|
200
|
+
*/
|
|
201
|
+
this.listByPassedStr = async (passedStr, limit, token) => {
|
|
202
|
+
const decodedToken = this.decode(token);
|
|
203
|
+
let queryBuilder = lsq_priority_updation_model_1.LsqPriorityUpdationModel.query("passedStr")
|
|
204
|
+
.eq(passedStr)
|
|
205
|
+
.using("passedStrIndex")
|
|
206
|
+
.sort("ascending");
|
|
207
|
+
if (decodedToken) {
|
|
208
|
+
queryBuilder = queryBuilder.startAt(decodedToken);
|
|
209
|
+
}
|
|
210
|
+
if (typeof limit === "number") {
|
|
211
|
+
queryBuilder = queryBuilder.limit(limit);
|
|
212
|
+
}
|
|
213
|
+
const queryResult = await queryBuilder.exec();
|
|
214
|
+
return {
|
|
215
|
+
items: queryResult,
|
|
216
|
+
nextToken: await this.encode(queryResult.lastKey)
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* Marks a queue row as processed by deleting it via primary key.
|
|
221
|
+
*
|
|
222
|
+
* Use when: worker successfully applied priority update in LeadSquared.
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* await lsqPriorityUpdationDao.markProcessed("lsq-uuid");
|
|
226
|
+
*/
|
|
227
|
+
this.markProcessed = async (lsqPriorityUpdationId) => {
|
|
228
|
+
await this.delete(lsqPriorityUpdationId);
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* Marks processed by LeadSquared `opportunityId` (lookup GSI, then delete by PK).
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* await lsqPriorityUpdationDao.markProcessedByOpportunityId("opp-123");
|
|
235
|
+
*/
|
|
236
|
+
this.markProcessedByOpportunityId = async (opportunityId) => {
|
|
237
|
+
const row = await this.getByOpportunityId(opportunityId);
|
|
238
|
+
if (!row) {
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
await this.delete(row.lsqPriorityUpdationId);
|
|
242
|
+
return true;
|
|
243
|
+
};
|
|
244
|
+
/**
|
|
245
|
+
* Deletes one queue record by primary key.
|
|
246
|
+
*/
|
|
247
|
+
this.deleteById = async (lsqPriorityUpdationId) => {
|
|
248
|
+
await this.delete(lsqPriorityUpdationId);
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
exports.lsqPriorityUpdationDao = new LsqPriorityUpdationDao();
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHNxLXByaW9yaXR5LXVwZGF0aW9uLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXN0b21lci11c2VyL2xzcS1wcmlvcml0eS11cGRhdGlvbi9sc3EtcHJpb3JpdHktdXBkYXRpb24tZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUFrQztBQUNsQyxpRUFBMEU7QUFFMUUsK0VBU3VDO0FBT3ZDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLHNCQUF1QixTQUFRLHdDQUF3QztJQUN6RTtRQUNJLEtBQUssQ0FBQyxzREFBd0IsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBR3JELG1CQUFjLEdBQUcsQ0FBQyxJQUFvQyxFQUF1QixFQUFFO1lBQ25GLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1lBQ3BDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUF1QixDQUFDO1lBRTlDLE9BQU87Z0JBQ0gsR0FBRyxJQUFJO2dCQUNQLE1BQU07Z0JBQ04sU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBQSx5Q0FBVyxFQUFDLE1BQU0sQ0FBQztnQkFDaEQsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUEsNENBQWMsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQ2hFLENBQUM7UUFDN0IsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FtQkc7UUFDSCxTQUFJLEdBQUcsS0FBSyxFQUNSLElBQW9DLEVBQ3BDLFdBQXlCLEVBQ0csRUFBRTtZQUM5QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7Ozs7Ozs7V0FjRztR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Q0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QyxPQUFPO2dCQUNILEtBQUssRUFBRSxXQUErQztnQkFDdEQsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBZ0MsQ0FBQzthQUM3RSxDQUFDO1FBQ04sQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7V0FPRztRQUNILGtCQUFhLEdBQUcsS0FBSyxFQUFFLHFCQUE2QixFQUFpQixFQUFFO1lBQ25FLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQztRQUVGOzs7OztXQUtHO1FBQ0gsaUNBQTRCLEdBQUcsS0FBSyxFQUFFLGFBQXFCLEVBQW9CLEVBQUU7WUFDN0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNQLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDO1FBRUY7O1dBRUc7UUFDSCxlQUFVLEdBQUcsS0FBSyxFQUFFLHFCQUE2QixFQUFpQixFQUFFO1lBQ2hFLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQztJQWhSRixDQUFDO0NBaVJKO0FBRVksUUFBQSxzQkFBc0IsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IER5bmFtb0tleSwgR2VuZXJpY0R5bmFtb29zZURBTyB9IGZyb20gXCIuLi8uLi9iYXNlLWR5bmFtb29zZS1kYW9cIjtcbmltcG9ydCB7IEF1dGhDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2Jhc2UtZHluYW1vb3NlLW1vZGVsXCI7XG5pbXBvcnQge1xuICAgIENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCxcbiAgICBMU1FfUEFTU0VEX1NUUixcbiAgICBMc3FQYXNzZWRTdHIsXG4gICAgTHNxUHJpb3JpdHksXG4gICAgTHNxUHJpb3JpdHlVcGRhdGlvbixcbiAgICBMc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwsXG4gICAgdG9QYXNzZWRTdHIsXG4gICAgdG9Qcmlvcml0eVJhbmtcbn0gZnJvbSBcIi4vbHNxLXByaW9yaXR5LXVwZGF0aW9uLW1vZGVsXCI7XG5cbnR5cGUgTGlzdFJlc3VsdCA9IHtcbiAgICBpdGVtczogTHNxUHJpb3JpdHlVcGRhdGlvbltdO1xuICAgIG5leHRUb2tlbj86IHN0cmluZztcbn07XG5cbi8qKlxuICogREFPIGZvciBMZWFkU3F1YXJlZCBwcmlvcml0eS11cGRhdGlvbiBxdWV1ZS5cbiAqXG4gKiBUYWJsZSBrZXlzOiBgbHNxUHJpb3JpdHlVcGRhdGlvbklkYCAoUEspLlxuICogTG9va3VwczpcbiAqIC0gYG9wcG9ydHVuaXR5SWRJbmRleGAg4oaSIGJ5IExlYWRTcXVhcmVkIGBvcHBvcnR1bml0eUlkYFxuICogLSBgbGVhZE51bWJlckluZGV4YCDihpIgYnkgbGVhZCBwaG9uZS9udW1iZXJcbiAqIC0gYHN0YXR1c0luZGV4YCDihpIgYnkgcmVjb3JkIGBzdGF0dXNgXG4gKiAtIGBwYXNzZWRTdHJJbmRleGAg4oaSIHVucHJvY2Vzc2VkIHF1ZXVlIChgcGFzc2VkU3RyYCArIGBwcmlvcml0eVJhbmtgKVxuICogUHJvY2Vzc2VkIHJvd3MgYXJlIGRlbGV0ZWQgZnJvbSB0aGUgdGFibGUgKG5vdCBzb2Z0LWZsYWdnZWQpLlxuICovXG5jbGFzcyBMc3FQcmlvcml0eVVwZGF0aW9uRGFvIGV4dGVuZHMgR2VuZXJpY0R5bmFtb29zZURBTzxMc3FQcmlvcml0eVVwZGF0aW9uPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbCwgXCJsc3FQcmlvcml0eVVwZGF0aW9uSWRcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBub3JtYWxpemVJbnB1dCA9IChpdGVtOiBDcmVhdGVMc3FQcmlvcml0eVVwZGF0aW9uSW5wdXQpOiBMc3FQcmlvcml0eVVwZGF0aW9uID0+IHtcbiAgICAgICAgY29uc3QgcGFzc2VkID0gaXRlbS5wYXNzZWQgPz8gZmFsc2U7XG4gICAgICAgIGNvbnN0IHByaW9yaXR5ID0gaXRlbS5wcmlvcml0eSBhcyBMc3FQcmlvcml0eTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgIHBhc3NlZCxcbiAgICAgICAgICAgIHBhc3NlZFN0cjogaXRlbS5wYXNzZWRTdHIgPz8gdG9QYXNzZWRTdHIocGFzc2VkKSxcbiAgICAgICAgICAgIHByaW9yaXR5UmFuazogaXRlbS5wcmlvcml0eVJhbmsgPz8gKHByaW9yaXR5ID8gdG9Qcmlvcml0eVJhbmsocHJpb3JpdHkpIDogdW5kZWZpbmVkKVxuICAgICAgICB9IGFzIExzcVByaW9yaXR5VXBkYXRpb247XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgLyBxdWV1ZXMgb25lIG9wcG9ydHVuaXR5IGZvciBwcmlvcml0eSB1cGRhdGlvbi5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiBMZWFkU3F1YXJlZCB3ZWJob29rIHJlY2VpdmVzIGEgbmV3L3VwZGF0ZWQgb3Bwb3J0dW5pdHkuXG4gICAgICogLSBgbHNxUHJpb3JpdHlVcGRhdGlvbklkYCBhdXRvLWdlbmVyYXRlcyBpZiBvbWl0dGVkLlxuICAgICAqIC0gQXV0by1maWxscyBgcGFzc2VkU3RyYCBmcm9tIGBwYXNzZWRgIChgZmFsc2VgIOKGkiBgXCJGQUxTRVwiYCkuXG4gICAgICogLSBBdXRvLWZpbGxzIGBwcmlvcml0eVJhbmtgIGZyb20gYHByaW9yaXR5YCAoUDHihpIxIOKApiBQNeKGkjUpLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLnNhdmUoe1xuICAgICAqICAgICBvcHBvcnR1bml0eUlkOiBcIm9wcC0xMjNcIixcbiAgICAgKiAgICAgbGVhZE51bWJlcjogXCI5ODc2NTQzMjEwXCIsXG4gICAgICogICAgIHBhc3NlZDogZmFsc2UsXG4gICAgICogICAgIHByaW9yaXR5OiBcIlAxXCIsXG4gICAgICogICAgIHVyZ2VuY3k6IFwiVTJcIixcbiAgICAgKiAgICAgdmFsdWU6IFwiVjNcIixcbiAgICAgKiAgICAgZXZlbnREYXRlOiBcIjIwMjYtMDctMzBcIixcbiAgICAgKiAgICAgcGF5bG9hZDogeyByYXc6IFwid2ViaG9vay1ib2R5XCIgfVxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHNhdmUgPSBhc3luYyAoXG4gICAgICAgIGl0ZW06IENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCxcbiAgICAgICAgYXV0aENvbnRleHQ/OiBBdXRoQ29udGV4dFxuICAgICk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbj4gPT4ge1xuICAgICAgICByZXR1cm4gc3VwZXIuc2F2ZSh0aGlzLm5vcm1hbGl6ZUlucHV0KGl0ZW0pLCBhdXRoQ29udGV4dCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcXVldWVkIHJlY29yZCBieSBgbHNxUHJpb3JpdHlVcGRhdGlvbklkYC5cbiAgICAgKlxuICAgICAqIFVzZSB3aGVuOiByZWNhbGN1bGF0aW5nIHByaW9yaXR5L3VyZ2VuY3kvdmFsdWUgKGUuZy4gbWlkbmlnaHQgam9iKSBvclxuICAgICAqIHJlZnJlc2hpbmcgd2ViaG9vayBwYXlsb2FkIGZpZWxkcy5cbiAgICAgKiAtIFJlLXN5bmNzIGBwYXNzZWRTdHJgIC8gYHByaW9yaXR5UmFua2Agd2hlbiBgcGFzc2VkYCAvIGBwcmlvcml0eWAgY2hhbmdlLlxuICAgICAqIC0gQWx3YXlzIHJlZnJlc2hlcyBgdXBkYXRlZEF0YC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby51cGRhdGUoXCJsc3EtdXVpZFwiLCB7XG4gICAgICogICAgIHByaW9yaXR5OiBcIlAyXCIsXG4gICAgICogICAgIHVyZ2VuY3k6IFwiVTFcIixcbiAgICAgKiAgICAgdmFsdWU6IFwiVjJcIlxuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHVwZGF0ZSA9IGFzeW5jIChcbiAgICAgICAgbHNxUHJpb3JpdHlVcGRhdGlvbklkOiBzdHJpbmcsXG4gICAgICAgIHVwZGF0ZXM6IFBhcnRpYWw8THNxUHJpb3JpdHlVcGRhdGlvbj4sXG4gICAgICAgIGF1dGhDb250ZXh0PzogQXV0aENvbnRleHRcbiAgICApOiBQcm9taXNlPExzcVByaW9yaXR5VXBkYXRpb24+ID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFVwZGF0ZXM6IFBhcnRpYWw8THNxUHJpb3JpdHlVcGRhdGlvbj4gPSB7XG4gICAgICAgICAgICAuLi51cGRhdGVzLFxuICAgICAgICAgICAgdXBkYXRlZF90aW1lOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgdXBkYXRlZF91c2VyOiBhdXRoQ29udGV4dD8udXNlclN1YlxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0eXBlb2YgdXBkYXRlcy5wYXNzZWQgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICBuZXh0VXBkYXRlcy5wYXNzZWRTdHIgPSB1cGRhdGVzLnBhc3NlZFN0ciA/PyB0b1Bhc3NlZFN0cih1cGRhdGVzLnBhc3NlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVwZGF0ZXMucHJpb3JpdHkpIHtcbiAgICAgICAgICAgIG5leHRVcGRhdGVzLnByaW9yaXR5UmFuayA9IHVwZGF0ZXMucHJpb3JpdHlSYW5rID8/IHRvUHJpb3JpdHlSYW5rKHVwZGF0ZXMucHJpb3JpdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbC51cGRhdGUoXG4gICAgICAgICAgICB7IGxzcVByaW9yaXR5VXBkYXRpb25JZCB9LFxuICAgICAgICAgICAgbmV4dFVwZGF0ZXMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBuZXcgZHluYW1vb3NlLkNvbmRpdGlvbigpLmF0dHJpYnV0ZShcImxzcVByaW9yaXR5VXBkYXRpb25JZFwiKS5leGlzdHMoKVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdXBkYXRlZCBhcyB1bmtub3duIGFzIExzcVByaW9yaXR5VXBkYXRpb247XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgb25lIHF1ZXVlIHJlY29yZCBieSB0YWJsZSBwcmltYXJ5IGtleS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm93ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5nZXRCeUlkKFwibHNxLXV1aWRcIik7XG4gICAgICovXG4gICAgZ2V0QnlJZCA9IGFzeW5jIChsc3FQcmlvcml0eVVwZGF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbiB8IG51bGw+ID0+XG4gICAgICAgIHRoaXMuZ2V0KGxzcVByaW9yaXR5VXBkYXRpb25JZCk7XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaGVzIG9uZSBxdWV1ZSByZWNvcmQgYnkgTGVhZFNxdWFyZWQgYG9wcG9ydHVuaXR5SWRgIChHU0kgYG9wcG9ydHVuaXR5SWRJbmRleGApLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCByb3cgPSBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLmdldEJ5T3Bwb3J0dW5pdHlJZChcIm9wcC0xMjNcIik7XG4gICAgICovXG4gICAgZ2V0QnlPcHBvcnR1bml0eUlkID0gYXN5bmMgKG9wcG9ydHVuaXR5SWQ6IHN0cmluZyk6IFByb21pc2U8THNxUHJpb3JpdHlVcGRhdGlvbiB8IG51bGw+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5saXN0QnlPcHBvcnR1bml0eUlkKG9wcG9ydHVuaXR5SWQsIDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0Lml0ZW1zWzBdID8/IG51bGw7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIHF1ZXVlIHJlY29yZHMgYnkgTGVhZFNxdWFyZWQgYG9wcG9ydHVuaXR5SWRgIChHU0kgYG9wcG9ydHVuaXR5SWRJbmRleGApLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCB7IGl0ZW1zIH0gPSBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLmxpc3RCeU9wcG9ydHVuaXR5SWQoXCJvcHAtMTIzXCIpO1xuICAgICAqL1xuICAgIGxpc3RCeU9wcG9ydHVuaXR5SWQgPSBhc3luYyAoXG4gICAgICAgIG9wcG9ydHVuaXR5SWQ6IHN0cmluZyxcbiAgICAgICAgbGltaXQ/OiBudW1iZXIsXG4gICAgICAgIHRva2VuPzogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxMaXN0UmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuZGVjb2RlKHRva2VuKTtcbiAgICAgICAgbGV0IHF1ZXJ5QnVpbGRlciA9IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbC5xdWVyeShcIm9wcG9ydHVuaXR5SWRcIilcbiAgICAgICAgICAgIC5lcShvcHBvcnR1bml0eUlkKVxuICAgICAgICAgICAgLnVzaW5nKFwib3Bwb3J0dW5pdHlJZEluZGV4XCIpO1xuICAgICAgICBpZiAoZGVjb2RlZFRva2VuKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIuc3RhcnRBdChkZWNvZGVkVG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbGltaXQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5saW1pdChsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcXVlcnlSZXN1bHQgPSBhd2FpdCBxdWVyeUJ1aWxkZXIuZXhlYygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHF1ZXJ5UmVzdWx0IGFzIHVua25vd24gYXMgTHNxUHJpb3JpdHlVcGRhdGlvbltdLFxuICAgICAgICAgICAgbmV4dFRva2VuOiBhd2FpdCB0aGlzLmVuY29kZShxdWVyeVJlc3VsdC5sYXN0S2V5IGFzIER5bmFtb0tleSB8IHVuZGVmaW5lZClcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmV0Y2hlcyBvbmUgcXVldWUgcmVjb3JkIGJ5IGBsZWFkTnVtYmVyYCAoR1NJIGBsZWFkTnVtYmVySW5kZXhgKS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm93ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5nZXRCeUxlYWROdW1iZXIoXCI5ODc2NTQzMjEwXCIpO1xuICAgICAqL1xuICAgIGdldEJ5TGVhZE51bWJlciA9IGFzeW5jIChsZWFkTnVtYmVyOiBzdHJpbmcpOiBQcm9taXNlPExzcVByaW9yaXR5VXBkYXRpb24gfCBudWxsPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubGlzdEJ5TGVhZE51bWJlcihsZWFkTnVtYmVyLCAxKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVtc1swXSA/PyBudWxsO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyBxdWV1ZSByZWNvcmRzIGJ5IGBsZWFkTnVtYmVyYCAoR1NJIGBsZWFkTnVtYmVySW5kZXhgKS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgeyBpdGVtcyB9ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5saXN0QnlMZWFkTnVtYmVyKFwiOTg3NjU0MzIxMFwiKTtcbiAgICAgKi9cbiAgICBsaXN0QnlMZWFkTnVtYmVyID0gYXN5bmMgKFxuICAgICAgICBsZWFkTnVtYmVyOiBzdHJpbmcsXG4gICAgICAgIGxpbWl0PzogbnVtYmVyLFxuICAgICAgICB0b2tlbj86IHN0cmluZ1xuICAgICk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBMc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwucXVlcnkoXCJsZWFkTnVtYmVyXCIpXG4gICAgICAgICAgICAuZXEobGVhZE51bWJlcilcbiAgICAgICAgICAgIC51c2luZyhcImxlYWROdW1iZXJJbmRleFwiKTtcbiAgICAgICAgaWYgKGRlY29kZWRUb2tlbikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLnN0YXJ0QXQoZGVjb2RlZFRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGxpbWl0ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBxdWVyeUJ1aWxkZXIgPSBxdWVyeUJ1aWxkZXIubGltaXQobGltaXQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXJ5UmVzdWx0ID0gYXdhaXQgcXVlcnlCdWlsZGVyLmV4ZWMoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGl0ZW1zOiBxdWVyeVJlc3VsdCBhcyB1bmtub3duIGFzIExzcVByaW9yaXR5VXBkYXRpb25bXSxcbiAgICAgICAgICAgIG5leHRUb2tlbjogYXdhaXQgdGhpcy5lbmNvZGUocXVlcnlSZXN1bHQubGFzdEtleSBhcyBEeW5hbW9LZXkgfCB1bmRlZmluZWQpXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIExpc3RzIHF1ZXVlIHJlY29yZHMgYnkgYHN0YXR1c2AgKEdTSSBgc3RhdHVzSW5kZXhgKS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgeyBpdGVtcyB9ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5saXN0QnlTdGF0dXMoXCJQRU5ESU5HXCIsIDI1KTtcbiAgICAgKi9cbiAgICBsaXN0QnlTdGF0dXMgPSBhc3luYyAoXG4gICAgICAgIHN0YXR1czogc3RyaW5nLFxuICAgICAgICBsaW1pdD86IG51bWJlcixcbiAgICAgICAgdG9rZW4/OiBzdHJpbmdcbiAgICApOiBQcm9taXNlPExpc3RSZXN1bHQ+ID0+IHtcbiAgICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5kZWNvZGUodG9rZW4pO1xuICAgICAgICBsZXQgcXVlcnlCdWlsZGVyID0gTHNxUHJpb3JpdHlVcGRhdGlvbk1vZGVsLnF1ZXJ5KFwic3RhdHVzXCIpXG4gICAgICAgICAgICAuZXEoc3RhdHVzKVxuICAgICAgICAgICAgLnVzaW5nKFwic3RhdHVzSW5kZXhcIik7XG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsaW1pdCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLmxpbWl0KGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcXVlcnlSZXN1bHQgYXMgdW5rbm93biBhcyBMc3FQcmlvcml0eVVwZGF0aW9uW10sXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBMaXN0cyBxdWV1ZWQgKHVucHJvY2Vzc2VkKSBvcHBvcnR1bml0aWVzIHNvcnRlZCBieSBgcHJpb3JpdHlSYW5rYCBhc2NlbmRpbmcuXG4gICAgICpcbiAgICAgKiBVc2Ugd2hlbjogd29ya2VyIHB1bGxzIG5leHQgYmF0Y2ggb2YgdW5hc3NpZ25lZCBMU1EgcHJpb3JpdHkgdXBkYXRlcy5cbiAgICAgKiBRdWVyaWVzIEdTSSBgcGFzc2VkU3RySW5kZXhgIHdpdGggYHBhc3NlZFN0ciA9IFwiRkFMU0VcImAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHsgaXRlbXMsIG5leHRUb2tlbiB9ID0gYXdhaXQgbHNxUHJpb3JpdHlVcGRhdGlvbkRhby5saXN0VW5wcm9jZXNzZWQoMjUpO1xuICAgICAqL1xuICAgIGxpc3RVbnByb2Nlc3NlZCA9IGFzeW5jIChsaW1pdD86IG51bWJlciwgdG9rZW4/OiBzdHJpbmcpOiBQcm9taXNlPExpc3RSZXN1bHQ+ID0+XG4gICAgICAgIHRoaXMubGlzdEJ5UGFzc2VkU3RyKExTUV9QQVNTRURfU1RSLkZBTFNFLCBsaW1pdCwgdG9rZW4pO1xuXG4gICAgLyoqXG4gICAgICogTGlzdHMgb3Bwb3J0dW5pdGllcyBieSBgcGFzc2VkU3RyYCAoR1NJIGBwYXNzZWRTdHJJbmRleGApLCBzb3J0ZWQgYnkgYHByaW9yaXR5UmFua2AuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHF1ZXVlZCA9IGF3YWl0IGxzcVByaW9yaXR5VXBkYXRpb25EYW8ubGlzdEJ5UGFzc2VkU3RyKFwiRkFMU0VcIiwgMjUpO1xuICAgICAqL1xuICAgIGxpc3RCeVBhc3NlZFN0ciA9IGFzeW5jIChcbiAgICAgICAgcGFzc2VkU3RyOiBMc3FQYXNzZWRTdHIsXG4gICAgICAgIGxpbWl0PzogbnVtYmVyLFxuICAgICAgICB0b2tlbj86IHN0cmluZ1xuICAgICk6IFByb21pc2U8TGlzdFJlc3VsdD4gPT4ge1xuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZSh0b2tlbik7XG4gICAgICAgIGxldCBxdWVyeUJ1aWxkZXIgPSBMc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwucXVlcnkoXCJwYXNzZWRTdHJcIilcbiAgICAgICAgICAgIC5lcShwYXNzZWRTdHIpXG4gICAgICAgICAgICAudXNpbmcoXCJwYXNzZWRTdHJJbmRleFwiKVxuICAgICAgICAgICAgLnNvcnQoXCJhc2NlbmRpbmdcIik7XG4gICAgICAgIGlmIChkZWNvZGVkVG9rZW4pIHtcbiAgICAgICAgICAgIHF1ZXJ5QnVpbGRlciA9IHF1ZXJ5QnVpbGRlci5zdGFydEF0KGRlY29kZWRUb2tlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBsaW1pdCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcXVlcnlCdWlsZGVyID0gcXVlcnlCdWlsZGVyLmxpbWl0KGxpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVyeVJlc3VsdCA9IGF3YWl0IHF1ZXJ5QnVpbGRlci5leGVjKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtczogcXVlcnlSZXN1bHQgYXMgdW5rbm93biBhcyBMc3FQcmlvcml0eVVwZGF0aW9uW10sXG4gICAgICAgICAgICBuZXh0VG9rZW46IGF3YWl0IHRoaXMuZW5jb2RlKHF1ZXJ5UmVzdWx0Lmxhc3RLZXkgYXMgRHluYW1vS2V5IHwgdW5kZWZpbmVkKVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNYXJrcyBhIHF1ZXVlIHJvdyBhcyBwcm9jZXNzZWQgYnkgZGVsZXRpbmcgaXQgdmlhIHByaW1hcnkga2V5LlxuICAgICAqXG4gICAgICogVXNlIHdoZW46IHdvcmtlciBzdWNjZXNzZnVsbHkgYXBwbGllZCBwcmlvcml0eSB1cGRhdGUgaW4gTGVhZFNxdWFyZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGF3YWl0IGxzcVByaW9yaXR5VXBkYXRpb25EYW8ubWFya1Byb2Nlc3NlZChcImxzcS11dWlkXCIpO1xuICAgICAqL1xuICAgIG1hcmtQcm9jZXNzZWQgPSBhc3luYyAobHNxUHJpb3JpdHlVcGRhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGUobHNxUHJpb3JpdHlVcGRhdGlvbklkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgcHJvY2Vzc2VkIGJ5IExlYWRTcXVhcmVkIGBvcHBvcnR1bml0eUlkYCAobG9va3VwIEdTSSwgdGhlbiBkZWxldGUgYnkgUEspLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBhd2FpdCBsc3FQcmlvcml0eVVwZGF0aW9uRGFvLm1hcmtQcm9jZXNzZWRCeU9wcG9ydHVuaXR5SWQoXCJvcHAtMTIzXCIpO1xuICAgICAqL1xuICAgIG1hcmtQcm9jZXNzZWRCeU9wcG9ydHVuaXR5SWQgPSBhc3luYyAob3Bwb3J0dW5pdHlJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgICAgIGNvbnN0IHJvdyA9IGF3YWl0IHRoaXMuZ2V0QnlPcHBvcnR1bml0eUlkKG9wcG9ydHVuaXR5SWQpO1xuICAgICAgICBpZiAoIXJvdykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlKHJvdy5sc3FQcmlvcml0eVVwZGF0aW9uSWQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBvbmUgcXVldWUgcmVjb3JkIGJ5IHByaW1hcnkga2V5LlxuICAgICAqL1xuICAgIGRlbGV0ZUJ5SWQgPSBhc3luYyAobHNxUHJpb3JpdHlVcGRhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGUobHNxUHJpb3JpdHlVcGRhdGlvbklkKTtcbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgbHNxUHJpb3JpdHlVcGRhdGlvbkRhbyA9IG5ldyBMc3FQcmlvcml0eVVwZGF0aW9uRGFvKCk7XG4iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { BaseDynamooseModel } from "../../base-dynamoose-model";
|
|
2
|
+
export declare const LSQ_PRIORITY: {
|
|
3
|
+
readonly P1: "P1";
|
|
4
|
+
readonly P2: "P2";
|
|
5
|
+
readonly P3: "P3";
|
|
6
|
+
readonly P4: "P4";
|
|
7
|
+
readonly P5: "P5";
|
|
8
|
+
};
|
|
9
|
+
export type LsqPriority = (typeof LSQ_PRIORITY)[keyof typeof LSQ_PRIORITY];
|
|
10
|
+
export declare const LSQ_PRIORITY_RANK: Record<LsqPriority, number>;
|
|
11
|
+
export declare const LSQ_URGENCY: {
|
|
12
|
+
readonly U1: "U1";
|
|
13
|
+
readonly U2: "U2";
|
|
14
|
+
readonly U3: "U3";
|
|
15
|
+
readonly U4: "U4";
|
|
16
|
+
};
|
|
17
|
+
export type LsqUrgency = (typeof LSQ_URGENCY)[keyof typeof LSQ_URGENCY];
|
|
18
|
+
export declare const LSQ_VALUE: {
|
|
19
|
+
readonly V1: "V1";
|
|
20
|
+
readonly V2: "V2";
|
|
21
|
+
readonly V3: "V3";
|
|
22
|
+
readonly V4: "V4";
|
|
23
|
+
readonly V5: "V5";
|
|
24
|
+
};
|
|
25
|
+
export type LsqValue = (typeof LSQ_VALUE)[keyof typeof LSQ_VALUE];
|
|
26
|
+
/** GSI partition values for `passedStrIndex`. */
|
|
27
|
+
export declare const LSQ_PASSED_STR: {
|
|
28
|
+
readonly FALSE: "FALSE";
|
|
29
|
+
readonly TRUE: "TRUE";
|
|
30
|
+
};
|
|
31
|
+
export type LsqPassedStr = (typeof LSQ_PASSED_STR)[keyof typeof LSQ_PASSED_STR];
|
|
32
|
+
export interface LsqPriorityUpdation extends BaseDynamooseModel {
|
|
33
|
+
/** Table unique id (PK). */
|
|
34
|
+
lsqPriorityUpdationId: string;
|
|
35
|
+
/** LeadSquared opportunity id (GSI `opportunityIdIndex`). */
|
|
36
|
+
opportunityId: string;
|
|
37
|
+
passed: boolean;
|
|
38
|
+
/** Indexed mirror of `passed` — `"FALSE"` when queued/unassigned. */
|
|
39
|
+
passedStr: LsqPassedStr;
|
|
40
|
+
priority: LsqPriority;
|
|
41
|
+
/** Numeric sort score for GSI: P1→1 … P5→5. */
|
|
42
|
+
priorityRank?: number;
|
|
43
|
+
urgency?: LsqUrgency;
|
|
44
|
+
value?: LsqValue;
|
|
45
|
+
/** ISO date `YYYY-MM-DD` for midnight recalculation. */
|
|
46
|
+
eventDate: string;
|
|
47
|
+
leadName?: string;
|
|
48
|
+
/** Lead phone/number (GSI `leadNumberIndex`). */
|
|
49
|
+
leadNumber: string;
|
|
50
|
+
/** Record status (GSI `statusIndex`). */
|
|
51
|
+
status: string;
|
|
52
|
+
/** Optional raw webhook payload. */
|
|
53
|
+
payload?: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
export type CreateLsqPriorityUpdationInput = Omit<LsqPriorityUpdation, "lsqPriorityUpdationId" | "passedStr" | "priorityRank"> & {
|
|
56
|
+
lsqPriorityUpdationId?: string;
|
|
57
|
+
passedStr?: LsqPassedStr;
|
|
58
|
+
priorityRank?: number;
|
|
59
|
+
};
|
|
60
|
+
export declare const toPassedStr: (passed: boolean) => LsqPassedStr;
|
|
61
|
+
export declare const toPriorityRank: (priority: LsqPriority) => number;
|
|
62
|
+
export declare const LsqPriorityUpdationModel: import("dynamoose/dist/General").ModelType<LsqPriorityUpdation>;
|
|
63
|
+
export declare const convertToLsqPriorityUpdationModel: (input: CreateLsqPriorityUpdationInput | LsqPriorityUpdation) => LsqPriorityUpdation;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.convertToLsqPriorityUpdationModel = exports.LsqPriorityUpdationModel = exports.toPriorityRank = exports.toPassedStr = exports.LSQ_PASSED_STR = exports.LSQ_VALUE = exports.LSQ_URGENCY = exports.LSQ_PRIORITY_RANK = exports.LSQ_PRIORITY = void 0;
|
|
7
|
+
const dynamoose_1 = __importDefault(require("dynamoose"));
|
|
8
|
+
const crypto_1 = require("crypto");
|
|
9
|
+
const table_names_1 = require("../../config/table-names");
|
|
10
|
+
exports.LSQ_PRIORITY = {
|
|
11
|
+
P1: "P1",
|
|
12
|
+
P2: "P2",
|
|
13
|
+
P3: "P3",
|
|
14
|
+
P4: "P4",
|
|
15
|
+
P5: "P5"
|
|
16
|
+
};
|
|
17
|
+
exports.LSQ_PRIORITY_RANK = {
|
|
18
|
+
[exports.LSQ_PRIORITY.P1]: 1,
|
|
19
|
+
[exports.LSQ_PRIORITY.P2]: 2,
|
|
20
|
+
[exports.LSQ_PRIORITY.P3]: 3,
|
|
21
|
+
[exports.LSQ_PRIORITY.P4]: 4,
|
|
22
|
+
[exports.LSQ_PRIORITY.P5]: 5
|
|
23
|
+
};
|
|
24
|
+
exports.LSQ_URGENCY = {
|
|
25
|
+
U1: "U1",
|
|
26
|
+
U2: "U2",
|
|
27
|
+
U3: "U3",
|
|
28
|
+
U4: "U4"
|
|
29
|
+
};
|
|
30
|
+
exports.LSQ_VALUE = {
|
|
31
|
+
V1: "V1",
|
|
32
|
+
V2: "V2",
|
|
33
|
+
V3: "V3",
|
|
34
|
+
V4: "V4",
|
|
35
|
+
V5: "V5"
|
|
36
|
+
};
|
|
37
|
+
/** GSI partition values for `passedStrIndex`. */
|
|
38
|
+
exports.LSQ_PASSED_STR = {
|
|
39
|
+
FALSE: "FALSE",
|
|
40
|
+
TRUE: "TRUE"
|
|
41
|
+
};
|
|
42
|
+
const toPassedStr = (passed) => passed ? exports.LSQ_PASSED_STR.TRUE : exports.LSQ_PASSED_STR.FALSE;
|
|
43
|
+
exports.toPassedStr = toPassedStr;
|
|
44
|
+
const toPriorityRank = (priority) => exports.LSQ_PRIORITY_RANK[priority];
|
|
45
|
+
exports.toPriorityRank = toPriorityRank;
|
|
46
|
+
const lsqPriorityUpdationSchema = new dynamoose_1.default.Schema({
|
|
47
|
+
lsqPriorityUpdationId: {
|
|
48
|
+
type: String,
|
|
49
|
+
hashKey: true,
|
|
50
|
+
required: true,
|
|
51
|
+
default: () => (0, crypto_1.randomUUID)()
|
|
52
|
+
},
|
|
53
|
+
opportunityId: {
|
|
54
|
+
type: String,
|
|
55
|
+
required: true,
|
|
56
|
+
index: {
|
|
57
|
+
name: "opportunityIdIndex",
|
|
58
|
+
type: "global"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
passed: {
|
|
62
|
+
type: Boolean,
|
|
63
|
+
required: true,
|
|
64
|
+
default: false
|
|
65
|
+
},
|
|
66
|
+
passedStr: {
|
|
67
|
+
type: String,
|
|
68
|
+
required: true,
|
|
69
|
+
enum: [exports.LSQ_PASSED_STR.FALSE, exports.LSQ_PASSED_STR.TRUE],
|
|
70
|
+
default: exports.LSQ_PASSED_STR.FALSE,
|
|
71
|
+
index: {
|
|
72
|
+
name: "passedStrIndex",
|
|
73
|
+
type: "global",
|
|
74
|
+
rangeKey: "priorityRank"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
priority: {
|
|
78
|
+
type: String,
|
|
79
|
+
required: true,
|
|
80
|
+
enum: [
|
|
81
|
+
exports.LSQ_PRIORITY.P1,
|
|
82
|
+
exports.LSQ_PRIORITY.P2,
|
|
83
|
+
exports.LSQ_PRIORITY.P3,
|
|
84
|
+
exports.LSQ_PRIORITY.P4,
|
|
85
|
+
exports.LSQ_PRIORITY.P5
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
priorityRank: {
|
|
89
|
+
type: Number,
|
|
90
|
+
},
|
|
91
|
+
urgency: {
|
|
92
|
+
type: String,
|
|
93
|
+
enum: [exports.LSQ_URGENCY.U1, exports.LSQ_URGENCY.U2, exports.LSQ_URGENCY.U3, exports.LSQ_URGENCY.U4]
|
|
94
|
+
},
|
|
95
|
+
value: {
|
|
96
|
+
type: String,
|
|
97
|
+
enum: [exports.LSQ_VALUE.V1, exports.LSQ_VALUE.V2, exports.LSQ_VALUE.V3, exports.LSQ_VALUE.V4, exports.LSQ_VALUE.V5]
|
|
98
|
+
},
|
|
99
|
+
eventDate: {
|
|
100
|
+
type: String,
|
|
101
|
+
required: true
|
|
102
|
+
},
|
|
103
|
+
leadName: {
|
|
104
|
+
type: String,
|
|
105
|
+
required: false
|
|
106
|
+
},
|
|
107
|
+
leadNumber: {
|
|
108
|
+
type: String,
|
|
109
|
+
required: true,
|
|
110
|
+
index: {
|
|
111
|
+
name: "leadNumberIndex",
|
|
112
|
+
type: "global"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
status: {
|
|
116
|
+
type: String,
|
|
117
|
+
required: true,
|
|
118
|
+
index: {
|
|
119
|
+
name: "statusIndex",
|
|
120
|
+
type: "global"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
payload: {
|
|
124
|
+
type: Object
|
|
125
|
+
}
|
|
126
|
+
}, {
|
|
127
|
+
saveUnknown: ["payload.**"],
|
|
128
|
+
timestamps: true
|
|
129
|
+
});
|
|
130
|
+
exports.LsqPriorityUpdationModel = dynamoose_1.default.model(table_names_1.TABLE_NAMES.LSQ_PRIORITY_UPDATION, lsqPriorityUpdationSchema, { create: false, waitForActive: false });
|
|
131
|
+
const convertToLsqPriorityUpdationModel = (input) => {
|
|
132
|
+
return new exports.LsqPriorityUpdationModel(input);
|
|
133
|
+
};
|
|
134
|
+
exports.convertToLsqPriorityUpdationModel = convertToLsqPriorityUpdationModel;
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHNxLXByaW9yaXR5LXVwZGF0aW9uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1c3RvbWVyLXVzZXIvbHNxLXByaW9yaXR5LXVwZGF0aW9uL2xzcS1wcmlvcml0eS11cGRhdGlvbi1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFDbEMsbUNBQW9DO0FBRXBDLDBEQUF1RDtBQUUxQyxRQUFBLFlBQVksR0FBRztJQUN4QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0NBQ0YsQ0FBQztBQUlFLFFBQUEsaUJBQWlCLEdBQWdDO0lBQzFELENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BCLENBQUMsb0JBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0NBQ3ZCLENBQUM7QUFFVyxRQUFBLFdBQVcsR0FBRztJQUN2QixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtDQUNGLENBQUM7QUFJRSxRQUFBLFNBQVMsR0FBRztJQUNyQixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxJQUFJO0NBQ0YsQ0FBQztBQUlYLGlEQUFpRDtBQUNwQyxRQUFBLGNBQWMsR0FBRztJQUMxQixLQUFLLEVBQUUsT0FB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SUFDRCxPQUFPLEVBQUU7UUFDTCxJQUFJLEVBQUUsTUFBTTtLQUNmO0NBQ0osRUFDRDtJQUNJLFdBQVcsRUFBRSxDQUFDLFlBQVksQ0FBQztJQUMzQixVQUFVLEVBQUUsSUFBSTtDQUNuQixDQUNKLENBQUM7QUFFVyxRQUFBLHdCQUF3QixHQUFHLG1CQUFTLENBQUMsS0FBSyxDQUNuRCx5QkFBVyxDQUFDLHFCQUFxQixFQUNqQyx5QkFBeUIsRUFDekIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FDMUMsQ0FBQztBQUVLLE1BQU0saUNBQWlDLEdBQUcsQ0FDN0MsS0FBMkQsRUFDN0QsRUFBRTtJQUNBLE9BQU8sSUFBSSxnQ0FBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFKVyxRQUFBLGlDQUFpQyxxQ0FJNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZHluYW1vb3NlIGZyb20gXCJkeW5hbW9vc2VcIjtcbmltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgeyBCYXNlRHluYW1vb3NlTW9kZWwgfSBmcm9tIFwiLi4vLi4vYmFzZS1keW5hbW9vc2UtbW9kZWxcIjtcbmltcG9ydCB7IFRBQkxFX05BTUVTIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy90YWJsZS1uYW1lc1wiO1xuXG5leHBvcnQgY29uc3QgTFNRX1BSSU9SSVRZID0ge1xuICAgIFAxOiBcIlAxXCIsXG4gICAgUDI6IFwiUDJcIixcbiAgICBQMzogXCJQM1wiLFxuICAgIFA0OiBcIlA0XCIsXG4gICAgUDU6IFwiUDVcIlxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTHNxUHJpb3JpdHkgPSAodHlwZW9mIExTUV9QUklPUklUWSlba2V5b2YgdHlwZW9mIExTUV9QUklPUklUWV07XG5cbmV4cG9ydCBjb25zdCBMU1FfUFJJT1JJVFlfUkFOSzogUmVjb3JkPExzcVByaW9yaXR5LCBudW1iZXI+ID0ge1xuICAgIFtMU1FfUFJJT1JJVFkuUDFdOiAxLFxuICAgIFtMU1FfUFJJT1JJVFkuUDJdOiAyLFxuICAgIFtMU1FfUFJJT1JJVFkuUDNdOiAzLFxuICAgIFtMU1FfUFJJT1JJVFkuUDRdOiA0LFxuICAgIFtMU1FfUFJJT1JJVFkuUDVdOiA1XG59O1xuXG5leHBvcnQgY29uc3QgTFNRX1VSR0VOQ1kgPSB7XG4gICAgVTE6IFwiVTFcIixcbiAgICBVMjogXCJVMlwiLFxuICAgIFUzOiBcIlUzXCIsXG4gICAgVTQ6IFwiVTRcIlxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTHNxVXJnZW5jeSA9ICh0eXBlb2YgTFNRX1VSR0VOQ1kpW2tleW9mIHR5cGVvZiBMU1FfVVJHRU5DWV07XG5cbmV4cG9ydCBjb25zdCBMU1FfVkFMVUUgPSB7XG4gICAgVjE6IFwiVjFcIixcbiAgICBWMjogXCJWMlwiLFxuICAgIFYzOiBcIlYzXCIsXG4gICAgVjQ6IFwiVjRcIixcbiAgICBWNTogXCJWNVwiXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBMc3FWYWx1ZSA9ICh0eXBlb2YgTFNRX1ZBTFVFKVtrZXlvZiB0eXBlb2YgTFNRX1ZBTFVFXTtcblxuLyoqIEdTSSBwYXJ0aXRpb24gdmFsdWVzIGZvciBgcGFzc2VkU3RySW5kZXhgLiAqL1xuZXhwb3J0IGNvbnN0IExTUV9QQVNTRURfU1RSID0ge1xuICAgIEZBTFNFOiBcIkZBTFNFXCIsXG4gICAgVFJVRTogXCJUUlVFXCJcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIExzcVBhc3NlZFN0ciA9ICh0eXBlb2YgTFNRX1BBU1NFRF9TVFIpW2tleW9mIHR5cGVvZiBMU1FfUEFTU0VEX1NUUl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTHNxUHJpb3JpdHlVcGRhdGlvbiBleHRlbmRzIEJhc2VEeW5hbW9vc2VNb2RlbCB7XG4gICAgLyoqIFRhYmxlIHVuaXF1ZSBpZCAoUEspLiAqL1xuICAgIGxzcVByaW9yaXR5VXBkYXRpb25JZDogc3RyaW5nO1xuICAgIC8qKiBMZWFkU3F1YXJlZCBvcHBvcnR1bml0eSBpZCAoR1NJIGBvcHBvcnR1bml0eUlkSW5kZXhgKS4gKi9cbiAgICBvcHBvcnR1bml0eUlkOiBzdHJpbmc7XG4gICAgcGFzc2VkOiBib29sZWFuO1xuICAgIC8qKiBJbmRleGVkIG1pcnJvciBvZiBgcGFzc2VkYCDigJQgYFwiRkFMU0VcImAgd2hlbiBxdWV1ZWQvdW5hc3NpZ25lZC4gKi9cbiAgICBwYXNzZWRTdHI6IExzcVBhc3NlZFN0cjtcbiAgICBwcmlvcml0eTogTHNxUHJpb3JpdHk7XG4gICAgLyoqIE51bWVyaWMgc29ydCBzY29yZSBmb3IgR1NJOiBQMeKGkjEg4oCmIFA14oaSNS4gKi9cbiAgICBwcmlvcml0eVJhbms/OiBudW1iZXI7XG4gICAgdXJnZW5jeT86IExzcVVyZ2VuY3k7XG4gICAgdmFsdWU/OiBMc3FWYWx1ZTtcbiAgICAvKiogSVNPIGRhdGUgYFlZWVktTU0tRERgIGZvciBtaWRuaWdodCByZWNhbGN1bGF0aW9uLiAqL1xuICAgIGV2ZW50RGF0ZTogc3RyaW5nO1xuICAgIGxlYWROYW1lPzogc3RyaW5nO1xuICAgIC8qKiBMZWFkIHBob25lL251bWJlciAoR1NJIGBsZWFkTnVtYmVySW5kZXhgKS4gKi9cbiAgICBsZWFkTnVtYmVyOiBzdHJpbmc7XG4gICAgLyoqIFJlY29yZCBzdGF0dXMgKEdTSSBgc3RhdHVzSW5kZXhgKS4gKi9cbiAgICBzdGF0dXM6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgcmF3IHdlYmhvb2sgcGF5bG9hZC4gKi9cbiAgICBwYXlsb2FkPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCA9IE9taXQ8XG4gICAgTHNxUHJpb3JpdHlVcGRhdGlvbixcbiAgICBcImxzcVByaW9yaXR5VXBkYXRpb25JZFwiIHwgXCJwYXNzZWRTdHJcIiB8IFwicHJpb3JpdHlSYW5rXCJcbj4gJiB7XG4gICAgbHNxUHJpb3JpdHlVcGRhdGlvbklkPzogc3RyaW5nO1xuICAgIHBhc3NlZFN0cj86IExzcVBhc3NlZFN0cjtcbiAgICBwcmlvcml0eVJhbms/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgY29uc3QgdG9QYXNzZWRTdHIgPSAocGFzc2VkOiBib29sZWFuKTogTHNxUGFzc2VkU3RyID0+XG4gICAgcGFzc2VkID8gTFNRX1BBU1NFRF9TVFIuVFJVRSA6IExTUV9QQVNTRURfU1RSLkZBTFNFO1xuXG5leHBvcnQgY29uc3QgdG9Qcmlvcml0eVJhbmsgPSAocHJpb3JpdHk6IExzcVByaW9yaXR5KTogbnVtYmVyID0+IExTUV9QUklPUklUWV9SQU5LW3ByaW9yaXR5XTtcblxuY29uc3QgbHNxUHJpb3JpdHlVcGRhdGlvblNjaGVtYSA9IG5ldyBkeW5hbW9vc2UuU2NoZW1hKFxuICAgIHtcbiAgICAgICAgbHNxUHJpb3JpdHlVcGRhdGlvbklkOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBoYXNoS2V5OiB0cnVlLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiByYW5kb21VVUlEKClcbiAgICAgICAgfSxcbiAgICAgICAgb3Bwb3J0dW5pdHlJZDoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwib3Bwb3J0dW5pdHlJZEluZGV4XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJnbG9iYWxcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzZWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHBhc3NlZFN0cjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBlbnVtOiBbTFNRX1BBU1NFRF9TVFIuRkFMU0UsIExTUV9QQVNTRURfU1RSLlRSVUVdLFxuICAgICAgICAgICAgZGVmYXVsdDogTFNRX1BBU1NFRF9TVFIuRkFMU0UsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwicGFzc2VkU3RySW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiLFxuICAgICAgICAgICAgICAgIHJhbmdlS2V5OiBcInByaW9yaXR5UmFua1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHByaW9yaXR5OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGVudW06IFtcbiAgICAgICAgICAgICAgICBMU1FfUFJJT1JJVFkuUDEsXG4gICAgICAgICAgICAgICAgTFNRX1BSSU9SSVRZLlAyLFxuICAgICAgICAgICAgICAgIExTUV9QUklPUklUWS5QMyxcbiAgICAgICAgICAgICAgICBMU1FfUFJJT1JJVFkuUDQsXG4gICAgICAgICAgICAgICAgTFNRX1BSSU9SSVRZLlA1XG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHByaW9yaXR5UmFuazoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICB9LFxuICAgICAgICB1cmdlbmN5OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBlbnVtOiBbTFNRX1VSR0VOQ1kuVTEsIExTUV9VUkdFTkNZLlUyLCBMU1FfVVJHRU5DWS5VMywgTFNRX1VSR0VOQ1kuVTRdXG4gICAgICAgIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBlbnVtOiBbTFNRX1ZBTFVFLlYxLCBMU1FfVkFMVUUuVjIsIExTUV9WQUxVRS5WMywgTFNRX1ZBTFVFLlY0LCBMU1FfVkFMVUUuVjVdXG4gICAgICAgIH0sXG4gICAgICAgIGV2ZW50RGF0ZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgbGVhZE5hbWU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBsZWFkTnVtYmVyOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIGluZGV4OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJsZWFkTnVtYmVySW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICBpbmRleDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwic3RhdHVzSW5kZXhcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImdsb2JhbFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IE9iamVjdFxuICAgICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHNhdmVVbmtub3duOiBbXCJwYXlsb2FkLioqXCJdLFxuICAgICAgICB0aW1lc3RhbXBzOiB0cnVlXG4gICAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IExzcVByaW9yaXR5VXBkYXRpb25Nb2RlbCA9IGR5bmFtb29zZS5tb2RlbDxMc3FQcmlvcml0eVVwZGF0aW9uPihcbiAgICBUQUJMRV9OQU1FUy5MU1FfUFJJT1JJVFlfVVBEQVRJT04sXG4gICAgbHNxUHJpb3JpdHlVcGRhdGlvblNjaGVtYSxcbiAgICB7IGNyZWF0ZTogZmFsc2UsIHdhaXRGb3JBY3RpdmU6IGZhbHNlIH1cbik7XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0VG9Mc3FQcmlvcml0eVVwZGF0aW9uTW9kZWwgPSAoXG4gICAgaW5wdXQ6IENyZWF0ZUxzcVByaW9yaXR5VXBkYXRpb25JbnB1dCB8IExzcVByaW9yaXR5VXBkYXRpb25cbikgPT4ge1xuICAgIHJldHVybiBuZXcgTHNxUHJpb3JpdHlVcGRhdGlvbk1vZGVsKGlucHV0KTtcbn07XG4iXX0=
|