@lyxa.ai/marketing 1.0.42 → 1.0.43
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/lib/event/event-initializations.d.ts.map +1 -1
- package/dist/lib/event/event-initializations.js +1 -0
- package/dist/lib/event/event-initializations.js.map +1 -1
- package/dist/lib/event/event-listeners/event-listeners.d.ts +1 -0
- package/dist/lib/event/event-listeners/event-listeners.d.ts.map +1 -1
- package/dist/lib/event/event-listeners/event-listeners.js +52 -0
- package/dist/lib/event/event-listeners/event-listeners.js.map +1 -1
- package/dist/lib/event/events/marketing-product-seed.event.d.ts +17 -0
- package/dist/lib/event/events/marketing-product-seed.event.d.ts.map +1 -0
- package/dist/lib/event/events/marketing-product-seed.event.js +12 -0
- package/dist/lib/event/events/marketing-product-seed.event.js.map +1 -0
- package/dist/lib/index.d.ts +165 -83
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/modules/coupon/routers/coupon.router.d.ts +116 -0
- package/dist/lib/modules/coupon/routers/coupon.router.d.ts.map +1 -1
- package/dist/lib/modules/coupon/routers/coupon.router.js +33 -1
- package/dist/lib/modules/coupon/routers/coupon.router.js.map +1 -1
- package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts +32 -0
- package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -0
- package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js +503 -0
- package/dist/lib/modules/coupon/services/patterns/repository/CouponMetricsRepository.js.map +1 -0
- package/dist/lib/modules/coupon/validations/coupon.validation.d.ts +407 -1
- package/dist/lib/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
- package/dist/lib/modules/coupon/validations/coupon.validation.js +39 -1
- package/dist/lib/modules/coupon/validations/coupon.validation.js.map +1 -1
- package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts +1118 -0
- package/dist/lib/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -0
- package/dist/lib/modules/coupon/validations/create-coupon.validation.js +13 -0
- package/dist/lib/modules/coupon/validations/create-coupon.validation.js.map +1 -0
- package/dist/lib/modules/coupon/validations/index.d.ts +1 -0
- package/dist/lib/modules/coupon/validations/index.d.ts.map +1 -1
- package/dist/lib/modules/coupon/validations/index.js +1 -0
- package/dist/lib/modules/coupon/validations/index.js.map +1 -1
- package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts +29 -72
- package/dist/lib/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js +3 -16
- package/dist/lib/modules/limited-time-offer/campaign/campaign.router.js.map +1 -1
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts +36 -0
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts.map +1 -0
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.js +48 -0
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.js.map +1 -0
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts +22 -0
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts.map +1 -0
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.js +131 -0
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.js.map +1 -0
- package/dist/lib/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +78 -78
- package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts +1 -2
- package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js +6 -11
- package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.js.map +1 -1
- package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts +16 -51
- package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js +33 -156
- package/dist/lib/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.js.map +1 -1
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.builder.d.ts +8 -0
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.builder.d.ts.map +1 -0
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.builder.js +13 -0
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.builder.js.map +1 -0
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.repository.d.ts +14 -0
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.repository.d.ts.map +1 -0
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.repository.js +77 -0
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.repository.js.map +1 -0
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.service.d.ts +1 -2
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.service.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.service.js +19 -26
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer-config.service.js.map +1 -1
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer.router.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/config/limited-time-offer.router.js.map +1 -1
- package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts +35 -78
- package/dist/lib/modules/limited-time-offer/limited-time-offer.router.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts +53 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts.map +1 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js +55 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js.map +1 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +18 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js +126 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.repository.js.map +1 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +6 -6
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.js +1 -2
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.router.js.map +1 -1
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts +1 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.d.ts.map +1 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.js +2 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.service.js.map +1 -0
- package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +24 -24
- package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts +3 -1
- package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js +13 -38
- package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.js.map +1 -1
- package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +19 -8
- package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
- package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js +19 -27
- package/dist/lib/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.js.map +1 -1
- package/dist/lib/modules/marketing/routers/marketing.router.d.ts +12 -3
- package/dist/lib/modules/marketing/routers/marketing.router.d.ts.map +1 -1
- package/dist/lib/modules/marketing/routers/marketing.router.js +7 -0
- package/dist/lib/modules/marketing/routers/marketing.router.js.map +1 -1
- package/dist/lib/modules/marketing/services/buy1-get1-marketing.service.d.ts.map +1 -1
- package/dist/lib/modules/marketing/services/buy1-get1-marketing.service.js +11 -9
- package/dist/lib/modules/marketing/services/buy1-get1-marketing.service.js.map +1 -1
- package/dist/lib/modules/marketing/services/discount-marketing.service.d.ts.map +1 -1
- package/dist/lib/modules/marketing/services/discount-marketing.service.js +15 -13
- package/dist/lib/modules/marketing/services/discount-marketing.service.js.map +1 -1
- package/dist/lib/modules/marketing/services/marketing.service.d.ts +1 -0
- package/dist/lib/modules/marketing/services/marketing.service.d.ts.map +1 -1
- package/dist/lib/modules/marketing/services/marketing.service.js +57 -7
- package/dist/lib/modules/marketing/services/marketing.service.js.map +1 -1
- package/dist/lib/modules/marketing/services/product-marketing.service.d.ts +11 -0
- package/dist/lib/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
- package/dist/lib/modules/marketing/services/product-marketing.service.js +23 -0
- package/dist/lib/modules/marketing/services/product-marketing.service.js.map +1 -1
- package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
- package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js +6 -31
- package/dist/lib/modules/marketing/services/synchronize-product-marketing.service.js.map +1 -1
- package/dist/lib/modules/marketing/validations/marketing.validation.d.ts +2 -2
- package/dist/lib/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
- package/dist/lib/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +2 -2
- package/dist/lib/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +4 -4
- package/dist/types/event/event-initializations.d.ts.map +1 -1
- package/dist/types/event/event-listeners/event-listeners.d.ts +1 -0
- package/dist/types/event/event-listeners/event-listeners.d.ts.map +1 -1
- package/dist/types/event/events/marketing-product-seed.event.d.ts +17 -0
- package/dist/types/event/events/marketing-product-seed.event.d.ts.map +1 -0
- package/dist/types/index.d.ts +165 -83
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/modules/coupon/routers/coupon.router.d.ts +116 -0
- package/dist/types/modules/coupon/routers/coupon.router.d.ts.map +1 -1
- package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts +32 -0
- package/dist/types/modules/coupon/services/patterns/repository/CouponMetricsRepository.d.ts.map +1 -0
- package/dist/types/modules/coupon/validations/coupon.validation.d.ts +407 -1
- package/dist/types/modules/coupon/validations/coupon.validation.d.ts.map +1 -1
- package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts +1118 -0
- package/dist/types/modules/coupon/validations/create-coupon.validation.d.ts.map +1 -0
- package/dist/types/modules/coupon/validations/index.d.ts +1 -0
- package/dist/types/modules/coupon/validations/index.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts +29 -72
- package/dist/types/modules/limited-time-offer/campaign/campaign.router.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts +36 -0
- package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.builder.d.ts.map +1 -0
- package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts +22 -0
- package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.repository.d.ts.map +1 -0
- package/dist/types/modules/limited-time-offer/campaign/limited-time-offer-campaign.validation.d.ts +78 -78
- package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts +1 -2
- package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign-lifecycle.service.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts +16 -51
- package/dist/types/modules/limited-time-offer/campaign/services/limited-time-offer-campaign.service.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.builder.d.ts +8 -0
- package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.builder.d.ts.map +1 -0
- package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.repository.d.ts +14 -0
- package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.repository.d.ts.map +1 -0
- package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.service.d.ts +1 -2
- package/dist/types/modules/limited-time-offer/config/limited-time-offer-config.service.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/config/limited-time-offer.router.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts +35 -78
- package/dist/types/modules/limited-time-offer/limited-time-offer.router.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts +53 -0
- package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts.map +1 -0
- package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts +18 -0
- package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.repository.d.ts.map +1 -0
- package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts +6 -6
- package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.router.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/participant/limited-time-offer-participant.validation.d.ts +24 -24
- package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts +3 -1
- package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant-marketing.service.d.ts.map +1 -1
- package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts +19 -8
- package/dist/types/modules/limited-time-offer/participant/services/limited-time-offer-participant.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/routers/marketing.router.d.ts +12 -3
- package/dist/types/modules/marketing/routers/marketing.router.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/buy1-get1-marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/discount-marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/marketing.service.d.ts +1 -0
- package/dist/types/modules/marketing/services/marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/product-marketing.service.d.ts +11 -0
- package/dist/types/modules/marketing/services/product-marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/services/synchronize-product-marketing.service.d.ts.map +1 -1
- package/dist/types/modules/marketing/validations/marketing.validation.d.ts +2 -2
- package/dist/types/modules/marketing/validations/product-marketing.validation.d.ts +2 -2
- package/dist/types/modules/punch-marketing-history/routers/punch-marketing-history.router.d.ts +2 -2
- package/dist/types/modules/punch-marketing-history/validations/punch-marketing-history.validation.d.ts +4 -4
- package/package.json +2 -2
- package/dist/types/events/event-initializations.d.ts +0 -2
- package/dist/types/events/event-initializations.d.ts.map +0 -1
|
@@ -45,44 +45,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
45
45
|
exports.limitedTimeOfferConfigService = exports.LimitedTimeOfferConfigService = void 0;
|
|
46
46
|
const typedi_1 = __importStar(require("typedi"));
|
|
47
47
|
const server_1 = require("@trpc/server");
|
|
48
|
-
const models_1 = require("@lyxa.ai/core/dist/libraries/mongo/models");
|
|
49
48
|
const error_common_1 = require("@lyxa.ai/core/dist/utilities/error-common");
|
|
49
|
+
const limited_time_offer_config_repository_1 = require("./limited-time-offer-config.repository");
|
|
50
|
+
const limited_time_offer_config_builder_1 = require("./limited-time-offer-config.builder");
|
|
50
51
|
let LimitedTimeOfferConfigService = class LimitedTimeOfferConfigService {
|
|
51
|
-
|
|
52
|
+
repository;
|
|
52
53
|
constructor() {
|
|
53
|
-
this.
|
|
54
|
-
}
|
|
55
|
-
async validateConfigUnique(marketingType) {
|
|
56
|
-
const exists = await this.model.exists({ campaignType: marketingType });
|
|
57
|
-
if (exists) {
|
|
58
|
-
throw (0, error_common_1.conflictError)("Config for this campaign type already exists. Use update instead.");
|
|
59
|
-
}
|
|
54
|
+
this.repository = typedi_1.default.get(limited_time_offer_config_repository_1.LtoConfigRepository);
|
|
60
55
|
}
|
|
61
56
|
async create(input) {
|
|
62
|
-
await this.
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
if (await this.repository.existsByCampaignType(input.campaignType)) {
|
|
58
|
+
throw (0, error_common_1.conflictError)('Config for this campaign type already exists. Use update instead.');
|
|
59
|
+
}
|
|
60
|
+
return this.repository.create(input);
|
|
65
61
|
}
|
|
66
62
|
async getByType(campaignType) {
|
|
67
|
-
const result = await this.
|
|
68
|
-
if (!result)
|
|
69
|
-
throw (0, error_common_1.notFoundError)(
|
|
70
|
-
|
|
71
|
-
return result.toObject();
|
|
63
|
+
const result = await this.repository.findByCampaignType(campaignType);
|
|
64
|
+
if (!result)
|
|
65
|
+
throw (0, error_common_1.notFoundError)('Config not found');
|
|
66
|
+
return result;
|
|
72
67
|
}
|
|
73
68
|
async update(input) {
|
|
74
69
|
if (input.discountOptions.length === 0 || input.maxDiscountCaps.length === 0) {
|
|
75
|
-
throw (0, error_common_1.badRequestError)(
|
|
76
|
-
}
|
|
77
|
-
const oldConfig = await this.model.findById(input._id);
|
|
78
|
-
if (!oldConfig) {
|
|
79
|
-
throw (0, error_common_1.notFoundError)("Config not found");
|
|
70
|
+
throw (0, error_common_1.badRequestError)('At least one discount option and one max discount cap are required');
|
|
80
71
|
}
|
|
81
|
-
const
|
|
82
|
-
if (!
|
|
72
|
+
const existing = await this.repository.findById(input._id);
|
|
73
|
+
if (!existing)
|
|
74
|
+
throw (0, error_common_1.notFoundError)('Config not found');
|
|
75
|
+
const result = await this.repository.updateById(input._id, limited_time_offer_config_builder_1.LtoConfigQueryBuilder.buildUpdateInput(input));
|
|
76
|
+
if (!result)
|
|
83
77
|
throw new server_1.TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'Failed to update config' });
|
|
84
|
-
|
|
85
|
-
return result.toObject();
|
|
78
|
+
return result;
|
|
86
79
|
}
|
|
87
80
|
};
|
|
88
81
|
exports.LimitedTimeOfferConfigService = LimitedTimeOfferConfigService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limited-time-offer-config.service.js","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer-config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA0C;AAC1C,yCAAuC;
|
|
1
|
+
{"version":3,"file":"limited-time-offer-config.service.js","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer-config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA0C;AAC1C,yCAAuC;AAOvC,4EAAwG;AACxG,iGAA2E;AAC3E,2FAA0E;AAGnE,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAC9B,UAAU,CAAsB;IAExC;QACI,IAAI,CAAC,UAAU,GAAG,gBAAS,CAAC,GAAG,CAAC,0DAAmB,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAsC;QACtD,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,MAAM,IAAA,4BAAa,EAAC,mEAAmE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAuC,CAAC;IAC/E,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,YAA2B;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAA,4BAAa,EAAC,kBAAkB,CAAC,CAAC;QACrD,OAAO,MAAmC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAsC;QACtD,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAA,8BAAe,EAAC,oEAAoE,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAA,4BAAa,EAAC,kBAAkB,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,yDAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,kBAAS,CAAC,EAAC,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,yBAAyB,EAAC,CAAC,CAAC;QAEtG,OAAO,MAAmC,CAAC;IAC/C,CAAC;CAGJ,CAAA;AAnCY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,gBAAO,GAAE;;GACG,6BAA6B,CAmCzC;AAEY,QAAA,6BAA6B,GAAG,gBAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC","sourcesContent":["import Container, {Service} from 'typedi';\nimport {TRPCError} from '@trpc/server';\nimport {MarketingType} from '@lyxa.ai/core/dist/utilities/enum';\nimport {\n CreateLimitedTimeOfferConfigDTO,\n LimitedTimeOfferConfigDTO,\n UpdateLimitedTimeOfferConfigDTO,\n} from './limited-time-offer-config.validation';\nimport {badRequestError, conflictError, notFoundError} from '@lyxa.ai/core/dist/utilities/error-common';\nimport {LtoConfigRepository} from './limited-time-offer-config.repository';\nimport {LtoConfigQueryBuilder} from './limited-time-offer-config.builder';\n\n@Service()\nexport class LimitedTimeOfferConfigService {\n private repository: LtoConfigRepository;\n\n constructor() {\n this.repository = Container.get(LtoConfigRepository);\n }\n\n public async create(input: CreateLimitedTimeOfferConfigDTO): Promise<LimitedTimeOfferConfigDTO> {\n if (await this.repository.existsByCampaignType(input.campaignType)) {\n throw conflictError('Config for this campaign type already exists. Use update instead.');\n }\n return this.repository.create(input) as Promise<LimitedTimeOfferConfigDTO>;\n }\n\n public async getByType(campaignType: MarketingType): Promise<LimitedTimeOfferConfigDTO> {\n const result = await this.repository.findByCampaignType(campaignType);\n if (!result) throw notFoundError('Config not found');\n return result as LimitedTimeOfferConfigDTO;\n }\n\n public async update(input: UpdateLimitedTimeOfferConfigDTO): Promise<LimitedTimeOfferConfigDTO> {\n if (input.discountOptions.length === 0 || input.maxDiscountCaps.length === 0) {\n throw badRequestError('At least one discount option and one max discount cap are required');\n }\n\n const existing = await this.repository.findById(input._id);\n if (!existing) throw notFoundError('Config not found');\n\n const result = await this.repository.updateById(input._id, LtoConfigQueryBuilder.buildUpdateInput(input));\n if (!result) throw new TRPCError({code: 'INTERNAL_SERVER_ERROR', message: 'Failed to update config'});\n\n return result as LimitedTimeOfferConfigDTO;\n }\n\n // TODO [limited-time-offer] @zbib - add admin logging\n}\n\nexport const limitedTimeOfferConfigService = Container.get(LimitedTimeOfferConfigService);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limited-time-offer.router.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer.router.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"limited-time-offer.router.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer.router.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,aAAa,EAAC,MAAM,mCAAmC,CAAC;AAUhE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limited-time-offer.router.js","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer.router.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"limited-time-offer.router.js","sourceRoot":"/","sources":["modules/limited-time-offer/config/limited-time-offer.router.ts"],"names":[],"mappings":";;;AAAA,4DAAmE;AACnE,4DAAiE;AACjE,6EAAgG;AAChG,8EAAwE;AACxE,oEAA+D;AAC/D,4DAAgE;AAChE,iGAAwF;AACxF,6BAAsB;AACtB,2FAA6F;AAC7F,iGAIgD;AAEnC,QAAA,YAAY,GAAG,IAAA,uBAAgB,EAAC;IACzC,MAAM,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SACtE,KAAK,CAAC,yEAAkC,CAAC;SACzC,MAAM,CAAC,2EAAoC,CAAC;SAC5C,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,iEAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAA,mBAAQ,EAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CACL;IAEL,SAAS,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SACzE,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,iCAAa,CAAC,QAAQ,CAAC,oBAAa,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;SACzF,MAAM,CAAC,2EAAoC,CAAC;SAC5C,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACvB,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,iEAAO,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3D,OAAO,IAAA,mBAAQ,EAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CACL;IAEL,MAAM,EAAE,IAAA,mCAA4B,EAAC,EAAE,WAAW,EAAE,CAAC,qBAAc,CAAC,GAAG,CAAC,EAAE,CAAC;SACtE,KAAK,CAAC,yEAAkC,CAAC;SACzC,MAAM,CAAC,2EAAoC,CAAC;SAC5C,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,4BAAY,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,iEAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,IAAA,mBAAQ,EAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CACL;CACR,CAAC,CAAC","sourcesContent":["import {createTRPCRouter} from '@lyxa.ai/core/dist/libraries/trpc';\nimport {AuthEntityType} from '@lyxa.ai/core/dist/libraries/auth';\nimport {createAuthenticatedProcedure} from '@lyxa.ai/core/dist/libraries/trpc/middlewares/auth';\nimport {ErrorHandler} from '@lyxa.ai/core/dist/utilities/error-handler';\nimport {response} from '@lyxa.ai/core/dist/utilities/response';\nimport {MarketingType} from '@lyxa.ai/core/dist/utilities/enum';\nimport {ZodValidation} from '@lyxa.ai/core/dist/utilities/validation/global-validation';\nimport {z} from 'zod';\nimport {limitedTimeOfferConfigService as service} from './limited-time-offer-config.service';\nimport {\n CreateLimitedTimeOfferConfigSchema,\n LimitedTimeOfferConfigResponseSchema,\n UpdateLimitedTimeOfferConfigSchema,\n} from './limited-time-offer-config.validation';\n\nexport const configRouter = createTRPCRouter({\n create: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n .input(CreateLimitedTimeOfferConfigSchema)\n .output(LimitedTimeOfferConfigResponseSchema)\n .mutation(async ({ input }) =>\n ErrorHandler.wrapAsync(async () => {\n const result = await service.create(input);\n return response('Config created successfully', result);\n })\n ),\n\n getByType: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n .input(z.object({ campaignType: ZodValidation.enumType(MarketingType, 'Campaign type') }))\n .output(LimitedTimeOfferConfigResponseSchema)\n .query(async ({ input }) =>\n ErrorHandler.wrapAsync(async () => {\n const result = await service.getByType(input.campaignType);\n return response('Config fetched successfully', result);\n })\n ),\n\n update: createAuthenticatedProcedure({ entityTypes: [AuthEntityType.CRM] })\n .input(UpdateLimitedTimeOfferConfigSchema)\n .output(LimitedTimeOfferConfigResponseSchema)\n .mutation(async ({ input }) =>\n ErrorHandler.wrapAsync(async () => {\n const result = await service.update(input);\n return response('Config updated successfully', result);\n })\n ),\n});"]}
|
|
@@ -165,28 +165,28 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
165
165
|
_id: string | import("mongoose").Types.ObjectId;
|
|
166
166
|
campaignNumber: number;
|
|
167
167
|
createdAt?: Date | null | undefined;
|
|
168
|
-
updatedAt?: Date | null | undefined;
|
|
169
|
-
title?: string | undefined;
|
|
170
168
|
startDate?: Date | null | undefined;
|
|
171
169
|
endDate?: Date | null | undefined;
|
|
170
|
+
updatedAt?: Date | null | undefined;
|
|
171
|
+
title?: string | undefined;
|
|
172
172
|
subTitle?: string | undefined;
|
|
173
|
-
archivedAt?: Date | null | undefined;
|
|
174
173
|
discountOptions?: number[] | undefined;
|
|
175
174
|
maxDiscountCaps?: number[] | undefined;
|
|
175
|
+
archivedAt?: Date | null | undefined;
|
|
176
176
|
} | {
|
|
177
177
|
documents: {
|
|
178
178
|
status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
|
|
179
179
|
_id: string | import("mongoose").Types.ObjectId;
|
|
180
180
|
campaignNumber: number;
|
|
181
181
|
createdAt?: Date | null | undefined;
|
|
182
|
-
updatedAt?: Date | null | undefined;
|
|
183
|
-
title?: string | undefined;
|
|
184
182
|
startDate?: Date | null | undefined;
|
|
185
183
|
endDate?: Date | null | undefined;
|
|
184
|
+
updatedAt?: Date | null | undefined;
|
|
185
|
+
title?: string | undefined;
|
|
186
186
|
subTitle?: string | undefined;
|
|
187
|
-
archivedAt?: Date | null | undefined;
|
|
188
187
|
discountOptions?: number[] | undefined;
|
|
189
188
|
maxDiscountCaps?: number[] | undefined;
|
|
189
|
+
archivedAt?: Date | null | undefined;
|
|
190
190
|
}[];
|
|
191
191
|
metadata?: {
|
|
192
192
|
page: number;
|
|
@@ -208,71 +208,28 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
208
208
|
_id: string | import("mongoose").Types.ObjectId;
|
|
209
209
|
campaignNumber: number;
|
|
210
210
|
createdAt?: Date | null | undefined;
|
|
211
|
-
updatedAt?: Date | null | undefined;
|
|
212
|
-
title?: string | undefined;
|
|
213
211
|
startDate?: Date | null | undefined;
|
|
214
212
|
endDate?: Date | null | undefined;
|
|
215
|
-
subTitle?: string | undefined;
|
|
216
|
-
archivedAt?: Date | null | undefined;
|
|
217
|
-
discountOptions?: number[] | undefined;
|
|
218
|
-
maxDiscountCaps?: number[] | undefined;
|
|
219
|
-
} | {
|
|
220
|
-
documents: ({
|
|
221
|
-
status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
|
|
222
|
-
_id: string | import("mongoose").Types.ObjectId;
|
|
223
|
-
campaignNumber: number;
|
|
224
|
-
createdAt?: Date | null | undefined;
|
|
225
|
-
updatedAt?: Date | null | undefined;
|
|
226
|
-
title?: string | undefined;
|
|
227
|
-
startDate?: Date | null | undefined;
|
|
228
|
-
endDate?: Date | null | undefined;
|
|
229
|
-
subTitle?: string | undefined;
|
|
230
|
-
archivedAt?: Date | null | undefined;
|
|
231
|
-
discountOptions?: number[] | undefined;
|
|
232
|
-
maxDiscountCaps?: number[] | undefined;
|
|
233
|
-
} | null)[];
|
|
234
|
-
metadata?: {
|
|
235
|
-
page: number;
|
|
236
|
-
size: number;
|
|
237
|
-
totalElements: number;
|
|
238
|
-
totalPages: number;
|
|
239
|
-
} | undefined;
|
|
240
|
-
} | null | undefined;
|
|
241
|
-
};
|
|
242
|
-
meta: object;
|
|
243
|
-
}>;
|
|
244
|
-
getActiveForShop: import("@trpc/server").TRPCQueryProcedure<{
|
|
245
|
-
input: void;
|
|
246
|
-
output: {
|
|
247
|
-
message: string;
|
|
248
|
-
success: boolean;
|
|
249
|
-
data?: {
|
|
250
|
-
status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
|
|
251
|
-
_id: string | import("mongoose").Types.ObjectId;
|
|
252
|
-
campaignNumber: number;
|
|
253
|
-
createdAt?: Date | null | undefined;
|
|
254
213
|
updatedAt?: Date | null | undefined;
|
|
255
214
|
title?: string | undefined;
|
|
256
|
-
startDate?: Date | null | undefined;
|
|
257
|
-
endDate?: Date | null | undefined;
|
|
258
215
|
subTitle?: string | undefined;
|
|
259
|
-
archivedAt?: Date | null | undefined;
|
|
260
216
|
discountOptions?: number[] | undefined;
|
|
261
217
|
maxDiscountCaps?: number[] | undefined;
|
|
218
|
+
archivedAt?: Date | null | undefined;
|
|
262
219
|
} | {
|
|
263
220
|
documents: ({
|
|
264
221
|
status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
|
|
265
222
|
_id: string | import("mongoose").Types.ObjectId;
|
|
266
223
|
campaignNumber: number;
|
|
267
224
|
createdAt?: Date | null | undefined;
|
|
268
|
-
updatedAt?: Date | null | undefined;
|
|
269
|
-
title?: string | undefined;
|
|
270
225
|
startDate?: Date | null | undefined;
|
|
271
226
|
endDate?: Date | null | undefined;
|
|
227
|
+
updatedAt?: Date | null | undefined;
|
|
228
|
+
title?: string | undefined;
|
|
272
229
|
subTitle?: string | undefined;
|
|
273
|
-
archivedAt?: Date | null | undefined;
|
|
274
230
|
discountOptions?: number[] | undefined;
|
|
275
231
|
maxDiscountCaps?: number[] | undefined;
|
|
232
|
+
archivedAt?: Date | null | undefined;
|
|
276
233
|
} | null)[];
|
|
277
234
|
metadata?: {
|
|
278
235
|
page: number;
|
|
@@ -284,7 +241,7 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
284
241
|
};
|
|
285
242
|
meta: object;
|
|
286
243
|
}>;
|
|
287
|
-
|
|
244
|
+
getActive: import("@trpc/server").TRPCQueryProcedure<{
|
|
288
245
|
input: void;
|
|
289
246
|
output: {
|
|
290
247
|
message: string;
|
|
@@ -294,28 +251,28 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
294
251
|
_id: string | import("mongoose").Types.ObjectId;
|
|
295
252
|
campaignNumber: number;
|
|
296
253
|
createdAt?: Date | null | undefined;
|
|
297
|
-
updatedAt?: Date | null | undefined;
|
|
298
|
-
title?: string | undefined;
|
|
299
254
|
startDate?: Date | null | undefined;
|
|
300
255
|
endDate?: Date | null | undefined;
|
|
256
|
+
updatedAt?: Date | null | undefined;
|
|
257
|
+
title?: string | undefined;
|
|
301
258
|
subTitle?: string | undefined;
|
|
302
|
-
archivedAt?: Date | null | undefined;
|
|
303
259
|
discountOptions?: number[] | undefined;
|
|
304
260
|
maxDiscountCaps?: number[] | undefined;
|
|
261
|
+
archivedAt?: Date | null | undefined;
|
|
305
262
|
} | {
|
|
306
263
|
documents: ({
|
|
307
264
|
status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
|
|
308
265
|
_id: string | import("mongoose").Types.ObjectId;
|
|
309
266
|
campaignNumber: number;
|
|
310
267
|
createdAt?: Date | null | undefined;
|
|
311
|
-
updatedAt?: Date | null | undefined;
|
|
312
|
-
title?: string | undefined;
|
|
313
268
|
startDate?: Date | null | undefined;
|
|
314
269
|
endDate?: Date | null | undefined;
|
|
270
|
+
updatedAt?: Date | null | undefined;
|
|
271
|
+
title?: string | undefined;
|
|
315
272
|
subTitle?: string | undefined;
|
|
316
|
-
archivedAt?: Date | null | undefined;
|
|
317
273
|
discountOptions?: number[] | undefined;
|
|
318
274
|
maxDiscountCaps?: number[] | undefined;
|
|
275
|
+
archivedAt?: Date | null | undefined;
|
|
319
276
|
} | null)[];
|
|
320
277
|
metadata?: {
|
|
321
278
|
page: number;
|
|
@@ -339,28 +296,28 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
339
296
|
_id: string | import("mongoose").Types.ObjectId;
|
|
340
297
|
campaignNumber: number;
|
|
341
298
|
createdAt?: Date | null | undefined;
|
|
342
|
-
updatedAt?: Date | null | undefined;
|
|
343
|
-
title?: string | undefined;
|
|
344
299
|
startDate?: Date | null | undefined;
|
|
345
300
|
endDate?: Date | null | undefined;
|
|
301
|
+
updatedAt?: Date | null | undefined;
|
|
302
|
+
title?: string | undefined;
|
|
346
303
|
subTitle?: string | undefined;
|
|
347
|
-
archivedAt?: Date | null | undefined;
|
|
348
304
|
discountOptions?: number[] | undefined;
|
|
349
305
|
maxDiscountCaps?: number[] | undefined;
|
|
306
|
+
archivedAt?: Date | null | undefined;
|
|
350
307
|
} | {
|
|
351
308
|
documents: {
|
|
352
309
|
status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
|
|
353
310
|
_id: string | import("mongoose").Types.ObjectId;
|
|
354
311
|
campaignNumber: number;
|
|
355
312
|
createdAt?: Date | null | undefined;
|
|
356
|
-
updatedAt?: Date | null | undefined;
|
|
357
|
-
title?: string | undefined;
|
|
358
313
|
startDate?: Date | null | undefined;
|
|
359
314
|
endDate?: Date | null | undefined;
|
|
315
|
+
updatedAt?: Date | null | undefined;
|
|
316
|
+
title?: string | undefined;
|
|
360
317
|
subTitle?: string | undefined;
|
|
361
|
-
archivedAt?: Date | null | undefined;
|
|
362
318
|
discountOptions?: number[] | undefined;
|
|
363
319
|
maxDiscountCaps?: number[] | undefined;
|
|
320
|
+
archivedAt?: Date | null | undefined;
|
|
364
321
|
}[];
|
|
365
322
|
metadata?: {
|
|
366
323
|
page: number;
|
|
@@ -428,28 +385,28 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
428
385
|
_id: string | import("mongoose").Types.ObjectId;
|
|
429
386
|
campaignNumber: number;
|
|
430
387
|
createdAt?: Date | null | undefined;
|
|
431
|
-
updatedAt?: Date | null | undefined;
|
|
432
|
-
title?: string | undefined;
|
|
433
388
|
startDate?: Date | null | undefined;
|
|
434
389
|
endDate?: Date | null | undefined;
|
|
390
|
+
updatedAt?: Date | null | undefined;
|
|
391
|
+
title?: string | undefined;
|
|
435
392
|
subTitle?: string | undefined;
|
|
436
|
-
archivedAt?: Date | null | undefined;
|
|
437
393
|
discountOptions?: number[] | undefined;
|
|
438
394
|
maxDiscountCaps?: number[] | undefined;
|
|
395
|
+
archivedAt?: Date | null | undefined;
|
|
439
396
|
} | {
|
|
440
397
|
documents: {
|
|
441
398
|
status: import("@lyxa.ai/core/dist/utilities/enum").LimitedTimeOfferCampaignStatus;
|
|
442
399
|
_id: string | import("mongoose").Types.ObjectId;
|
|
443
400
|
campaignNumber: number;
|
|
444
401
|
createdAt?: Date | null | undefined;
|
|
445
|
-
updatedAt?: Date | null | undefined;
|
|
446
|
-
title?: string | undefined;
|
|
447
402
|
startDate?: Date | null | undefined;
|
|
448
403
|
endDate?: Date | null | undefined;
|
|
404
|
+
updatedAt?: Date | null | undefined;
|
|
405
|
+
title?: string | undefined;
|
|
449
406
|
subTitle?: string | undefined;
|
|
450
|
-
archivedAt?: Date | null | undefined;
|
|
451
407
|
discountOptions?: number[] | undefined;
|
|
452
408
|
maxDiscountCaps?: number[] | undefined;
|
|
409
|
+
archivedAt?: Date | null | undefined;
|
|
453
410
|
}[];
|
|
454
411
|
metadata?: {
|
|
455
412
|
page: number;
|
|
@@ -505,8 +462,8 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
505
462
|
shop: string | import("mongoose").Types.ObjectId;
|
|
506
463
|
joinedAt: Date;
|
|
507
464
|
isEntireMenu: boolean;
|
|
508
|
-
isOrderCapacityEnabled: boolean;
|
|
509
465
|
campaign: string | import("mongoose").Types.ObjectId;
|
|
466
|
+
isOrderCapacityEnabled: boolean;
|
|
510
467
|
isWithdrawn: boolean;
|
|
511
468
|
createdAt?: Date | null | undefined;
|
|
512
469
|
updatedAt?: Date | null | undefined;
|
|
@@ -521,8 +478,8 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
521
478
|
shop: string | import("mongoose").Types.ObjectId;
|
|
522
479
|
joinedAt: Date;
|
|
523
480
|
isEntireMenu: boolean;
|
|
524
|
-
isOrderCapacityEnabled: boolean;
|
|
525
481
|
campaign: string | import("mongoose").Types.ObjectId;
|
|
482
|
+
isOrderCapacityEnabled: boolean;
|
|
526
483
|
isWithdrawn: boolean;
|
|
527
484
|
createdAt?: Date | null | undefined;
|
|
528
485
|
updatedAt?: Date | null | undefined;
|
|
@@ -559,9 +516,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
559
516
|
campaignState: import("./participant/limited-time-offer-participant.validation").LtoCardState;
|
|
560
517
|
campaign?: {
|
|
561
518
|
_id: string | import("mongoose").Types.ObjectId;
|
|
562
|
-
title?: string | undefined;
|
|
563
519
|
startDate?: Date | null | undefined;
|
|
564
520
|
endDate?: Date | null | undefined;
|
|
521
|
+
title?: string | undefined;
|
|
565
522
|
subTitle?: string | undefined;
|
|
566
523
|
discountOptions?: number[] | undefined;
|
|
567
524
|
maxDiscountCaps?: number[] | undefined;
|
|
@@ -579,9 +536,9 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
579
536
|
campaignState: import("./participant/limited-time-offer-participant.validation").LtoCardState;
|
|
580
537
|
campaign?: {
|
|
581
538
|
_id: string | import("mongoose").Types.ObjectId;
|
|
582
|
-
title?: string | undefined;
|
|
583
539
|
startDate?: Date | null | undefined;
|
|
584
540
|
endDate?: Date | null | undefined;
|
|
541
|
+
title?: string | undefined;
|
|
585
542
|
subTitle?: string | undefined;
|
|
586
543
|
discountOptions?: number[] | undefined;
|
|
587
544
|
maxDiscountCaps?: number[] | undefined;
|
|
@@ -618,16 +575,16 @@ export declare const limitedTimeOfferRouter: import("@trpc/server").TRPCBuiltRou
|
|
|
618
575
|
data?: {
|
|
619
576
|
joinedAt: Date;
|
|
620
577
|
shopName: string | null;
|
|
578
|
+
shopPhoto?: string | null | undefined;
|
|
621
579
|
discountPercentage?: number | undefined;
|
|
622
580
|
maxDiscountCap?: number | undefined;
|
|
623
|
-
shopPhoto?: string | null | undefined;
|
|
624
581
|
} | {
|
|
625
582
|
documents: {
|
|
626
583
|
joinedAt: Date;
|
|
627
584
|
shopName: string | null;
|
|
585
|
+
shopPhoto?: string | null | undefined;
|
|
628
586
|
discountPercentage?: number | undefined;
|
|
629
587
|
maxDiscountCap?: number | undefined;
|
|
630
|
-
shopPhoto?: string | null | undefined;
|
|
631
588
|
}[];
|
|
632
589
|
metadata?: {
|
|
633
590
|
page: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limited-time-offer.router.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/limited-time-offer.router.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"limited-time-offer.router.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/limited-time-offer.router.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIjC,CAAC"}
|
package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { mongoose } from '@typegoose/typegoose';
|
|
2
|
+
import { LimitedTimeOfferCampaign } from '@lyxa.ai/core/dist/libraries/mongo/models';
|
|
3
|
+
import { MarketingStatus, MarketingType, ValueType } from '@lyxa.ai/core/dist/utilities/enum';
|
|
4
|
+
import { GetLtoCampaignParticipantsDTO } from '../campaign/limited-time-offer-campaign.validation';
|
|
5
|
+
import { JoinLtoCampaignDTO } from './limited-time-offer-participant.validation';
|
|
6
|
+
export declare class LtoParticipantQueryBuilder {
|
|
7
|
+
static buildCampaignFilter(dto: GetLtoCampaignParticipantsDTO): {
|
|
8
|
+
campaign: mongoose.Types.ObjectId;
|
|
9
|
+
isWithdrawn: boolean;
|
|
10
|
+
};
|
|
11
|
+
static buildSearchTerm(dto: GetLtoCampaignParticipantsDTO): string | undefined;
|
|
12
|
+
static buildCreateInput(campaignId: mongoose.Types.ObjectId, shopId: mongoose.Types.ObjectId, marketingId: mongoose.Types.ObjectId, dto: JoinLtoCampaignDTO): {
|
|
13
|
+
campaign: mongoose.Types.ObjectId;
|
|
14
|
+
shop: mongoose.Types.ObjectId;
|
|
15
|
+
marketing: mongoose.Types.ObjectId;
|
|
16
|
+
joinedAt: Date;
|
|
17
|
+
products: mongoose.Types.ObjectId[];
|
|
18
|
+
isEntireMenu: boolean;
|
|
19
|
+
discountPercentage: number;
|
|
20
|
+
maxDiscountCap: number;
|
|
21
|
+
isOrderCapacityEnabled: boolean;
|
|
22
|
+
maxOrderCapacity: number | undefined;
|
|
23
|
+
isWithdrawn: boolean;
|
|
24
|
+
};
|
|
25
|
+
static buildMarketingInput(shopId: mongoose.Types.ObjectId, campaign: LimitedTimeOfferCampaign & {
|
|
26
|
+
_id: mongoose.Types.ObjectId;
|
|
27
|
+
}, dto: JoinLtoCampaignDTO): {
|
|
28
|
+
shop: mongoose.Types.ObjectId;
|
|
29
|
+
marketingType: MarketingType;
|
|
30
|
+
isAppliedByCompany: boolean;
|
|
31
|
+
duration: {
|
|
32
|
+
start: Date;
|
|
33
|
+
end: Date;
|
|
34
|
+
};
|
|
35
|
+
status: MarketingStatus;
|
|
36
|
+
isEntireMenu: boolean;
|
|
37
|
+
value: number | undefined;
|
|
38
|
+
valueType: ValueType | undefined;
|
|
39
|
+
products: {
|
|
40
|
+
product: mongoose.Types.ObjectId;
|
|
41
|
+
value: number;
|
|
42
|
+
valueType: ValueType;
|
|
43
|
+
}[];
|
|
44
|
+
maxDiscountPerOrder: number;
|
|
45
|
+
isMaxDiscountPerOrderEnabled: boolean;
|
|
46
|
+
categories: never[];
|
|
47
|
+
excludeProducts: never[];
|
|
48
|
+
spendLimit: number;
|
|
49
|
+
isSpendLimitEnabled: boolean;
|
|
50
|
+
isOnlyForSubscriber: boolean;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=limited-time-offer-participant.builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limited-time-offer-participant.builder.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/participant/limited-time-offer-participant.builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAC,wBAAwB,EAAC,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAC,eAAe,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAC,6BAA6B,EAAC,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAC,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAE/E,qBAAa,0BAA0B;IACnC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,6BAA6B;;;;IAI7D,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,6BAA6B,GAAG,MAAM,GAAG,SAAS;IAI9E,MAAM,CAAC,gBAAgB,CACnB,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACnC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC/B,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACpC,GAAG,EAAE,kBAAkB;;;;;;;;;;;;;IAiB3B,MAAM,CAAC,mBAAmB,CACtB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAC/B,QAAQ,EAAE,wBAAwB,GAAG;QAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAA;KAAC,EACnE,GAAG,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;CA2B9B"}
|
package/dist/lib/modules/limited-time-offer/participant/limited-time-offer-participant.builder.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LtoParticipantQueryBuilder = void 0;
|
|
4
|
+
const enum_1 = require("@lyxa.ai/core/dist/utilities/enum");
|
|
5
|
+
class LtoParticipantQueryBuilder {
|
|
6
|
+
static buildCampaignFilter(dto) {
|
|
7
|
+
return { campaign: dto.campaignId, isWithdrawn: false };
|
|
8
|
+
}
|
|
9
|
+
static buildSearchTerm(dto) {
|
|
10
|
+
return dto.search?.trim() || undefined;
|
|
11
|
+
}
|
|
12
|
+
static buildCreateInput(campaignId, shopId, marketingId, dto) {
|
|
13
|
+
return {
|
|
14
|
+
campaign: campaignId,
|
|
15
|
+
shop: shopId,
|
|
16
|
+
marketing: marketingId,
|
|
17
|
+
joinedAt: new Date(),
|
|
18
|
+
products: dto.products ?? [],
|
|
19
|
+
isEntireMenu: dto.isEntireMenu,
|
|
20
|
+
discountPercentage: dto.discountPercentage,
|
|
21
|
+
maxDiscountCap: dto.maxDiscountCap,
|
|
22
|
+
isOrderCapacityEnabled: dto.isOrderCapacityEnabled,
|
|
23
|
+
maxOrderCapacity: dto.maxOrderCapacity,
|
|
24
|
+
isWithdrawn: false,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
static buildMarketingInput(shopId, campaign, dto) {
|
|
28
|
+
return {
|
|
29
|
+
shop: shopId,
|
|
30
|
+
marketingType: enum_1.MarketingType.DISCOUNT,
|
|
31
|
+
isAppliedByCompany: true,
|
|
32
|
+
duration: { start: campaign.startDate, end: campaign.endDate },
|
|
33
|
+
status: enum_1.MarketingStatus.ACTIVE,
|
|
34
|
+
isEntireMenu: dto.isEntireMenu,
|
|
35
|
+
value: dto.isEntireMenu ? dto.discountPercentage : undefined,
|
|
36
|
+
valueType: dto.isEntireMenu ? enum_1.ValueType.PERCENTAGE : undefined,
|
|
37
|
+
products: dto.isEntireMenu
|
|
38
|
+
? []
|
|
39
|
+
: dto.products.map(productId => ({
|
|
40
|
+
product: productId,
|
|
41
|
+
value: dto.discountPercentage,
|
|
42
|
+
valueType: enum_1.ValueType.PERCENTAGE,
|
|
43
|
+
})),
|
|
44
|
+
maxDiscountPerOrder: dto.maxDiscountCap,
|
|
45
|
+
isMaxDiscountPerOrderEnabled: dto.maxDiscountCap > 0,
|
|
46
|
+
categories: [],
|
|
47
|
+
excludeProducts: [],
|
|
48
|
+
spendLimit: 0,
|
|
49
|
+
isSpendLimitEnabled: false,
|
|
50
|
+
isOnlyForSubscriber: false,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.LtoParticipantQueryBuilder = LtoParticipantQueryBuilder;
|
|
55
|
+
//# sourceMappingURL=limited-time-offer-participant.builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limited-time-offer-participant.builder.js","sourceRoot":"/","sources":["modules/limited-time-offer/participant/limited-time-offer-participant.builder.ts"],"names":[],"mappings":";;;AAEA,4DAA4F;AAI5F,MAAa,0BAA0B;IACnC,MAAM,CAAC,mBAAmB,CAAC,GAAkC;QACzD,OAAO,EAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,GAAkC;QACrD,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,gBAAgB,CACnB,UAAmC,EACnC,MAA+B,EAC/B,WAAoC,EACpC,GAAuB;QAEvB,OAAO;YACH,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;YAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;YAC1C,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,sBAAsB,EAAE,GAAG,CAAC,sBAAsB;YAClD,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,WAAW,EAAE,KAAK;SACrB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,mBAAmB,CACtB,MAA+B,EAC/B,QAAmE,EACnE,GAAuB;QAEvB,OAAO;YACH,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,oBAAa,CAAC,QAAQ;YACrC,kBAAkB,EAAE,IAAI;YACxB,QAAQ,EAAE,EAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAC;YAC5D,MAAM,EAAE,sBAAe,CAAC,MAAM;YAC9B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;YAC5D,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC9D,QAAQ,EAAE,GAAG,CAAC,YAAY;gBACtB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBAC7B,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,GAAG,CAAC,kBAAkB;oBAC7B,SAAS,EAAE,gBAAS,CAAC,UAAU;iBAClC,CAAC,CAAC;YACP,mBAAmB,EAAE,GAAG,CAAC,cAAc;YACvC,4BAA4B,EAAE,GAAG,CAAC,cAAc,GAAG,CAAC;YACpD,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,CAAC;YACb,mBAAmB,EAAE,KAAK;YAC1B,mBAAmB,EAAE,KAAK;SAC7B,CAAC;IACN,CAAC;CACJ;AA5DD,gEA4DC","sourcesContent":["import {mongoose} from '@typegoose/typegoose';\nimport {LimitedTimeOfferCampaign} from '@lyxa.ai/core/dist/libraries/mongo/models';\nimport {MarketingStatus, MarketingType, ValueType} from '@lyxa.ai/core/dist/utilities/enum';\nimport {GetLtoCampaignParticipantsDTO} from '../campaign/limited-time-offer-campaign.validation';\nimport {JoinLtoCampaignDTO} from './limited-time-offer-participant.validation';\n\nexport class LtoParticipantQueryBuilder {\n static buildCampaignFilter(dto: GetLtoCampaignParticipantsDTO) {\n return {campaign: dto.campaignId, isWithdrawn: false};\n }\n\n static buildSearchTerm(dto: GetLtoCampaignParticipantsDTO): string | undefined {\n return dto.search?.trim() || undefined;\n }\n\n static buildCreateInput(\n campaignId: mongoose.Types.ObjectId,\n shopId: mongoose.Types.ObjectId,\n marketingId: mongoose.Types.ObjectId,\n dto: JoinLtoCampaignDTO,\n ) {\n return {\n campaign: campaignId,\n shop: shopId,\n marketing: marketingId,\n joinedAt: new Date(),\n products: dto.products ?? [],\n isEntireMenu: dto.isEntireMenu,\n discountPercentage: dto.discountPercentage,\n maxDiscountCap: dto.maxDiscountCap,\n isOrderCapacityEnabled: dto.isOrderCapacityEnabled,\n maxOrderCapacity: dto.maxOrderCapacity,\n isWithdrawn: false,\n };\n }\n\n static buildMarketingInput(\n shopId: mongoose.Types.ObjectId,\n campaign: LimitedTimeOfferCampaign & {_id: mongoose.Types.ObjectId},\n dto: JoinLtoCampaignDTO,\n ) {\n return {\n shop: shopId,\n marketingType: MarketingType.DISCOUNT,\n isAppliedByCompany: true,\n duration: {start: campaign.startDate, end: campaign.endDate},\n status: MarketingStatus.ACTIVE,\n isEntireMenu: dto.isEntireMenu,\n value: dto.isEntireMenu ? dto.discountPercentage : undefined,\n valueType: dto.isEntireMenu ? ValueType.PERCENTAGE : undefined,\n products: dto.isEntireMenu\n ? []\n : dto.products.map(productId => ({\n product: productId,\n value: dto.discountPercentage,\n valueType: ValueType.PERCENTAGE,\n })),\n maxDiscountPerOrder: dto.maxDiscountCap,\n isMaxDiscountPerOrderEnabled: dto.maxDiscountCap > 0,\n categories: [],\n excludeProducts: [],\n spendLimit: 0,\n isSpendLimitEnabled: false,\n isOnlyForSubscriber: false,\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DocumentType, mongoose } from '@typegoose/typegoose';
|
|
2
|
+
import { LimitedTimeOfferParticipant as Model } from '@lyxa.ai/core/dist/libraries/mongo/models';
|
|
3
|
+
import { GetLtoCampaignParticipantsDTO, LtoCampaignParticipantItemDTO } from '../campaign/limited-time-offer-campaign.validation';
|
|
4
|
+
export declare class LtoParticipantRepository {
|
|
5
|
+
private model;
|
|
6
|
+
constructor();
|
|
7
|
+
create(input: object): Promise<DocumentType<Model>>;
|
|
8
|
+
findActiveByCampaignAndShop(campaignId: mongoose.Types.ObjectId, shopId: mongoose.Types.ObjectId): Promise<Pick<Model, 'discountPercentage' | 'maxDiscountCap' | 'joinedAt' | 'isEntireMenu' | 'isOrderCapacityEnabled' | 'maxOrderCapacity'> | null>;
|
|
9
|
+
withdraw(campaignId: mongoose.Types.ObjectId, shopId: mongoose.Types.ObjectId): Promise<DocumentType<Model> | null>;
|
|
10
|
+
existsActiveByCampaignAndShop(campaignId: mongoose.Types.ObjectId, shopId: mongoose.Types.ObjectId): Promise<boolean>;
|
|
11
|
+
findMarketingIdsByCampaign(campaignId: mongoose.Types.ObjectId): Promise<mongoose.Types.ObjectId[]>;
|
|
12
|
+
findByCampaign(dto: GetLtoCampaignParticipantsDTO): Promise<{
|
|
13
|
+
documents: LtoCampaignParticipantItemDTO[];
|
|
14
|
+
total: number;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
export declare const ltoParticipantRepository: LtoParticipantRepository;
|
|
18
|
+
//# sourceMappingURL=limited-time-offer-participant.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limited-time-offer-participant.repository.d.ts","sourceRoot":"/","sources":["modules/limited-time-offer/participant/limited-time-offer-participant.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACH,2BAA2B,IAAI,KAAK,EAGvC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAC,6BAA6B,EAAE,6BAA6B,EAAC,MAAM,oDAAoD,CAAC;AAGhI,qBACa,wBAAwB;IACjC,OAAO,CAAC,KAAK,CAAmE;;IAM1E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAInD,2BAA2B,CAC7B,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACnC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAChC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,UAAU,GAAG,cAAc,GAAG,wBAAwB,GAAG,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAO/I,QAAQ,CACV,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACnC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAChC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAQhC,6BAA6B,CAC/B,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EACnC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAChC,OAAO,CAAC,OAAO,CAAC;IAIb,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAQnG,cAAc,CAAC,GAAG,EAAE,6BAA6B,GAAG,OAAO,CAAC;QAAC,SAAS,EAAE,6BAA6B,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;CA6CjI;AAED,eAAO,MAAM,wBAAwB,0BAA0C,CAAC"}
|