@lyxa.ai/core 1.3.72 → 1.3.74

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.
Files changed (36) hide show
  1. package/dist/libraries/mongo/models/index.d.ts +0 -12
  2. package/dist/libraries/mongo/models/index.js +1 -36
  3. package/dist/libraries/mongo/models/index.js.map +1 -1
  4. package/dist/libraries/mongo/models/shared/promotion-duration.model.d.ts +3 -1
  5. package/dist/libraries/mongo/models/shared/promotion-duration.model.js +11 -1
  6. package/dist/libraries/mongo/models/shared/promotion-duration.model.js.map +1 -1
  7. package/dist/libraries/mongo/models/subscription.model.d.ts +0 -2
  8. package/dist/libraries/mongo/models/subscription.model.js +0 -6
  9. package/dist/libraries/mongo/models/subscription.model.js.map +1 -1
  10. package/dist/types/README.md +1 -1
  11. package/dist/types/package.json +1 -1
  12. package/dist/types/utilities/validation/common-validation.d.ts +12 -12
  13. package/dist/utilities/dayjs/dayjs.d.ts +3 -0
  14. package/dist/utilities/dayjs/dayjs.js +4 -0
  15. package/dist/utilities/dayjs/dayjs.js.map +1 -1
  16. package/dist/utilities/dayjs/index.d.ts +1 -0
  17. package/dist/utilities/dayjs/index.js.map +1 -1
  18. package/dist/utilities/workHourSetting.d.ts +8 -8
  19. package/dist/utilities/workHourSetting.js +10 -19
  20. package/dist/utilities/workHourSetting.js.map +1 -1
  21. package/package.json +1 -1
  22. package/dist/libraries/mongo/models/card.model.d.ts +0 -24
  23. package/dist/libraries/mongo/models/card.model.js +0 -109
  24. package/dist/libraries/mongo/models/card.model.js.map +0 -1
  25. package/dist/libraries/mongo/models/providers/areeba-card.model.d.ts +0 -14
  26. package/dist/libraries/mongo/models/providers/areeba-card.model.js +0 -69
  27. package/dist/libraries/mongo/models/providers/areeba-card.model.js.map +0 -1
  28. package/dist/libraries/mongo/models/role.model.d.ts +0 -6
  29. package/dist/libraries/mongo/models/role.model.js +0 -36
  30. package/dist/libraries/mongo/models/role.model.js.map +0 -1
  31. package/dist/libraries/mongo/models/subscription-setting.model.d.ts +0 -7
  32. package/dist/libraries/mongo/models/subscription-setting.model.js +0 -42
  33. package/dist/libraries/mongo/models/subscription-setting.model.js.map +0 -1
  34. package/dist/libraries/mongo/models/transaction.model.d.ts +0 -2
  35. package/dist/libraries/mongo/models/transaction.model.js +0 -7
  36. package/dist/libraries/mongo/models/transaction.model.js.map +0 -1
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports._setTimezone = void 0;
7
7
  const dayjs_1 = __importDefault(require("dayjs"));
8
8
  const utc_1 = __importDefault(require("dayjs/plugin/utc"));
9
+ const minMax_1 = __importDefault(require("dayjs/plugin/minMax"));
9
10
  const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
10
11
  const time_1 = require("../time");
11
12
  dayjs_1.default.extend(utc_1.default);
12
13
  dayjs_1.default.extend(timezone_1.default);
14
+ dayjs_1.default.extend(minMax_1.default);
13
15
  let DEFAULT_TIMEZONE = 'Asia/Beirut';
