@devx-commerce/plugin-form-responses 0.0.2-beta.10 → 0.0.2-beta.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/.medusa/server/src/api/admin/form-response/[id]/route.js +19 -1
- package/.medusa/server/src/api/admin/form-response/query-config.js +2 -1
- package/.medusa/server/src/api/admin/form-response/route.js +38 -2
- package/.medusa/server/src/api/middlewares.js +8 -1
- package/.medusa/server/src/api/store/form-response/route.js +2 -2
- package/.medusa/server/src/api/store/form-response/validators.js +13 -6
- package/.medusa/server/src/api/store/slot-listing/index.js +3 -0
- package/.medusa/server/src/api/store/slot-listing/query-config.js +14 -0
- package/.medusa/server/src/api/store/slot-listing/route.js +83 -0
- package/.medusa/server/src/api/store/slot-listing/validators.js +12 -0
- package/.medusa/server/src/lib/helper.js +12 -0
- package/.medusa/server/src/modules/form-response/migrations/{Migration20250715121353.js → Migration20250818070635.js} +5 -5
- package/.medusa/server/src/modules/form-response/models/form-responses.js +2 -1
- package/.medusa/server/src/workflows/form-response/steps/create-form-response-step.js +18 -2
- package/.medusa/server/src/workflows/form-response/workflows/create-form-response.js +6 -3
- package/package.json +1 -1
|
@@ -17,6 +17,24 @@ async function GET(req, res) {
|
|
|
17
17
|
id: id,
|
|
18
18
|
},
|
|
19
19
|
});
|
|
20
|
+
if (formResponse.product) {
|
|
21
|
+
const { data: productVariant } = await query.graph({
|
|
22
|
+
entity: "product_variant",
|
|
23
|
+
fields: [
|
|
24
|
+
"id",
|
|
25
|
+
"title",
|
|
26
|
+
"product.handle",
|
|
27
|
+
"product.id",
|
|
28
|
+
"product.title",
|
|
29
|
+
],
|
|
30
|
+
filters: {
|
|
31
|
+
id: formResponse.product,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
if (productVariant) {
|
|
35
|
+
formResponse.product = productVariant[0];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
20
38
|
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
|
|
21
39
|
formResponse,
|
|
22
40
|
}));
|
|
@@ -45,4 +63,4 @@ async function DELETE(req, res) {
|
|
|
45
63
|
workflow,
|
|
46
64
|
}));
|
|
47
65
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Zvcm0tcmVzcG9uc2UvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWVBLGtCQWlEQztBQUVELGtCQWlCQztBQUVELHdCQWVDO0FBaEdELCtEQUlzQztBQUN0Qyw2RUFHdUQ7QUFHaEQsS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBK0IsRUFDL0IsR0FBbUI7SUFFbkIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDMUIsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFM0MsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUNyQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07WUFDOUIsT0FBTyxFQUFFO2dCQUNQLEVBQUUsRUFBRSxFQUFFO2FBQ1A7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDakQsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIsTUFBTSxFQUFFO29CQUNOLElBQUk7b0JBQ0osT0FBTztvQkFDUCxnQkFBZ0I7b0JBQ2hCLFlBQVk7b0JBQ1osZUFBZTtpQkFDaEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLEVBQUUsRUFBRSxZQUFZLENBQUMsT0FBTztpQkFDekI7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixZQUFZLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxvQ0FBcUIsRUFBQztZQUNwQixZQUFZO1NBQ2IsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMscUNBQXFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsa0NBQW1CLEVBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQXVELEVBQ3ZELEdBQW1CO0lBRW5CLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzFCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFFL0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxzQ0FBMEIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ2pFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRTtLQUN2QixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsb0NBQXFCLEVBQUM7UUFDcEIsTUFBTTtLQUNQLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVNLEtBQUssVUFBVSxNQUFNLENBQzFCLEdBQStCLEVBQy9CLEdBQW1CO0lBRW5CLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUEsc0NBQTBCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN6RCxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7S0FDZCxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsb0NBQXFCLEVBQUM7UUFDcEIsUUFBUTtLQUNULENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -17,6 +17,7 @@ exports.AdminFormResponseFields = [
|
|
|
17
17
|
"state",
|
|
18
18
|
"current_business_details",
|
|
19
19
|
"business_budget",
|
|
20
|
+
"product",
|
|
20
21
|
"created_at",
|
|
21
22
|
"updated_at",
|
|
22
23
|
];
|
|
@@ -44,4 +45,4 @@ const handleSearchMiddleware = (req, res, next) => {
|
|
|
44
45
|
next();
|
|
45
46
|
};
|
|
46
47
|
exports.handleSearchMiddleware = handleSearchMiddleware;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9mb3JtLXJlc3BvbnNlL3F1ZXJ5LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNYSxRQUFBLHVCQUF1QixHQUFHO0lBQ3JDLElBQUk7SUFDSixRQUFRO0lBQ1IsTUFBTTtJQUNOLE1BQU07SUFDTixXQUFXO0lBQ1gsZUFBZTtJQUNmLE9BQU87SUFDUCxNQUFNO0lBQ04scUJBQXFCO0lBQ3JCLFVBQVU7SUFDVixTQUFTO0lBQ1QsWUFBWTtJQUNaLE9BQU87SUFDUCwwQkFBMEI7SUFDMUIsaUJBQWlCO0lBQ2pCLFNBQVM7SUFDVCxZQUFZO0lBQ1osWUFBWTtDQUNiLENBQUM7QUFFVyxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSwrQkFBdUI7UUFDakMsTUFBTSxFQUFFLElBQUk7S0FDYjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSwrQkFBdUI7UUFDakMsTUFBTSxFQUFFLElBQUk7S0FDYjtDQUNGLENBQUM7QUFFSyxNQUFNLHNCQUFzQixHQUFHLENBQ3BDLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLElBQXdCLEVBQ3hCLEVBQUU7SUFDRixNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7SUFFdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNOLENBQUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7WUFDakQsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHO2dCQUMxQixFQUFFLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3ZDLEVBQUUsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbkMsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO2FBQy9CLENBQUMsQ0FBQztRQUNMLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksRUFBRSxDQUFDO0FBQ1QsQ0FBQyxDQUFDO0FBakJXLFFBQUEsc0JBQXNCLDBCQWlCakMifQ==
|
|
@@ -12,8 +12,44 @@ async function GET(req, res) {
|
|
|
12
12
|
filters: req.filterableFields,
|
|
13
13
|
pagination: req.queryConfig.pagination,
|
|
14
14
|
});
|
|
15
|
+
// Collect all product variant IDs from form responses
|
|
16
|
+
const productVariantIds = new Set();
|
|
17
|
+
formResponses.forEach((response) => {
|
|
18
|
+
if (response.product) {
|
|
19
|
+
productVariantIds.add(response.product);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
// Fetch product variant data if any product IDs exist
|
|
23
|
+
let productVariantDataMap = new Map();
|
|
24
|
+
if (productVariantIds.size > 0) {
|
|
25
|
+
const productVariantQueryOptions = {
|
|
26
|
+
entity: "product_variant",
|
|
27
|
+
fields: [
|
|
28
|
+
"id",
|
|
29
|
+
"title",
|
|
30
|
+
"product.handle",
|
|
31
|
+
"product.id",
|
|
32
|
+
"product.title",
|
|
33
|
+
],
|
|
34
|
+
filters: {
|
|
35
|
+
id: [...productVariantIds],
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
const { data: productVariantResults } = await query.graph(productVariantQueryOptions);
|
|
39
|
+
productVariantDataMap = new Map(productVariantResults.map((variant) => [variant.id, variant]));
|
|
40
|
+
}
|
|
41
|
+
// Populate product field with actual product variant data
|
|
42
|
+
const populatedFormResponses = formResponses.map((response) => {
|
|
43
|
+
if (response.product && productVariantDataMap.has(response.product)) {
|
|
44
|
+
return {
|
|
45
|
+
...response,
|
|
46
|
+
product: productVariantDataMap.get(response.product),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return response;
|
|
50
|
+
});
|
|
15
51
|
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
|
|
16
|
-
formResponses,
|
|
52
|
+
formResponses: populatedFormResponses,
|
|
17
53
|
count: metadata?.count,
|
|
18
54
|
offset: metadata?.skip,
|
|
19
55
|
limit: metadata?.take,
|
|
@@ -24,4 +60,4 @@ async function GET(req, res) {
|
|
|
24
60
|
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500, error));
|
|
25
61
|
}
|
|
26
62
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Zvcm0tcmVzcG9uc2Uvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxrQkE0RUM7QUFsRkQsNERBSW1DO0FBRTVCLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQStCLEVBQy9CLEdBQW1CO0lBRW5CLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTNDLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMxRCxNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07WUFDOUIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDN0IsVUFBVSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVTtTQUN2QyxDQUFDLENBQUM7UUFFSCxzREFBc0Q7UUFDdEQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQzVDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxzREFBc0Q7UUFDdEQsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBQ25ELElBQUksaUJBQWlCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sMEJBQTBCLEdBQUc7Z0JBQ2pDLE1BQU0sRUFBRSxpQkFBaUI7Z0JBQ3pCLE1BQU0sRUFBRTtvQkFDTixJQUFJO29CQUNKLE9BQU87b0JBQ1AsZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLGVBQWU7aUJBQ2hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxFQUFFLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO2lCQUMzQjthQUNGLENBQUM7WUFFRixNQUFNLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUN2RCwwQkFBMEIsQ0FDM0IsQ0FBQztZQUVGLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUM3QixxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUM5RCxDQUFDO1FBQ0osQ0FBQztRQUVELDBEQUEwRDtRQUMxRCxNQUFNLHNCQUFzQixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM1RCxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUkscUJBQXFCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxPQUFPO29CQUNMLEdBQUcsUUFBUTtvQkFDWCxPQUFPLEVBQUUscUJBQXFCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7aUJBQ3JELENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsb0NBQXFCLEVBQUM7WUFDcEIsYUFBYSxFQUFFLHNCQUFzQjtZQUNyQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUs7WUFDdEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJO1lBQ3RCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEtBQUssQ0FDViwrQ0FBK0MsRUFDL0MsS0FBSyxDQUFDLE9BQU8sQ0FDZCxDQUFDO1FBQ0YsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsa0NBQW1CLEVBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -5,6 +5,8 @@ const validators_1 = require("./store/form-response/validators");
|
|
|
5
5
|
const query_config_1 = require("./admin/form-response/query-config");
|
|
6
6
|
const validators_2 = require("./admin/form-response/validators");
|
|
7
7
|
const validators_3 = require("./store/newsletter-signup/validators");
|
|
8
|
+
const validators_4 = require("./store/slot-listing/validators");
|
|
9
|
+
const query_config_2 = require("./store/slot-listing/query-config");
|
|
8
10
|
exports.default = (0, framework_1.defineMiddlewares)({
|
|
9
11
|
routes: [
|
|
10
12
|
{
|
|
@@ -15,6 +17,11 @@ exports.default = (0, framework_1.defineMiddlewares)({
|
|
|
15
17
|
(0, framework_1.validateAndTransformBody)(validators_1.createFormResponseSchema),
|
|
16
18
|
],
|
|
17
19
|
},
|
|
20
|
+
{
|
|
21
|
+
matcher: "/store/slot-listing",
|
|
22
|
+
method: "GET",
|
|
23
|
+
middlewares: [(0, framework_1.validateAndTransformQuery)(validators_4.GetSlotParams, query_config_2.slotListingQueryConfig.list)],
|
|
24
|
+
},
|
|
18
25
|
{
|
|
19
26
|
matcher: "/admin/form-response",
|
|
20
27
|
method: "GET",
|
|
@@ -47,4 +54,4 @@ exports.default = (0, framework_1.defineMiddlewares)({
|
|
|
47
54
|
},
|
|
48
55
|
],
|
|
49
56
|
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBSTZCO0FBQzdCLGlFQUE0RTtBQUM1RSxxRUFHNEM7QUFDNUMsaUVBRzBDO0FBQzFDLHFFQUFvRjtBQUNwRixnRUFBOEQ7QUFDOUQsb0VBQXlFO0FBRXpFLGtCQUFlLElBQUEsNkJBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ047WUFDRSxNQUFNLEVBQUUsTUFBTTtZQUNkLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsV0FBVyxFQUFFO2dCQUNYLFlBQVk7Z0JBQ1osSUFBQSxvQ0FBd0IsRUFBQyxxQ0FBd0IsQ0FBQzthQUNuRDtTQUNGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsV0FBVyxFQUFFLENBQUMsSUFBQSxxQ0FBeUIsRUFBQywwQkFBYSxFQUFDLHFDQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLE1BQU0sRUFBRSxLQUFLO1lBQ2IsV0FBVyxFQUFFO2dCQUNYLElBQUEscUNBQXlCLEVBQ3ZCLGtDQUFxQixFQUNyQixtQ0FBb0IsQ0FBQyxJQUFJLENBQzFCO2dCQUNELHFDQUFzQjthQUN2QjtTQUNGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsMEJBQTBCO1lBQ25DLE1BQU0sRUFBRSxLQUFLO1lBQ2IsV0FBVyxFQUFFO2dCQUNYLElBQUEscUNBQXlCLEVBQ3ZCLGtDQUFxQixFQUNyQixtQ0FBb0IsQ0FBQyxRQUFRLENBQzlCO2FBQ0Y7U0FDRjtRQUNEO1lBQ0UsT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxNQUFNLEVBQUUsS0FBSztZQUNiLFdBQVcsRUFBRSxDQUFDLElBQUEsb0NBQXdCLEVBQUMsbUNBQXNCLENBQUMsQ0FBQztTQUNoRTtRQUNEO1lBQ0UsT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxNQUFNLEVBQUUsTUFBTTtZQUNkLFdBQVcsRUFBRSxDQUFDLElBQUEsb0NBQXdCLEVBQUMseUNBQTRCLENBQUMsQ0FBQztTQUN0RTtRQUNEO1lBQ0UsT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxNQUFNLEVBQUUsS0FBSztZQUNiLFdBQVcsRUFBRSxDQUFDLHFDQUFzQixDQUFDO1NBQ3RDO0tBQ0Y7Q0FDRixDQUFDLENBQUMifQ==
|
|
@@ -11,8 +11,8 @@ async function POST(req, res) {
|
|
|
11
11
|
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ formResponse }, `Form ${formResponse.id} created successfully`));
|
|
12
12
|
}
|
|
13
13
|
catch (error) {
|
|
14
|
-
|
|
14
|
+
console.log(error);
|
|
15
15
|
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500, error));
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Zvcm0tcmVzcG9uc2Uvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxvQkF1QkM7QUE5QkQsb0VBQThFO0FBQzlFLDREQUltQztBQUU1QixLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUF1RCxFQUN2RCxHQUFtQjtJQUVuQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3RCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTNDLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxJQUFBLDBDQUEwQixFQUMvRCxHQUFHLENBQUMsS0FBSyxDQUNWLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdkIsT0FBTyxJQUFBLDhCQUFlLEVBQ3BCLEdBQUcsRUFDSCxJQUFBLG9DQUFxQixFQUNuQixFQUFFLFlBQVksRUFBRSxFQUNoQixRQUFRLFlBQVksQ0FBQyxFQUFFLHVCQUF1QixDQUMvQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsa0NBQW1CLEVBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -9,6 +9,7 @@ const requiredFieldsMap = {
|
|
|
9
9
|
"mobile_number",
|
|
10
10
|
"scheduled_date_time",
|
|
11
11
|
"city",
|
|
12
|
+
"product",
|
|
12
13
|
"page",
|
|
13
14
|
],
|
|
14
15
|
[types_1.FormResponseType.STORE_VISIT]: [
|
|
@@ -16,6 +17,7 @@ const requiredFieldsMap = {
|
|
|
16
17
|
"mobile_number",
|
|
17
18
|
"scheduled_date_time",
|
|
18
19
|
"store_id",
|
|
20
|
+
"product",
|
|
19
21
|
"page",
|
|
20
22
|
],
|
|
21
23
|
[types_1.FormResponseType.BOOK_YOUR_TRIAL]: [
|
|
@@ -23,6 +25,7 @@ const requiredFieldsMap = {
|
|
|
23
25
|
"mobile_number",
|
|
24
26
|
"scheduled_date_time",
|
|
25
27
|
"store_id",
|
|
28
|
+
"product",
|
|
26
29
|
"page",
|
|
27
30
|
],
|
|
28
31
|
[types_1.FormResponseType.NEED_EXPERT_ASSISTANT]: [
|
|
@@ -109,12 +112,14 @@ exports.createFormResponseSchema = zod_1.z
|
|
|
109
112
|
nominee_name: zod_1.z.string().optional(),
|
|
110
113
|
address: zod_1.z.string().optional(),
|
|
111
114
|
selected_goal: zod_1.z.string().optional(),
|
|
115
|
+
product: zod_1.z.string().optional(),
|
|
112
116
|
})
|
|
113
117
|
.superRefine((data, ctx) => {
|
|
114
118
|
const isMissing = (field) => !data[field] ||
|
|
115
119
|
data[field] === null ||
|
|
116
120
|
data[field] === "";
|
|
117
121
|
const requiredFields = requiredFieldsMap[data.type];
|
|
122
|
+
const notRequiredFields = ["product"];
|
|
118
123
|
if (!requiredFields) {
|
|
119
124
|
ctx.addIssue({
|
|
120
125
|
code: zod_1.z.ZodIssueCode.custom,
|
|
@@ -125,12 +130,14 @@ exports.createFormResponseSchema = zod_1.z
|
|
|
125
130
|
}
|
|
126
131
|
requiredFields.forEach((field) => {
|
|
127
132
|
if (isMissing(field)) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
+
if (!notRequiredFields.includes(field)) {
|
|
134
|
+
ctx.addIssue({
|
|
135
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
136
|
+
path: [field],
|
|
137
|
+
message: `${field} is required`,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
133
140
|
}
|
|
134
141
|
});
|
|
135
142
|
});
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvZm9ybS1yZXNwb25zZS92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtFQUlnRDtBQUNoRCw2QkFBd0I7QUFFeEIsTUFBTSxpQkFBaUIsR0FBdUM7SUFDNUQsQ0FBQyx3QkFBZ0IsQ0FBQyxZQUFZLENBQUMsRUFBRTtRQUMvQixXQUFXO1FBQ1gsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixNQUFNO1FBQ04sU0FBUztRQUNULE1BQU07S0FDUDtJQUNELENBQUMsd0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDOUIsV0FBVztRQUNYLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsVUFBVTtRQUNWLFNBQVM7UUFDVCxNQUFNO0tBQ1A7SUFDRCxDQUFDLHdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ2xDLFdBQVc7UUFDWCxlQUFlO1FBQ2YscUJBQXFCO1FBQ3JCLFVBQVU7UUFDVixTQUFTO1FBQ1QsTUFBTTtLQUNQO0lBQ0QsQ0FBQyx3QkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1FBQ3hDLFdBQVc7UUFDWCxlQUFlO1FBQ2YsTUFBTTtRQUNOLE9BQU87UUFDUCxNQUFNO0tBQ1A7SUFDRCxDQUFDLHdCQUFnQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDakUsQ0FBQyx3QkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO1FBQ3RDLFdBQVc7UUFDWCxlQUFlO1FBQ2YsT0FBTztRQUNQLFlBQVk7UUFDWixNQUFNO1FBQ04sT0FBTztRQUNQLE1BQU07S0FDUDtJQUNELENBQUMsd0JBQWdCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtRQUNyQyxXQUFXO1FBQ1gsZUFBZTtRQUNmLE9BQU87UUFDUCwwQkFBMEI7UUFDMUIsaUJBQWlCO1FB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
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Nsb3QtbGlzdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.slotListingQueryConfig = void 0;
|
|
4
|
+
exports.slotListingQueryConfig = {
|
|
5
|
+
list: {
|
|
6
|
+
defaults: [], // or [] since we’re not fetching from DB
|
|
7
|
+
isList: true,
|
|
8
|
+
},
|
|
9
|
+
retrieve: {
|
|
10
|
+
defaults: [],
|
|
11
|
+
isList: false,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9zdG9yZS9zbG90LWxpc3RpbmcvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLEVBQUUsRUFBRSx5Q0FBeUM7UUFDdkQsTUFBTSxFQUFFLElBQUk7S0FDYjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxFQUFFO1FBQ1osTUFBTSxFQUFFLEtBQUs7S0FDZDtDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const api_response_1 = require("../../../lib/api-response");
|
|
5
|
+
const form_response_1 = require("../../../modules/form-response");
|
|
6
|
+
const generateSlots = (type, date, now) => {
|
|
7
|
+
const slots = [];
|
|
8
|
+
const selectedDate = new Date(date);
|
|
9
|
+
if (type === "try_at_home") {
|
|
10
|
+
let start = new Date(date + "T11:30:00");
|
|
11
|
+
const end = new Date(date + "T19:30:00");
|
|
12
|
+
while (start <= end && slots.length < 4) {
|
|
13
|
+
slots.push(start.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }));
|
|
14
|
+
start.setHours(start.getHours() + 2);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (type === "virtual_call") {
|
|
18
|
+
let start = new Date(date + "T11:30:00");
|
|
19
|
+
const end = new Date(date + "T20:00:00");
|
|
20
|
+
while (start <= end) {
|
|
21
|
+
if (selectedDate.toDateString() === now.toDateString()) {
|
|
22
|
+
const slotTime = new Date(start);
|
|
23
|
+
if (slotTime.getTime() <= now.getTime() + 60 * 60 * 1000) {
|
|
24
|
+
start.setMinutes(start.getMinutes() + 30);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
slots.push(start.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }));
|
|
29
|
+
start.setMinutes(start.getMinutes() + 30);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (type === "store_visit") {
|
|
33
|
+
let start = new Date(date + "T11:30:00");
|
|
34
|
+
const end = new Date(date + "T20:30:00");
|
|
35
|
+
while (start <= end) {
|
|
36
|
+
slots.push(start.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }));
|
|
37
|
+
start.setMinutes(start.getMinutes() + 30);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return slots;
|
|
41
|
+
};
|
|
42
|
+
const GET = async (req, res) => {
|
|
43
|
+
try {
|
|
44
|
+
const { date, type, store_id } = req.validatedQuery;
|
|
45
|
+
if (!date || !type) {
|
|
46
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ slots: [], booking: [] }, "Please provide both date and type"));
|
|
47
|
+
}
|
|
48
|
+
const now = new Date();
|
|
49
|
+
let slots = generateSlots(type, date, now);
|
|
50
|
+
// 🔎 Get existing bookings for this date + type
|
|
51
|
+
const formService = req.scope.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
52
|
+
const startOfDay = new Date(date);
|
|
53
|
+
startOfDay.setHours(0, 0, 0, 0);
|
|
54
|
+
const endOfDay = new Date(date);
|
|
55
|
+
endOfDay.setHours(23, 59, 59, 999);
|
|
56
|
+
const existing = await formService.listFormResponses({
|
|
57
|
+
type: type === "virtual_call"
|
|
58
|
+
? "VIRTUAL_CALL"
|
|
59
|
+
: type === "store_visit"
|
|
60
|
+
? "STORE_VISIT"
|
|
61
|
+
: type === "try_at_home"
|
|
62
|
+
? "BOOK_YOUR_TRIAL"
|
|
63
|
+
: "",
|
|
64
|
+
scheduled_date_time: {
|
|
65
|
+
$gte: startOfDay.toISOString(),
|
|
66
|
+
$lte: endOfDay.toISOString(),
|
|
67
|
+
},
|
|
68
|
+
store_id: store_id,
|
|
69
|
+
});
|
|
70
|
+
// ⛔ Remove already booked slots
|
|
71
|
+
const bookedTimes = existing.map((b) => new Date(b.scheduled_date_time || "").toLocaleTimeString([], {
|
|
72
|
+
hour: "2-digit",
|
|
73
|
+
minute: "2-digit",
|
|
74
|
+
}));
|
|
75
|
+
slots = slots.filter((slot) => !bookedTimes.includes(slot));
|
|
76
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ date, type, slots }, "Fetched appointment slots"));
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ slots: [], booking: [] }, `Error generating slots: ${e.message}`));
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
exports.GET = GET;
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Nsb3QtbGlzdGluZy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw0REFHbUM7QUFDbkMsa0VBQXNFO0FBS3RFLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYyxFQUFFLElBQVksRUFBRSxHQUFTLEVBQUUsRUFBRTtJQUNoRSxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7SUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEMsSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQztRQUV6QyxPQUFPLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUNSLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO1lBQ0YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUM1QixJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRXpD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
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetSlotParams = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.GetSlotParams = zod_1.z.object({
|
|
6
|
+
date: zod_1.z
|
|
7
|
+
.string()
|
|
8
|
+
.regex(/^\d{4}-\d{2}-\d{2}$/, "Date must be in YYYY-MM-DD format"),
|
|
9
|
+
type: zod_1.z.enum(["try_at_home", "virtual_call", "store_visit"]),
|
|
10
|
+
store_id: zod_1.z.string()
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvc2xvdC1saXN0aW5nL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBRVgsUUFBQSxhQUFhLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sRUFBRTtTQUNSLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxtQ0FBbUMsQ0FBQztJQUNwRSxJQUFJLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDNUQsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDckIsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatDateToDDMMYYYY = void 0;
|
|
4
|
+
const formatDateToDDMMYYYY = (date) => {
|
|
5
|
+
const d = new Date(date);
|
|
6
|
+
const day = String(d.getDate()).padStart(2, "0");
|
|
7
|
+
const month = String(d.getMonth() + 1).padStart(2, "0");
|
|
8
|
+
const year = d.getFullYear();
|
|
9
|
+
return `${day}-${month}-${year}`;
|
|
10
|
+
};
|
|
11
|
+
exports.formatDateToDDMMYYYY = formatDateToDDMMYYYY;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQU8sTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQW1CLEVBQUUsRUFBRTtJQUMxRCxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLE9BQU8sR0FBRyxHQUFHLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ25DLENBQUMsQ0FBQTtBQU5ZLFFBQUEsb0JBQW9CLHdCQU1oQyJ9
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.Migration20250818070635 = void 0;
|
|
4
4
|
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
-
class
|
|
5
|
+
class Migration20250818070635 extends migrations_1.Migration {
|
|
6
6
|
async up() {
|
|
7
|
-
this.addSql(`create table if not exists "form_responses" ("id" text not null, "type" text check ("type" in ('VIRTUAL_CALL', 'STORE_VISIT', 'BOOK_YOUR_TRIAL', 'NEED_EXPERT_ASSISTANT', 'GET_IN_TOUCH', 'TAKE_THE_FIRST_STEP', 'ENTER_YOUR_DETAILS', 'REQUEST_A_SERVICE', 'GB_PLANNER', 'NEWSLETTER_SIGNUP', 'GB_PLAN_INQUIRY', 'ORDER_KIT')) null, "page" text null, "full_name" text null, "mobile_number" text null, "email" text null, "city" text null, "scheduled_date_time" text null, "store_id" text null, "message" text null, "resume_url" text null, "state" text null, "current_business_details" text null, "status" text check ("status" in ('PENDING', 'RESOLVED')) not null default 'PENDING', "business_budget" text null, "selected_goal" text null, "address" text null, "nominee_name" text null, "relationship_with_nominee" text check ("relationship_with_nominee" in ('SPOUSE', 'CHILD', 'PARENT', 'OTHER')) null, "nationality" text check ("nationality" in ('INDIAN', 'NRI', 'FOREIGN_NATIONAL')) null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "form_responses_pkey" primary key ("id"));`);
|
|
7
|
+
this.addSql(`create table if not exists "form_responses" ("id" text not null, "type" text check ("type" in ('VIRTUAL_CALL', 'STORE_VISIT', 'BOOK_YOUR_TRIAL', 'NEED_EXPERT_ASSISTANT', 'GET_IN_TOUCH', 'TAKE_THE_FIRST_STEP', 'ENTER_YOUR_DETAILS', 'REQUEST_A_SERVICE', 'GB_PLANNER', 'NEWSLETTER_SIGNUP', 'GB_PLAN_INQUIRY', 'ORDER_KIT')) null, "page" text null, "full_name" text null, "mobile_number" text null, "email" text null, "city" text null, "scheduled_date_time" text null, "store_id" text null, "message" text null, "resume_url" text null, "state" text null, "current_business_details" text null, "status" text check ("status" in ('PENDING', 'RESOLVED')) not null default 'PENDING', "business_budget" text null, "selected_goal" text null, "address" text null, "nominee_name" text null, "relationship_with_nominee" text check ("relationship_with_nominee" in ('SPOUSE', 'CHILD', 'PARENT', 'OTHER')) null, "product" text null, "nationality" text check ("nationality" in ('INDIAN', 'NRI', 'FOREIGN_NATIONAL')) null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "form_responses_pkey" primary key ("id"));`);
|
|
8
8
|
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_form_responses_deleted_at" ON "form_responses" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
9
9
|
this.addSql(`create table if not exists "newsletter_subscriptions" ("id" text not null, "email" text not null, "name" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "newsletter_subscriptions_pkey" primary key ("id"));`);
|
|
10
10
|
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_newsletter_subscriptions_deleted_at" ON "newsletter_subscriptions" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
@@ -14,5 +14,5 @@ class Migration20250715121353 extends migrations_1.Migration {
|
|
|
14
14
|
this.addSql(`drop table if exists "newsletter_subscriptions" cascade;`);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
exports.
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
exports.Migration20250818070635 = Migration20250818070635;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA4MTgwNzA2MzUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9mb3JtLXJlc3BvbnNlL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA4MTgwNzA2MzUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLG1xQ0FBbXFDLENBQUMsQ0FBQztRQUNqckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1SEFBdUgsQ0FBQyxDQUFDO1FBRXJJLElBQUksQ0FBQyxNQUFNLENBQUMsc1RBQXNULENBQUMsQ0FBQztRQUNwVSxJQUFJLENBQUMsTUFBTSxDQUFDLDJJQUEySSxDQUFDLENBQUM7SUFDM0osQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsTUFBTSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUVGO0FBaEJELDBEQWdCQyJ9
|
|
@@ -23,6 +23,7 @@ exports.FormResponses = utils_1.model.define("form_responses", {
|
|
|
23
23
|
address: utils_1.model.text().nullable(),
|
|
24
24
|
nominee_name: utils_1.model.text().nullable(),
|
|
25
25
|
relationship_with_nominee: utils_1.model.enum(types_1.RelationshipWithNominee).nullable(),
|
|
26
|
+
product: utils_1.model.text().nullable(),
|
|
26
27
|
nationality: utils_1.model.enum(types_1.Nationality).nullable(),
|
|
27
28
|
});
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yZXNwb25zZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9mb3JtLXJlc3BvbnNlL21vZGVscy9mb3JtLXJlc3BvbnNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBd0M7QUFDeEMsa0VBS2dEO0FBRW5DLFFBQUEsYUFBYSxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUU7SUFDMUQsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFDN0MsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsd0JBQWdCLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDN0MsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsU0FBUyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsYUFBYSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsS0FBSyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUIsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsbUJBQW1CLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QyxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxPQUFPLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNoQyxVQUFVLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxLQUFLLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5Qix3QkFBd0IsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pELE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLDBCQUFrQixDQUFDLENBQUMsT0FBTyxDQUFDLDBCQUFrQixDQUFDLE9BQU8sQ0FBQztJQUMxRSxlQUFlLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QyxhQUFhLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN0QyxPQUFPLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNoQyxZQUFZLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNyQyx5QkFBeUIsRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLCtCQUF1QixDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3pFLE9BQU8sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDaEQsQ0FBQyxDQUFDIn0=
|
|
@@ -3,12 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createFormResponseStep = void 0;
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const form_response_1 = require("../../../modules/form-response");
|
|
6
|
+
const helper_1 = require("../../../lib/helper");
|
|
6
7
|
exports.createFormResponseStep = (0, workflows_sdk_1.createStep)("create-form-response-step", async (data, { container }) => {
|
|
7
8
|
const formService = container.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
9
|
+
// find all records with same mobile
|
|
10
|
+
const existing = await formService.listFormResponses({
|
|
11
|
+
mobile_number: data.mobile_number,
|
|
12
|
+
});
|
|
13
|
+
if (existing.length > 0) {
|
|
14
|
+
// check if any record has the same date + same type
|
|
15
|
+
const sameDate = existing.find((res) => (0, helper_1.formatDateToDDMMYYYY)(res.scheduled_date_time || "") ===
|
|
16
|
+
(0, helper_1.formatDateToDDMMYYYY)(data.scheduled_date_time || "") &&
|
|
17
|
+
res.type === data.type);
|
|
18
|
+
if (sameDate) {
|
|
19
|
+
throw new Error(`❌ Your booking already exists for ${sameDate.scheduled_date_time}`);
|
|
20
|
+
}
|
|
21
|
+
const formResponse = await formService.createFormResponses(data);
|
|
22
|
+
return new workflows_sdk_1.StepResponse({ ...formResponse, __operation: "booking" }, formResponse.id);
|
|
23
|
+
}
|
|
8
24
|
const formResponse = await formService.createFormResponses(data);
|
|
9
|
-
return new workflows_sdk_1.StepResponse(formResponse, formResponse.id);
|
|
25
|
+
return new workflows_sdk_1.StepResponse({ ...formResponse, __operation: "create" }, formResponse.id);
|
|
10
26
|
}, async (id, { container }) => {
|
|
11
27
|
const formService = container.resolve(form_response_1.FORM_RESPONSE_MODULE);
|
|
12
28
|
await formService.deleteFormResponses([id]);
|
|
13
29
|
});
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZvcm0tcmVzcG9uc2Utc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvZm9ybS1yZXNwb25zZS9zdGVwcy9jcmVhdGUtZm9ybS1yZXNwb25zZS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxrRUFBc0U7QUFFdEUsZ0RBQTJEO0FBRTlDLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSwwQkFBVSxFQUM5QywyQkFBMkIsRUFDM0IsS0FBSyxFQUFFLElBQTRCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3BELE1BQU0sV0FBVyxHQUNmLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0NBQW9CLENBQUMsQ0FBQztJQUUxQyxvQ0FBb0M7SUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0tBQ2xDLENBQUMsQ0FBQztJQUVILElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QixvREFBb0Q7UUFDcEQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FDNUIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNOLElBQUEsNkJBQW9CLEVBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztZQUNuRCxJQUFBLDZCQUFvQixFQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7WUFDcEQsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUN6QixDQUFDO1FBRUYsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQ2IscUNBQXFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUNwRSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sV0FBVyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpFLE9BQU8sSUFBSSw0QkFBWSxDQUNyQixFQUFFLEdBQUcsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFDM0MsWUFBWSxDQUFDLEVBQUUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLFlBQVksR0FBRyxNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqRSxPQUFPLElBQUksNEJBQVksQ0FDckIsRUFBRSxHQUFHLFlBQVksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEVBQzFDLFlBQVksQ0FBQyxFQUFFLENBQ2hCLENBQUM7QUFDSixDQUFDLEVBRUQsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDMUIsTUFBTSxXQUFXLEdBQ2YsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0IsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -7,11 +7,14 @@ const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
|
7
7
|
exports.createFormResponseWorkflow = (0, workflows_sdk_1.createWorkflow)("create-form-response-workflow", (input) => {
|
|
8
8
|
const formResponse = (0, steps_1.createFormResponseStep)(input);
|
|
9
9
|
(0, core_flows_1.emitEventStep)({
|
|
10
|
-
eventName: "form-response
|
|
10
|
+
eventName: "form-response",
|
|
11
11
|
data: {
|
|
12
|
-
formResponse,
|
|
12
|
+
operation: formResponse.__operation, // "create" or "booking"
|
|
13
|
+
data: formResponse,
|
|
13
14
|
},
|
|
15
|
+
}).config({
|
|
16
|
+
name: "form-response-event",
|
|
14
17
|
});
|
|
15
18
|
return new workflows_sdk_1.WorkflowResponse(formResponse);
|
|
16
19
|
});
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWZvcm0tcmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2Zvcm0tcmVzcG9uc2Uvd29ya2Zsb3dzL2NyZWF0ZS1mb3JtLXJlc3BvbnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcyQztBQUMzQyxvQ0FBa0Q7QUFFbEQsNERBQTREO0FBRS9DLFFBQUEsMEJBQTBCLEdBQUcsSUFBQSw4QkFBYyxFQUN0RCwrQkFBK0IsRUFDL0IsQ0FBQyxLQUE2QixFQUFFLEVBQUU7SUFDaEMsTUFBTSxZQUFZLEdBQUcsSUFBQSw4QkFBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVuRCxJQUFBLDBCQUFhLEVBQUM7UUFDWixTQUFTLEVBQUUsZUFBZTtRQUMxQixJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSx3QkFBd0I7WUFDN0QsSUFBSSxFQUFFLFlBQVk7U0FDbkI7S0FDRixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1IsSUFBSSxFQUFFLHFCQUFxQjtLQUM1QixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksZ0NBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUNGLENBQUMifQ==
|