14
16
  const dayjsWithTimezone = ((date, format, tz) => {
15
17
  const targetTimezone = tz || DEFAULT_TIMEZONE;
@@ -26,6 +28,8 @@ dayjsWithTimezone.setTimezone = (timezone) => {
26
28
  DEFAULT_TIMEZONE = timezone;
27
29
  };
28
30
  dayjsWithTimezone.getTimezone = () => DEFAULT_TIMEZONE;
31
+ dayjsWithTimezone.max = dayjs_1.default.max;
32
+ dayjsWithTimezone.min = dayjs_1.default.min;
29
33
  const _setTimezone = (timezone) => {
30
34
  DEFAULT_TIMEZONE = timezone;
31
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dayjs.js","sourceRoot":"/","sources":["utilities/dayjs/dayjs.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAqC;AACrC,2DAAmC;AACnC,qEAA6C;AAC7C,kCAAmD;AAEnD,eAAK,CAAC,MAAM,CAAC,aAAG,CAAC,CAAC;AAClB,eAAK,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAC;AAEvB,IAAI,gBAAgB,GAAG,aAAa,CAAC;AAQrC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAU,EAAE,MAAY,EAAE,EAAW,EAAE,EAAE;IACpE,MAAM,cAAc,GAAG,EAAE,IAAI,gBAAgB,CAAC;IAE9C,IAAA,+BAAwB,EAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,IAAA,eAAK,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC,CAAsB,CAAC;AAExB,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC/B,iBAAyB,CAAC,GAAG,CAAC,GAAI,eAAa,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,iBAAiB,CAAC,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE;IACpD,gBAAgB,GAAG,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC;AAEhD,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IAChD,gBAAgB,GAAG,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEF,kBAAe,iBAAiB,CAAC","sourcesContent":["import dayjs, { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport { _setLyxaTimezoneVariable } from '../time';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nlet DEFAULT_TIMEZONE = 'Asia/Beirut';\n\ntype DayjsWithTimezone = {\n\t(date?: any, format?: any, tz?: string): Dayjs;\n\tsetTimezone(timezone: string): void;\n\tgetTimezone(): string;\n} & typeof dayjs;\n\nconst dayjsWithTimezone = ((date?: any, format?: any, tz?: string) => {\n\tconst targetTimezone = tz || DEFAULT_TIMEZONE;\n\n\t_setLyxaTimezoneVariable(targetTimezone);\n\n\tif (format) {\n\t\treturn dayjs(date, format).tz(targetTimezone);\n\t}\n\treturn dayjs(date).tz(targetTimezone);\n}) as DayjsWithTimezone;\n\nObject.keys(dayjs).forEach(key => {\n\t(dayjsWithTimezone as any)[key] = (dayjs as any)[key];\n});\n\ndayjsWithTimezone.setTimezone = (timezone: string) => {\n\tDEFAULT_TIMEZONE = timezone;\n};\n\ndayjsWithTimezone.getTimezone = () => DEFAULT_TIMEZONE;\n\nexport const _setTimezone = (timezone: string) => {\n\tDEFAULT_TIMEZONE = timezone;\n};\n\nexport default dayjsWithTimezone;"]}
1
+ {"version":3,"file":"dayjs.js","sourceRoot":"/","sources":["utilities/dayjs/dayjs.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAqC;AACrC,2DAAmC;AACnC,iEAAyC;AACzC,qEAA6C;AAC7C,kCAAmD;AAEnD,eAAK,CAAC,MAAM,CAAC,aAAG,CAAC,CAAC;AAClB,eAAK,CAAC,MAAM,CAAC,kBAAQ,CAAC,CAAC;AACvB,eAAK,CAAC,MAAM,CAAC,gBAAM,CAAC,CAAC;AAErB,IAAI,gBAAgB,GAAG,aAAa,CAAC;AAUrC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAU,EAAE,MAAY,EAAE,EAAW,EAAE,EAAE;IACpE,MAAM,cAAc,GAAG,EAAE,IAAI,gBAAgB,CAAC;IAE9C,IAAA,+BAAwB,EAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,IAAA,eAAK,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC,CAAsB,CAAC;AAExB,MAAM,CAAC,IAAI,CAAC,eAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC/B,iBAAyB,CAAC,GAAG,CAAC,GAAI,eAAa,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,iBAAiB,CAAC,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE;IACpD,gBAAgB,GAAG,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC;AAEvD,iBAAiB,CAAC,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC;AAClC,iBAAiB,CAAC,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC;AAE3B,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;IAChD,gBAAgB,GAAG,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAGF,kBAAe,iBAAiB,CAAC","sourcesContent":["import dayjs, { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport minMax from 'dayjs/plugin/minMax';\nimport timezone from 'dayjs/plugin/timezone';\nimport { _setLyxaTimezoneVariable } from '../time';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(minMax);\n\nlet DEFAULT_TIMEZONE = 'Asia/Beirut';\n\ntype DayjsWithTimezone = {\n\t(date?: any, format?: any, tz?: string): Dayjs;\n\tsetTimezone(timezone: string): void;\n\tgetTimezone(): string;\n\tmax(...dates: (Dayjs | undefined)[]): Dayjs;\n\tmin(...dates: (Dayjs | undefined)[]): Dayjs;\n} & typeof dayjs;\n\nconst dayjsWithTimezone = ((date?: any, format?: any, tz?: string) => {\n\tconst targetTimezone = tz || DEFAULT_TIMEZONE;\n\n\t_setLyxaTimezoneVariable(targetTimezone);\n\n\tif (format) {\n\t\treturn dayjs(date, format).tz(targetTimezone);\n\t}\n\treturn dayjs(date).tz(targetTimezone);\n}) as DayjsWithTimezone;\n\nObject.keys(dayjs).forEach(key => {\n\t(dayjsWithTimezone as any)[key] = (dayjs as any)[key];\n});\n\ndayjsWithTimezone.setTimezone = (timezone: string) => {\n\tDEFAULT_TIMEZONE = timezone;\n};\n\ndayjsWithTimezone.getTimezone = () => DEFAULT_TIMEZONE;\n\ndayjsWithTimezone.max = dayjs.max;\ndayjsWithTimezone.min = dayjs.min;\n\nexport const _setTimezone = (timezone: string) => {\n\tDEFAULT_TIMEZONE = timezone;\n};\n\nexport type { Dayjs };\nexport default dayjsWithTimezone;\n"]}
@@ -1 +1,2 @@
1
1
  export { default as dayjs } from './dayjs';
2
+ export type { Dayjs } from './dayjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["utilities/dayjs/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA2C;AAAlC,+GAAA,OAAO,OAAS","sourcesContent":["export { default as dayjs } from './dayjs';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["utilities/dayjs/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAA2C;AAAlC,+GAAA,OAAO,OAAS","sourcesContent":["export { default as dayjs } from './dayjs';\nexport type { Dayjs } from './dayjs';\n"]}
@@ -1,23 +1,23 @@
1
- import dayjs, { Dayjs } from 'dayjs';
1
+ import { Dayjs } from '../utilities/dayjs';
2
2
  import { HolidayHour, NormalHour, StartEndTime } from '../libraries/mongo/models/shared/work-hour.model';
3
3
  import { WeekDay } from './enum';
4
4
  export declare const getDaysOfWeek: () => string[];
5
5
  export declare const getFullDayHours: () => StartEndTime[];
6
- export declare const parseTimeString: (timeHHMM: string, zone: string) => dayjs.Dayjs;
6
+ export declare const parseTimeString: (timeHHMM: string, zone: string) => Dayjs;
7
7
  export declare const calculateIntersection: (opening: StartEndTime, valid: StartEndTime, timeZone: string) => StartEndTime | null;
8
8
  export declare const getIntersectedHours: (openingHours: StartEndTime[], validHours: StartEndTime[], timeZone?: string) => StartEndTime[];
9
9
  export declare const checkWithinNormalHours: (hours: StartEndTime[], normalTimings: NormalHour[], day: keyof typeof WeekDay) => StartEndTime[];
10
10
  export declare const checkWithinHolidayHours: (hours: StartEndTime[], holidayTimings: HolidayHour[], currentDate: Dayjs) => StartEndTime[];
11
11
  export declare const getHolidayIntersectedHours: (openingHours: StartEndTime[], closingHours: StartEndTime[], timeZone?: string) => StartEndTime[];
12
12
  export declare const subtractSegment: (segment: {
13
- start: dayjs.Dayjs;
14
- end: dayjs.Dayjs;
13
+ start: Dayjs;
14
+ end: Dayjs;
15
15
  }, block: {
16
- start: dayjs.Dayjs;
17
- end: dayjs.Dayjs;
16
+ start: Dayjs;
17
+ end: Dayjs;
18
18
  }) => {
19
- start: dayjs.Dayjs;
20
- end: dayjs.Dayjs;
19
+ start: Dayjs;
20
+ end: Dayjs;
21
21
  }[];
22
22
  export declare const adminAfterHolidayWorkingHours: (workHourSetting: any) => StartEndTime[];
23
23
  export declare const isLyxaOpen: (workHourSetting: any) => boolean;
@@ -1,20 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.getVendorAndLyxaOpenTimings = exports.getShopAndLyxaOpenTimings = exports.isLyxaOpen = exports.adminAfterHolidayWorkingHours = exports.subtractSegment = exports.getHolidayIntersectedHours = exports.checkWithinHolidayHours = exports.checkWithinNormalHours = exports.getIntersectedHours = exports.calculateIntersection = exports.parseTimeString = exports.getFullDayHours = exports.getDaysOfWeek = void 0;
7
- const dayjs_1 = __importDefault(require("dayjs"));
8
- const utc_1 = __importDefault(require("dayjs/plugin/utc"));
9
- const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
10
- const minMax_1 = __importDefault(require("dayjs/plugin/minMax"));
4
+ const dayjs_1 = require("../utilities/dayjs");
11
5
  const enum_1 = require("./enum");
12
6
  const time_1 = require("./time");
13
- dayjs_1.default.extend(utc_1.default);
14
- dayjs_1.default.extend(timezone_1.default);
15
- dayjs_1.default.extend(minMax_1.default);
16
7
  const getDaysOfWeek = () => {
17
- return Array.from({ length: 7 }, (_, i) => (0, dayjs_1.default)().day(i).format('dddd'));
8
+ return Array.from({ length: 7 }, (_, i) => (0, dayjs_1.dayjs)().day(i).format('dddd'));
18
9
  };
19
10
  exports.getDaysOfWeek = getDaysOfWeek;
20
11
  const getFullDayHours = () => {
@@ -24,7 +15,7 @@ exports.getFullDayHours = getFullDayHours;
24
15
  const parseTimeString = (timeHHMM, zone) => {
25
16
  const hour = Number(timeHHMM.slice(0, 2));
26
17
  const minute = Number(timeHHMM.slice(2));
27
- return (0, dayjs_1.default)().tz(zone).hour(hour).minute(minute).second(0).millisecond(0);
18
+ return (0, dayjs_1.dayjs)().tz(zone).hour(hour).minute(minute).second(0).millisecond(0);
28
19
  };
29
20
  exports.parseTimeString = parseTimeString;
30
21
  const calculateIntersection = (opening, valid, timeZone) => {
@@ -32,8 +23,8 @@ const calculateIntersection = (opening, valid, timeZone) => {
32
23
  const openingEnd = (0, exports.parseTimeString)(opening.end, timeZone);
33
24
  const validStart = (0, exports.parseTimeString)(valid.start, timeZone);
34
25
  const validEnd = (0, exports.parseTimeString)(valid.end, timeZone);
35
- const intersectionStart = dayjs_1.default.max(openingStart, validStart);
36
- const intersectionEnd = dayjs_1.default.min(openingEnd, validEnd);
26
+ const intersectionStart = dayjs_1.dayjs.max(openingStart, validStart);
27
+ const intersectionEnd = dayjs_1.dayjs.min(openingEnd, validEnd);
37
28
  return intersectionStart && intersectionEnd && intersectionStart.isBefore(intersectionEnd)
38
29
  ? {
39
30
  start: intersectionStart.format('HHmm'),
@@ -75,7 +66,7 @@ const checkWithinHolidayHours = (hours, holidayTimings, currentDate) => {
75
66
  const todaysHoliday = holidayTimings.find(holiday => {
76
67
  if (!holiday.date)
77
68
  return false;
78
- const holidayDate = (0, dayjs_1.default)(holiday.date).tz(time_1.LyxaTimezone);
69
+ const holidayDate = (0, dayjs_1.dayjs)(holiday.date).tz(time_1.LyxaTimezone);
79
70
  return currentDateInTimezone.isSame(holidayDate, 'day');
80
71
  });
81
72
  if (!todaysHoliday)
@@ -139,10 +130,10 @@ const subtractSegment = (segment, block) => {
139
130
  exports.subtractSegment = subtractSegment;
140
131
  const adminAfterHolidayWorkingHours = (workHourSetting) => {
141
132
  const fullDayHours = (0, exports.getFullDayHours)();
142
- const now = (0, dayjs_1.default)().tz(time_1.LyxaTimezone);
133
+ const now = (0, dayjs_1.dayjs)().tz(time_1.LyxaTimezone);
143
134
  const currentDayIndex = now.day();
144
135
  const currentDay = (0, exports.getDaysOfWeek)()[currentDayIndex];
145
- const currentDate = (0, dayjs_1.default)().utc().startOf('day');
136
+ const currentDate = (0, dayjs_1.dayjs)().utc().startOf('day');
146
137
  const adminNormalWorkingHours = (0, exports.checkWithinNormalHours)(fullDayHours, workHourSetting.normalHours, currentDay);
147
138
  return (0, exports.checkWithinHolidayHours)(adminNormalWorkingHours, workHourSetting.holidayHours, currentDate);
148
139
  };
@@ -155,10 +146,10 @@ const isLyxaOpen = (workHourSetting) => {
155
146
  exports.isLyxaOpen = isLyxaOpen;
156
147
  const getShopAndLyxaOpenTimings = (shop, adminSettings, scheduledFor) => {
157
148
  const fullDayHours = [{ start: '0000', end: '2359' }];
158
- const now = scheduledFor ? (0, dayjs_1.default)(scheduledFor).tz(time_1.LyxaTimezone) : (0, dayjs_1.default)().tz(time_1.LyxaTimezone);
149
+ const now = scheduledFor ? (0, dayjs_1.dayjs)(scheduledFor).tz(time_1.LyxaTimezone) : (0, dayjs_1.dayjs)().tz(time_1.LyxaTimezone);
159
150
  const currentDayIndex = now.day();
160
151
  const currentDay = (0, exports.getDaysOfWeek)()[currentDayIndex];
161
- const currentDate = scheduledFor ? (0, dayjs_1.default)(scheduledFor).utc().startOf('day') : (0, dayjs_1.default)().utc().startOf('day');
152
+ const currentDate = scheduledFor ? (0, dayjs_1.dayjs)(scheduledFor).utc().startOf('day') : (0, dayjs_1.dayjs)().utc().startOf('day');
162
153
  const adminNormalWorkingHours = (0, exports.checkWithinNormalHours)(fullDayHours, adminSettings.workHourSetting?.normalHours ?? [], currentDay);
163
154
  const adminAfterHolidayWorkingHours = (0, exports.checkWithinHolidayHours)(adminNormalWorkingHours, adminSettings.workHourSetting?.holidayHours ?? [], currentDate);
164
155
  const shopNormalWorkingHours = (0, exports.checkWithinNormalHours)(adminAfterHolidayWorkingHours, shop.workHourSetting?.normalHours ?? [], currentDay);
@@ -1 +1 @@
1
- {"version":3,"file":"workHourSetting.js","sourceRoot":"/","sources":["utilities/workHourSetting.ts"],"names":[],"mappings":"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","sourcesContent":["import dayjs, { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport minMax from 'dayjs/plugin/minMax';\nimport { HolidayHour, NormalHour, StartEndTime } from '../libraries/mongo/models/shared/work-hour.model';\nimport { HolidayWorkStatus, WeekDay, WorkStatus } from './enum';\nimport { LyxaTimezone } from './time';\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(minMax);\n\nexport const getDaysOfWeek = (): string[] => {\n\treturn Array.from({ length: 7 }, (_, i) => dayjs().day(i).format('dddd'));\n};\n\nexport const getFullDayHours = (): StartEndTime[] => {\n\treturn [{ start: '0000', end: '2359' }];\n};\n\nexport const parseTimeString = (timeHHMM: string, zone: string): dayjs.Dayjs => {\n\tconst hour = Number(timeHHMM.slice(0, 2));\n\tconst minute = Number(timeHHMM.slice(2));\n\treturn dayjs().tz(zone).hour(hour).minute(minute).second(0).millisecond(0);\n};\nexport const calculateIntersection = (\n\topening: StartEndTime,\n\tvalid: StartEndTime,\n\ttimeZone: string\n): StartEndTime | null => {\n\tconst openingStart = parseTimeString(opening.start, timeZone);\n\tconst openingEnd = parseTimeString(opening.end, timeZone);\n\tconst validStart = parseTimeString(valid.start, timeZone);\n\tconst validEnd = parseTimeString(valid.end, timeZone);\n\n\tconst intersectionStart = dayjs.max(openingStart, validStart);\n\tconst intersectionEnd = dayjs.min(openingEnd, validEnd);\n\n\treturn intersectionStart && intersectionEnd && intersectionStart.isBefore(intersectionEnd)\n\t\t? {\n\t\t\tstart: intersectionStart.format('HHmm'),\n\t\t\tend: intersectionEnd.format('HHmm'),\n\t\t}\n\t\t: null;\n};\n\nexport const getIntersectedHours = (\n\topeningHours: StartEndTime[],\n\tvalidHours: StartEndTime[],\n\ttimeZone = 'Asia/Dhaka'\n): StartEndTime[] => {\n\tconst intersections: StartEndTime[] = [];\n\n\tfor (const opening of openingHours) {\n\t\tfor (const valid of validHours) {\n\t\t\tconst intersection = calculateIntersection(opening, valid, timeZone);\n\n\t\t\tif (intersection !== null) {\n\t\t\t\tintersections.push(intersection);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn intersections;\n};\n\nexport const checkWithinNormalHours = (\n\thours: StartEndTime[],\n\tnormalTimings: NormalHour[],\n\tday: keyof typeof WeekDay\n): StartEndTime[] => {\n\tconst dayTiming = normalTimings.find(timing => timing.day === WeekDay[day]);\n\n\tif (!dayTiming) return [];\n\n\tconst statusHandlers = {\n\t\t[WorkStatus.CLOSED]: () => [],\n\t\t[WorkStatus.FULL_DAY]: () => getFullDayHours(),\n\t\t[WorkStatus.OPEN]: () =>\n\t\t\tdayTiming.openingHours?.length ? getIntersectedHours(dayTiming.openingHours, hours) : [],\n\t};\n\n\treturn statusHandlers[dayTiming.status]?.() || [];\n};\n\nexport const checkWithinHolidayHours = (\n\thours: StartEndTime[],\n\tholidayTimings: HolidayHour[],\n\tcurrentDate: Dayjs\n): StartEndTime[] => {\n\tif (!holidayTimings.length) {\n\t\treturn hours;\n\t}\n\n\t/** Find If Today Is Holiday */\n\tconst currentDateInTimezone = currentDate.tz(LyxaTimezone);\n\tconst todaysHoliday = holidayTimings.find(holiday => {\n\t\tif (!holiday.date) return false;\n\t\tconst holidayDate = dayjs(holiday.date).tz(LyxaTimezone);\n\t\treturn currentDateInTimezone.isSame(holidayDate, 'day');\n\t});\n\n\t/** No holiday today - return original hours */\n\tif (!todaysHoliday) return hours;\n\n\t/** Handle holiday status --> Full Day Holiday */\n\tif (todaysHoliday.status === HolidayWorkStatus.FULL_DAY) return [];\n\n\t/** Handle holiday status --> Certain Hour Closed Holiday */\n\tif (\n\t\ttodaysHoliday.status === HolidayWorkStatus.CLOSED &&\n\t\ttodaysHoliday.closingHour?.start &&\n\t\ttodaysHoliday.closingHour?.end\n\t) {\n\t\treturn getHolidayIntersectedHours(hours, [todaysHoliday.closingHour]);\n\t}\n\n\t/** Default fallback - return original hours */\n\treturn hours;\n};\n\nexport const getHolidayIntersectedHours = (\n\topeningHours: StartEndTime[],\n\tclosingHours: StartEndTime[],\n\ttimeZone = 'Asia/Dhaka'\n): StartEndTime[] => {\n\tif (!openingHours.length || !closingHours.length) {\n\t\treturn openingHours;\n\t}\n\n\tconst result: StartEndTime[] = [];\n\n\tfor (const opening of openingHours) {\n\t\tconst openingStart = parseTimeString(opening.start, timeZone);\n\t\tconst openingEnd = parseTimeString(opening.end, timeZone);\n\n\t\tlet segments = [{ start: openingStart, end: openingEnd }];\n\n\t\t/** Applying each closing period to current segments */\n\t\tfor (const closing of closingHours) {\n\t\t\tconst closingStart = parseTimeString(closing.start, timeZone);\n\t\t\tconst closingEnd = parseTimeString(closing.end, timeZone);\n\t\t\tconst block = { start: closingStart, end: closingEnd };\n\n\t\t\tsegments = segments.flatMap(segment => subtractSegment(segment, block));\n\t\t}\n\n\t\t/** Converting segments to result format */\n\t\tfor (const segment of segments) {\n\t\t\tresult.push({\n\t\t\t\tstart: segment.start.format('HHmm'),\n\t\t\t\tend: segment.end.format('HHmm'),\n\t\t\t});\n\t\t}\n\t}\n\n\treturn result;\n};\nexport const subtractSegment = (\n\tsegment: { start: dayjs.Dayjs; end: dayjs.Dayjs },\n\tblock: { start: dayjs.Dayjs; end: dayjs.Dayjs }\n): { start: dayjs.Dayjs; end: dayjs.Dayjs }[] => {\n\tconst { start, end } = segment;\n\tconst { start: blockStart, end: blockEnd } = block;\n\n\t/** Sequence Matter */\n\t/** No Overlap */\n\tif (end.isBefore(blockStart) || start.isAfter(blockEnd)) return [segment];\n\n\t/** Fully Overlapped */\n\tif (blockStart.isBefore(start) && blockEnd.isAfter(end)) return [];\n\n\t/** Block Inside Segment (Middle Cut) */\n\tif (blockStart.isAfter(start) && blockEnd.isBefore(end)) {\n\t\treturn [\n\t\t\t{ start, end: blockStart },\n\t\t\t{ start: blockEnd, end },\n\t\t];\n\t}\n\n\t/** Overlap At Start */\n\tif (blockStart.isBefore(end) && blockEnd.isBefore(end) && blockEnd.isAfter(start)) {\n\t\treturn [{ start: blockEnd, end }];\n\t}\n\n\t/** Overlap At End */\n\tif (blockEnd.isAfter(start) && blockStart.isAfter(start) && blockStart.isBefore(end)) {\n\t\treturn [{ start, end: blockStart }];\n\t}\n\n\treturn [];\n};\n\nexport const adminAfterHolidayWorkingHours = (workHourSetting: any) => {\n\tconst fullDayHours = getFullDayHours();\n\tconst now = dayjs().tz(LyxaTimezone);\n\tconst currentDayIndex = now.day(); // 0 (Sunday) through 6 (Saturday)\n\tconst currentDay = getDaysOfWeek()[currentDayIndex] as keyof typeof WeekDay;\n\tconst currentDate = dayjs().utc().startOf('day');\n\n\t/**Admin Normal Working Hour*/\n\tconst adminNormalWorkingHours = checkWithinNormalHours(\n\t\tfullDayHours,\n\t\tworkHourSetting.normalHours,\n\t\tcurrentDay\n\t);\n\t/**Admin Working Hour After Subtracting From Admin Holiday Hour */\n\treturn checkWithinHolidayHours(adminNormalWorkingHours, workHourSetting.holidayHours, currentDate);\n};\n\nexport const isLyxaOpen = (workHourSetting: any) => {\n\tconst currentTime = new Date().getHours() * 100 + new Date().getMinutes();\n\tconst lyxaOpenHour = adminAfterHolidayWorkingHours(workHourSetting);\n\treturn lyxaOpenHour.some(\n\t\ttiming => parseInt(timing.start) <= currentTime && currentTime <= parseInt(timing.end)\n\t);\n};\n\nexport const getShopAndLyxaOpenTimings = (shop: any, adminSettings: any, scheduledFor?: Date) => {\n\tconst fullDayHours = [{ start: '0000', end: '2359' }];\n\tconst now = scheduledFor ? dayjs(scheduledFor).tz(LyxaTimezone) : dayjs().tz(LyxaTimezone); // ✅ current time in correct timezone\n\tconst currentDayIndex = now.day(); // 0 (Sunday) through 6 (Saturday)\n\tconst currentDay = getDaysOfWeek()[currentDayIndex] as keyof typeof WeekDay;\n\tconst currentDate = scheduledFor ? dayjs(scheduledFor).utc().startOf('day') : dayjs().utc().startOf('day');\n\n\tconst adminNormalWorkingHours = checkWithinNormalHours(\n\t\tfullDayHours,\n\t\tadminSettings.workHourSetting?.normalHours ?? [],\n\t\tcurrentDay\n\t);\n\n\tconst adminAfterHolidayWorkingHours = checkWithinHolidayHours(\n\t\tadminNormalWorkingHours,\n\t\tadminSettings.workHourSetting?.holidayHours ?? [],\n\t\tcurrentDate\n\t);\n\n\tconst shopNormalWorkingHours = checkWithinNormalHours(\n\t\tadminAfterHolidayWorkingHours,\n\t\tshop.workHourSetting?.normalHours ?? [],\n\t\tcurrentDay\n\t);\n\n\treturn checkWithinHolidayHours(\n\t\tshopNormalWorkingHours,\n\t\tshop.workHourSetting?.holidayHours ?? [],\n\t\tcurrentDate\n\t);\n}\n\nexport const getVendorAndLyxaOpenTimings = (vendor: any, adminSettings: any, date: Date) => {\n\treturn getShopAndLyxaOpenTimings(vendor, adminSettings, date);\n}\n"]}
1
+ {"version":3,"file":"workHourSetting.js","sourceRoot":"/","sources":["utilities/workHourSetting.ts"],"names":[],"mappings":"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","sourcesContent":["import { dayjs, Dayjs } from '../utilities/dayjs';\nimport { HolidayHour, NormalHour, StartEndTime } from '../libraries/mongo/models/shared/work-hour.model';\nimport { HolidayWorkStatus, WeekDay, WorkStatus } from './enum';\nimport { LyxaTimezone } from './time';\n\nexport const getDaysOfWeek = (): string[] => {\n\treturn Array.from({ length: 7 }, (_, i) => dayjs().day(i).format('dddd'));\n};\n\nexport const getFullDayHours = (): StartEndTime[] => {\n\treturn [{ start: '0000', end: '2359' }];\n};\n\nexport const parseTimeString = (timeHHMM: string, zone: string): Dayjs => {\n\tconst hour = Number(timeHHMM.slice(0, 2));\n\tconst minute = Number(timeHHMM.slice(2));\n\treturn dayjs().tz(zone).hour(hour).minute(minute).second(0).millisecond(0);\n};\nexport const calculateIntersection = (\n\topening: StartEndTime,\n\tvalid: StartEndTime,\n\ttimeZone: string\n): StartEndTime | null => {\n\tconst openingStart = parseTimeString(opening.start, timeZone);\n\tconst openingEnd = parseTimeString(opening.end, timeZone);\n\tconst validStart = parseTimeString(valid.start, timeZone);\n\tconst validEnd = parseTimeString(valid.end, timeZone);\n\n\tconst intersectionStart = dayjs.max(openingStart, validStart);\n\tconst intersectionEnd = dayjs.min(openingEnd, validEnd);\n\n\treturn intersectionStart && intersectionEnd && intersectionStart.isBefore(intersectionEnd)\n\t\t? {\n\t\t\t\tstart: intersectionStart.format('HHmm'),\n\t\t\t\tend: intersectionEnd.format('HHmm'),\n\t\t\t}\n\t\t: null;\n};\n\nexport const getIntersectedHours = (\n\topeningHours: StartEndTime[],\n\tvalidHours: StartEndTime[],\n\ttimeZone = 'Asia/Dhaka'\n): StartEndTime[] => {\n\tconst intersections: StartEndTime[] = [];\n\n\tfor (const opening of openingHours) {\n\t\tfor (const valid of validHours) {\n\t\t\tconst intersection = calculateIntersection(opening, valid, timeZone);\n\n\t\t\tif (intersection !== null) {\n\t\t\t\tintersections.push(intersection);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn intersections;\n};\n\nexport const checkWithinNormalHours = (\n\thours: StartEndTime[],\n\tnormalTimings: NormalHour[],\n\tday: keyof typeof WeekDay\n): StartEndTime[] => {\n\tconst dayTiming = normalTimings.find(timing => timing.day === WeekDay[day]);\n\n\tif (!dayTiming) return [];\n\n\tconst statusHandlers = {\n\t\t[WorkStatus.CLOSED]: () => [],\n\t\t[WorkStatus.FULL_DAY]: () => getFullDayHours(),\n\t\t[WorkStatus.OPEN]: () =>\n\t\t\tdayTiming.openingHours?.length ? getIntersectedHours(dayTiming.openingHours, hours) : [],\n\t};\n\n\treturn statusHandlers[dayTiming.status]?.() || [];\n};\n\nexport const checkWithinHolidayHours = (\n\thours: StartEndTime[],\n\tholidayTimings: HolidayHour[],\n\tcurrentDate: Dayjs\n): StartEndTime[] => {\n\tif (!holidayTimings.length) {\n\t\treturn hours;\n\t}\n\n\t/** Find If Today Is Holiday */\n\tconst currentDateInTimezone = currentDate.tz(LyxaTimezone);\n\tconst todaysHoliday = holidayTimings.find(holiday => {\n\t\tif (!holiday.date) return false;\n\t\tconst holidayDate = dayjs(holiday.date).tz(LyxaTimezone);\n\t\treturn currentDateInTimezone.isSame(holidayDate, 'day');\n\t});\n\n\t/** No holiday today - return original hours */\n\tif (!todaysHoliday) return hours;\n\n\t/** Handle holiday status --> Full Day Holiday */\n\tif (todaysHoliday.status === HolidayWorkStatus.FULL_DAY) return [];\n\n\t/** Handle holiday status --> Certain Hour Closed Holiday */\n\tif (\n\t\ttodaysHoliday.status === HolidayWorkStatus.CLOSED &&\n\t\ttodaysHoliday.closingHour?.start &&\n\t\ttodaysHoliday.closingHour?.end\n\t) {\n\t\treturn getHolidayIntersectedHours(hours, [todaysHoliday.closingHour]);\n\t}\n\n\t/** Default fallback - return original hours */\n\treturn hours;\n};\n\nexport const getHolidayIntersectedHours = (\n\topeningHours: StartEndTime[],\n\tclosingHours: StartEndTime[],\n\ttimeZone = 'Asia/Dhaka'\n): StartEndTime[] => {\n\tif (!openingHours.length || !closingHours.length) {\n\t\treturn openingHours;\n\t}\n\n\tconst result: StartEndTime[] = [];\n\n\tfor (const opening of openingHours) {\n\t\tconst openingStart = parseTimeString(opening.start, timeZone);\n\t\tconst openingEnd = parseTimeString(opening.end, timeZone);\n\n\t\tlet segments = [{ start: openingStart, end: openingEnd }];\n\n\t\t/** Applying each closing period to current segments */\n\t\tfor (const closing of closingHours) {\n\t\t\tconst closingStart = parseTimeString(closing.start, timeZone);\n\t\t\tconst closingEnd = parseTimeString(closing.end, timeZone);\n\t\t\tconst block = { start: closingStart, end: closingEnd };\n\n\t\t\tsegments = segments.flatMap(segment => subtractSegment(segment, block));\n\t\t}\n\n\t\t/** Converting segments to result format */\n\t\tfor (const segment of segments) {\n\t\t\tresult.push({\n\t\t\t\tstart: segment.start.format('HHmm'),\n\t\t\t\tend: segment.end.format('HHmm'),\n\t\t\t});\n\t\t}\n\t}\n\n\treturn result;\n};\nexport const subtractSegment = (\n\tsegment: { start: Dayjs; end: Dayjs },\n\tblock: { start: Dayjs; end: Dayjs }\n): { start: Dayjs; end: Dayjs }[] => {\n\tconst { start, end } = segment;\n\tconst { start: blockStart, end: blockEnd } = block;\n\n\t/** Sequence Matter */\n\t/** No Overlap */\n\tif (end.isBefore(blockStart) || start.isAfter(blockEnd)) return [segment];\n\n\t/** Fully Overlapped */\n\tif (blockStart.isBefore(start) && blockEnd.isAfter(end)) return [];\n\n\t/** Block Inside Segment (Middle Cut) */\n\tif (blockStart.isAfter(start) && blockEnd.isBefore(end)) {\n\t\treturn [\n\t\t\t{ start, end: blockStart },\n\t\t\t{ start: blockEnd, end },\n\t\t];\n\t}\n\n\t/** Overlap At Start */\n\tif (blockStart.isBefore(end) && blockEnd.isBefore(end) && blockEnd.isAfter(start)) {\n\t\treturn [{ start: blockEnd, end }];\n\t}\n\n\t/** Overlap At End */\n\tif (blockEnd.isAfter(start) && blockStart.isAfter(start) && blockStart.isBefore(end)) {\n\t\treturn [{ start, end: blockStart }];\n\t}\n\n\treturn [];\n};\n\nexport const adminAfterHolidayWorkingHours = (workHourSetting: any) => {\n\tconst fullDayHours = getFullDayHours();\n\tconst now = dayjs().tz(LyxaTimezone);\n\tconst currentDayIndex = now.day(); // 0 (Sunday) through 6 (Saturday)\n\tconst currentDay = getDaysOfWeek()[currentDayIndex] as keyof typeof WeekDay;\n\tconst currentDate = dayjs().utc().startOf('day');\n\n\t/**Admin Normal Working Hour*/\n\tconst adminNormalWorkingHours = checkWithinNormalHours(\n\t\tfullDayHours,\n\t\tworkHourSetting.normalHours,\n\t\tcurrentDay\n\t);\n\t/**Admin Working Hour After Subtracting From Admin Holiday Hour */\n\treturn checkWithinHolidayHours(adminNormalWorkingHours, workHourSetting.holidayHours, currentDate);\n};\n\nexport const isLyxaOpen = (workHourSetting: any) => {\n\tconst currentTime = new Date().getHours() * 100 + new Date().getMinutes();\n\tconst lyxaOpenHour = adminAfterHolidayWorkingHours(workHourSetting);\n\treturn lyxaOpenHour.some(\n\t\ttiming => parseInt(timing.start) <= currentTime && currentTime <= parseInt(timing.end)\n\t);\n};\n\nexport const getShopAndLyxaOpenTimings = (shop: any, adminSettings: any, scheduledFor?: Date) => {\n\tconst fullDayHours = [{ start: '0000', end: '2359' }];\n\tconst now = scheduledFor ? dayjs(scheduledFor).tz(LyxaTimezone) : dayjs().tz(LyxaTimezone); // ✅ current time in correct timezone\n\tconst currentDayIndex = now.day(); // 0 (Sunday) through 6 (Saturday)\n\tconst currentDay = getDaysOfWeek()[currentDayIndex] as keyof typeof WeekDay;\n\tconst currentDate = scheduledFor ? dayjs(scheduledFor).utc().startOf('day') : dayjs().utc().startOf('day');\n\n\tconst adminNormalWorkingHours = checkWithinNormalHours(\n\t\tfullDayHours,\n\t\tadminSettings.workHourSetting?.normalHours ?? [],\n\t\tcurrentDay\n\t);\n\n\tconst adminAfterHolidayWorkingHours = checkWithinHolidayHours(\n\t\tadminNormalWorkingHours,\n\t\tadminSettings.workHourSetting?.holidayHours ?? [],\n\t\tcurrentDate\n\t);\n\n\tconst shopNormalWorkingHours = checkWithinNormalHours(\n\t\tadminAfterHolidayWorkingHours,\n\t\tshop.workHourSetting?.normalHours ?? [],\n\t\tcurrentDay\n\t);\n\n\treturn checkWithinHolidayHours(\n\t\tshopNormalWorkingHours,\n\t\tshop.workHourSetting?.holidayHours ?? [],\n\t\tcurrentDate\n\t);\n};\n\nexport const getVendorAndLyxaOpenTimings = (vendor: any, adminSettings: any, date: Date) => {\n\treturn getShopAndLyxaOpenTimings(vendor, adminSettings, date);\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyxa.ai/core",
3
- "version": "1.3.72",
3
+ "version": "1.3.74",
4
4
  "description": "The Core system of the Lyxa services.",
5
5
  "author": "elie <42282499+Internalizable@users.noreply.github.com>",
6
6
  "license": "MIT",
@@ -1,24 +0,0 @@
1
- import { Ref } from '@typegoose/typegoose';
2
- import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
3
- import { CoreUser } from './core-user.model';
4
- import { Parent } from './parent.model';
5
- import { CardType, CardUserType } from '../../../utilities/enum';
6
- export declare class Card extends TimeStamps {
7
- cardType: CardType;
8
- coreUser?: Ref<CoreUser>;
9
- parent?: Ref<Parent>;
10
- userType?: CardUserType;
11
- nameOfCard?: string;
12
- card_number: string;
13
- cvv: string;
14
- expiry_month: string;
15
- expiry_year: string;
16
- expiryDateString?: string;
17
- expiryDate?: Date;
18
- currency?: string;
19
- defaultCard?: boolean;
20
- cardTypeString?: string;
21
- security?: string;
22
- pins?: string[];
23
- mode?: string;
24
- }
@@ -1,109 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Card = void 0;
13
- const typegoose_1 = require("@typegoose/typegoose");
14
- const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
- const core_user_model_1 = require("./core-user.model");
16
- const parent_model_1 = require("./parent.model");
17
- const enum_1 = require("../../../utilities/enum");
18
- let Card = class Card extends defaultClasses_1.TimeStamps {
19
- cardType;
20
- coreUser;
21
- parent;
22
- userType;
23
- nameOfCard;
24
- card_number;
25
- cvv;
26
- expiry_month;
27
- expiry_year;
28
- expiryDateString;
29
- expiryDate;
30
- currency;
31
- defaultCard;
32
- cardTypeString;
33
- security;
34
- pins;
35
- mode;
36
- };
37
- exports.Card = Card;
38
- __decorate([
39
- (0, typegoose_1.prop)({ type: String, enum: enum_1.CardType }),
40
- __metadata("design:type", String)
41
- ], Card.prototype, "cardType", void 0);
42
- __decorate([
43
- (0, typegoose_1.prop)({ ref: () => core_user_model_1.CoreUser }),
44
- __metadata("design:type", Object)
45
- ], Card.prototype, "coreUser", void 0);
46
- __decorate([
47
- (0, typegoose_1.prop)({ ref: () => parent_model_1.Parent }),
48
- __metadata("design:type", Object)
49
- ], Card.prototype, "parent", void 0);
50
- __decorate([
51
- (0, typegoose_1.prop)({ type: String, enum: enum_1.CardUserType }),
52
- __metadata("design:type", String)
53
- ], Card.prototype, "userType", void 0);
54
- __decorate([
55
- (0, typegoose_1.prop)({ type: String }),
56
- __metadata("design:type", String)
57
- ], Card.prototype, "nameOfCard", void 0);
58
- __decorate([
59
- (0, typegoose_1.prop)({ type: String, required: true }),
60
- __metadata("design:type", String)
61
- ], Card.prototype, "card_number", void 0);
62
- __decorate([
63
- (0, typegoose_1.prop)({ type: String, required: true }),
64
- __metadata("design:type", String)
65
- ], Card.prototype, "cvv", void 0);
66
- __decorate([
67
- (0, typegoose_1.prop)({ type: String, required: true }),
68
- __metadata("design:type", String)
69
- ], Card.prototype, "expiry_month", void 0);
70
- __decorate([
71
- (0, typegoose_1.prop)({ type: String, required: true }),
72
- __metadata("design:type", String)
73
- ], Card.prototype, "expiry_year", void 0);
74
- __decorate([
75
- (0, typegoose_1.prop)({ type: String }),
76
- __metadata("design:type", String)
77
- ], Card.prototype, "expiryDateString", void 0);
78
- __decorate([
79
- (0, typegoose_1.prop)({ type: Date }),
80
- __metadata("design:type", Date)
81
- ], Card.prototype, "expiryDate", void 0);
82
- __decorate([
83
- (0, typegoose_1.prop)({ type: String, required: true, default: 'NGN' }),
84
- __metadata("design:type", String)
85
- ], Card.prototype, "currency", void 0);
86
- __decorate([
87
- (0, typegoose_1.prop)({ type: Boolean, default: false }),
88
- __metadata("design:type", Boolean)
89
- ], Card.prototype, "defaultCard", void 0);
90
- __decorate([
91
- (0, typegoose_1.prop)({ type: String }),
92
- __metadata("design:type", String)
93
- ], Card.prototype, "cardTypeString", void 0);
94
- __decorate([
95
- (0, typegoose_1.prop)({ type: String }),
96
- __metadata("design:type", String)
97
- ], Card.prototype, "security", void 0);
98
- __decorate([
99
- (0, typegoose_1.prop)({ type: () => [String] }),
100
- __metadata("design:type", Array)
101
- ], Card.prototype, "pins", void 0);
102
- __decorate([
103
- (0, typegoose_1.prop)({ type: String }),
104
- __metadata("design:type", String)
105
- ], Card.prototype, "mode", void 0);
106
- exports.Card = Card = __decorate([
107
- (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'cards', timestamps: true, discriminatorKey: 'cardType' } })
108
- ], Card);
109
- //# sourceMappingURL=card.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"card.model.js","sourceRoot":"/","sources":["libraries/mongo/models/card.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+D;AAC/D,4EAAqE;AACrE,uDAA6C;AAC7C,iDAAwC;AACxC,kDAAiE;AAG1D,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,2BAAU;IAE5B,QAAQ,CAAW;IAGnB,QAAQ,CAAiB;IAGzB,MAAM,CAAe;IAGrB,QAAQ,CAAgB;IAGxB,UAAU,CAAU;IAGpB,WAAW,CAAU;IAGrB,GAAG,CAAU;IAGb,YAAY,CAAU;IAGtB,WAAW,CAAU;IAGrB,gBAAgB,CAAU;IAG1B,UAAU,CAAQ;IAGlB,QAAQ,CAAU;IAGlB,WAAW,CAAW;IAGtB,cAAc,CAAU;IAGxB,QAAQ,CAAU;IAGlB,IAAI,CAAY;IAGhB,IAAI,CAAU;CACrB,CAAA;AAnDY,oBAAI;AAET;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAQ,EAAE,CAAC;;sCACb;AAGnB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,0BAAQ,EAAE,CAAC;;sCACE;AAGzB;IADN,IAAA,gBAAI,EAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,qBAAM,EAAE,CAAC;;oCACA;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAY,EAAE,CAAC;;sCACZ;AAGxB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wCACI;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iCACnB;AAGb;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACV;AAGtB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACX;AAGrB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;8CACU;AAG1B;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8BACD,IAAI;wCAAC;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;sCAC9B;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;yCACX;AAGtB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;4CACQ;AAGxB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sCACE;AAGlB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;;kCACR;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kCACF;eAlDT,IAAI;IADhB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,EAAE,CAAC;GAC5F,IAAI,CAmDhB","sourcesContent":["import { modelOptions, prop, Ref } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { CoreUser } from './core-user.model';\nimport { Parent } from './parent.model';\nimport { CardType, CardUserType } from '../../../utilities/enum';\n\n@modelOptions({ schemaOptions: { collection: 'cards', timestamps: true, discriminatorKey: 'cardType' } })\nexport class Card extends TimeStamps {\n\t@prop({ type: String, enum: CardType })\n\tpublic cardType: CardType;\n\n\t@prop({ ref: () => CoreUser })\n\tpublic coreUser?: Ref<CoreUser>;\n\n\t@prop({ ref: () => Parent })\n\tpublic parent?: Ref<Parent>;\n\n\t@prop({ type: String, enum: CardUserType })\n\tpublic userType?: CardUserType;\n\n\t@prop({ type: String })\n\tpublic nameOfCard?: string;\n\n\t@prop({ type: String, required: true })\n\tpublic card_number!: string;\n\n\t@prop({ type: String, required: true })\n\tpublic cvv!: string;\n\n\t@prop({ type: String, required: true })\n\tpublic expiry_month!: string;\n\n\t@prop({ type: String, required: true })\n\tpublic expiry_year!: string;\n\n\t@prop({ type: String })\n\tpublic expiryDateString?: string;\n\n\t@prop({ type: Date })\n\tpublic expiryDate?: Date;\n\n\t@prop({ type: String, required: true, default: 'NGN' })\n\tpublic currency?: string;\n\n\t@prop({ type: Boolean, default: false })\n\tpublic defaultCard?: boolean;\n\n\t@prop({ type: String })\n\tpublic cardTypeString?: string;\n\n\t@prop({ type: String })\n\tpublic security?: string;\n\n\t@prop({ type: () => [String] })\n\tpublic pins?: string[];\n\n\t@prop({ type: String })\n\tpublic mode?: string;\n}\n"]}
@@ -1,14 +0,0 @@
1
- import { Card } from '../card.model';
2
- import { AreebaCardStatus } from '../../../../utilities/enum';
3
- export declare class AreebaCard extends Card {
4
- orderId?: string;
5
- sessionId?: string;
6
- brand?: string;
7
- expiry?: string;
8
- fundingMethod?: string;
9
- nameOnCard?: string;
10
- number?: string;
11
- scheme?: string;
12
- token?: string;
13
- status?: AreebaCardStatus;
14
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AreebaCard = void 0;
13
- const typegoose_1 = require("@typegoose/typegoose");
14
- const card_model_1 = require("../card.model");
15
- const enum_1 = require("../../../../utilities/enum");
16
- class AreebaCard extends card_model_1.Card {
17
- orderId;
18
- sessionId;
19
- brand;
20
- expiry;
21
- fundingMethod;
22
- nameOnCard;
23
- number;
24
- scheme;
25
- token;
26
- status;
27
- }
28
- exports.AreebaCard = AreebaCard;
29
- __decorate([
30
- (0, typegoose_1.prop)({ type: String }),
31
- __metadata("design:type", String)
32
- ], AreebaCard.prototype, "orderId", void 0);
33
- __decorate([
34
- (0, typegoose_1.prop)({ type: String }),
35
- __metadata("design:type", String)
36
- ], AreebaCard.prototype, "sessionId", void 0);
37
- __decorate([
38
- (0, typegoose_1.prop)({ type: String }),
39
- __metadata("design:type", String)
40
- ], AreebaCard.prototype, "brand", void 0);
41
- __decorate([
42
- (0, typegoose_1.prop)({ type: String }),
43
- __metadata("design:type", String)
44
- ], AreebaCard.prototype, "expiry", void 0);
45
- __decorate([
46
- (0, typegoose_1.prop)({ type: String }),
47
- __metadata("design:type", String)
48
- ], AreebaCard.prototype, "fundingMethod", void 0);
49
- __decorate([
50
- (0, typegoose_1.prop)({ type: String }),
51
- __metadata("design:type", String)
52
- ], AreebaCard.prototype, "nameOnCard", void 0);
53
- __decorate([
54
- (0, typegoose_1.prop)({ type: String }),
55
- __metadata("design:type", String)
56
- ], AreebaCard.prototype, "number", void 0);
57
- __decorate([
58
- (0, typegoose_1.prop)({ type: String }),
59
- __metadata("design:type", String)
60
- ], AreebaCard.prototype, "scheme", void 0);
61
- __decorate([
62
- (0, typegoose_1.prop)({ type: String }),
63
- __metadata("design:type", String)
64
- ], AreebaCard.prototype, "token", void 0);
65
- __decorate([
66
- (0, typegoose_1.prop)({ type: String, enum: enum_1.AreebaCardStatus, default: enum_1.AreebaCardStatus.PENDING }),
67
- __metadata("design:type", String)
68
- ], AreebaCard.prototype, "status", void 0);
69
- //# sourceMappingURL=areeba-card.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"areeba-card.model.js","sourceRoot":"/","sources":["libraries/mongo/models/providers/areeba-card.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA4C;AAC5C,8CAAqC;AACrC,qDAA8D;AAE9D,MAAa,UAAW,SAAQ,iBAAI;IAE5B,OAAO,CAAU;IAGjB,SAAS,CAAU;IAGnB,KAAK,CAAU;IAGf,MAAM,CAAU;IAGhB,aAAa,CAAU;IAGvB,UAAU,CAAU;IAGpB,MAAM,CAAU;IAGhB,MAAM,CAAU;IAGhB,KAAK,CAAU;IAGf,MAAM,CAAoB;CACjC;AA9BD,gCA8BC;AA5BO;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;2CACC;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACG;AAGnB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCACD;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACA;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;iDACO;AAGvB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;8CACI;AAGpB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACA;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;0CACA;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCACD;AAGf;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAgB,EAAE,OAAO,EAAE,uBAAgB,CAAC,OAAO,EAAE,CAAC;;0CACjD","sourcesContent":["import { prop } from '@typegoose/typegoose';\nimport { Card } from '../card.model';\nimport { AreebaCardStatus } from '../../../../utilities/enum';\n\nexport class AreebaCard extends Card {\n\t@prop({ type: String })\n\tpublic orderId?: string;\n\n\t@prop({ type: String })\n\tpublic sessionId?: string;\n\n\t@prop({ type: String })\n\tpublic brand?: string;\n\n\t@prop({ type: String })\n\tpublic expiry?: string;\n\n\t@prop({ type: String })\n\tpublic fundingMethod?: string;\n\n\t@prop({ type: String })\n\tpublic nameOnCard?: string;\n\n\t@prop({ type: String })\n\tpublic number?: string;\n\n\t@prop({ type: String })\n\tpublic scheme?: string;\n\n\t@prop({ type: String })\n\tpublic token?: string;\n\n\t@prop({ type: String, enum: AreebaCardStatus, default: AreebaCardStatus.PENDING })\n\tpublic status?: AreebaCardStatus;\n}\n"]}
@@ -1,6 +0,0 @@
1
- import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
2
- export declare class Role extends TimeStamps {
3
- name: string;
4
- status: boolean;
5
- description?: string;
6
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Role = void 0;
13
- const typegoose_1 = require("@typegoose/typegoose");
14
- const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
- let Role = class Role extends defaultClasses_1.TimeStamps {
16
- name;
17
- status;
18
- description;
19
- };
20
- exports.Role = Role;
21
- __decorate([
22
- (0, typegoose_1.prop)({ required: true, type: String }),
23
- __metadata("design:type", String)
24
- ], Role.prototype, "name", void 0);
25
- __decorate([
26
- (0, typegoose_1.prop)({ required: true, type: Boolean, default: true }),
27
- __metadata("design:type", Boolean)
28
- ], Role.prototype, "status", void 0);
29
- __decorate([
30
- (0, typegoose_1.prop)({ type: String }),
31
- __metadata("design:type", String)
32
- ], Role.prototype, "description", void 0);
33
- exports.Role = Role = __decorate([
34
- (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'roles' } })
35
- ], Role);
36
- //# sourceMappingURL=role.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"role.model.js","sourceRoot":"/","sources":["libraries/mongo/models/role.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA0D;AAC1D,4EAAqE;AAG9D,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,2BAAU;IAE5B,IAAI,CAAU;IAGd,MAAM,CAAW;IAGjB,WAAW,CAAU;CAC5B,CAAA;AATY,oBAAI;AAET;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kCAClB;AAGd;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;oCAC/B;AAGjB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yCACK;eARhB,IAAI;IADhB,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;GAC5C,IAAI,CAShB","sourcesContent":["import { modelOptions, prop } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\n\n@modelOptions({ schemaOptions: { collection: 'roles' } })\nexport class Role extends TimeStamps {\n\t@prop({ required: true, type: String })\n\tpublic name!: string;\n\n\t@prop({ required: true, type: Boolean, default: true })\n\tpublic status!: boolean;\n\n\t@prop({ type: String })\n\tpublic description?: string;\n}\n"]}
@@ -1,7 +0,0 @@
1
- import { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
2
- import { Status, SubscriptionPackage } from '../../../utilities/enum';
3
- export declare class SubscriptionSetting extends TimeStamps {
4
- package: SubscriptionPackage;
5
- amount: number;
6
- status?: Status;
7
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SubscriptionSetting = void 0;
13
- const typegoose_1 = require("@typegoose/typegoose");
14
- const defaultClasses_1 = require("@typegoose/typegoose/lib/defaultClasses");
15
- const enum_1 = require("../../../utilities/enum");
16
- let SubscriptionSetting = class SubscriptionSetting extends defaultClasses_1.TimeStamps {
17
- package;
18
- amount;
19
- status;
20
- };
21
- exports.SubscriptionSetting = SubscriptionSetting;
22
- __decorate([
23
- (0, typegoose_1.prop)({
24
- required: true,
25
- unique: true,
26
- type: String,
27
- enum: enum_1.SubscriptionPackage,
28
- }),
29
- __metadata("design:type", String)
30
- ], SubscriptionSetting.prototype, "package", void 0);
31
- __decorate([
32
- (0, typegoose_1.prop)({ required: true, type: Number }),
33
- __metadata("design:type", Number)
34
- ], SubscriptionSetting.prototype, "amount", void 0);
35
- __decorate([
36
- (0, typegoose_1.prop)({ type: String, enum: enum_1.Status, default: enum_1.Status.ACTIVE }),
37
- __metadata("design:type", String)
38
- ], SubscriptionSetting.prototype, "status", void 0);
39
- exports.SubscriptionSetting = SubscriptionSetting = __decorate([
40
- (0, typegoose_1.modelOptions)({ schemaOptions: { collection: 'subscriptionSettings' } })
41
- ], SubscriptionSetting);
42
- //# sourceMappingURL=subscription-setting.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscription-setting.model.js","sourceRoot":"/","sources":["libraries/mongo/models/subscription-setting.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA0D;AAC1D,4EAAqE;AACrE,kDAAsE;AAG/D,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,2BAAU;IAO3C,OAAO,CAAuB;IAG9B,MAAM,CAAU;IAGhB,MAAM,CAAU;CACvB,CAAA;AAdY,kDAAmB;AAOxB;IANN,IAAA,gBAAI,EAAC;QACL,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,0BAAmB;KACzB,CAAC;;oDACmC;AAG9B;IADN,IAAA,gBAAI,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mDAChB;AAGhB;IADN,IAAA,gBAAI,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAM,EAAE,OAAO,EAAE,aAAM,CAAC,MAAM,EAAE,CAAC;;mDACtC;8BAbX,mBAAmB;IAD/B,IAAA,wBAAY,EAAC,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,sBAAsB,EAAE,EAAE,CAAC;GAC3D,mBAAmB,CAc/B","sourcesContent":["import { modelOptions, prop } from '@typegoose/typegoose';\nimport { TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';\nimport { Status, SubscriptionPackage } from '../../../utilities/enum';\n\n@modelOptions({ schemaOptions: { collection: 'subscriptionSettings' } })\nexport class SubscriptionSetting extends TimeStamps {\n\t@prop({\n\t\trequired: true,\n\t\tunique: true,\n\t\ttype: String,\n\t\tenum: SubscriptionPackage,\n\t})\n\tpublic package!: SubscriptionPackage;\n\n\t@prop({ required: true, type: Number })\n\tpublic amount!: number;\n\n\t@prop({ type: String, enum: Status, default: Status.ACTIVE })\n\tpublic status?: Status;\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare class Transaction {
2
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Transaction = void 0;
4
- class Transaction {
5
- }
6
- exports.Transaction = Transaction;
7
- //# sourceMappingURL=transaction.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.model.js","sourceRoot":"/","sources":["libraries/mongo/models/transaction.model.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;CAAG;AAA3B,kCAA2B","sourcesContent":["export class Transaction {}\n"]}