uaxi-shared-entities 1.0.0

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 (218) hide show
  1. package/README.md +136 -0
  2. package/dist/config/database.config.d.ts +3 -0
  3. package/dist/config/database.config.d.ts.map +1 -0
  4. package/dist/config/database.config.js +21 -0
  5. package/dist/config/database.config.js.map +1 -0
  6. package/dist/config/index.d.ts +2 -0
  7. package/dist/config/index.d.ts.map +1 -0
  8. package/dist/config/index.js +18 -0
  9. package/dist/config/index.js.map +1 -0
  10. package/dist/entities/address.entity.d.ts +64 -0
  11. package/dist/entities/address.entity.d.ts.map +1 -0
  12. package/dist/entities/address.entity.js +254 -0
  13. package/dist/entities/address.entity.js.map +1 -0
  14. package/dist/entities/brand.entity.d.ts +16 -0
  15. package/dist/entities/brand.entity.d.ts.map +1 -0
  16. package/dist/entities/brand.entity.js +95 -0
  17. package/dist/entities/brand.entity.js.map +1 -0
  18. package/dist/entities/camping_coupons.entity.d.ts +13 -0
  19. package/dist/entities/camping_coupons.entity.d.ts.map +1 -0
  20. package/dist/entities/camping_coupons.entity.js +74 -0
  21. package/dist/entities/camping_coupons.entity.js.map +1 -0
  22. package/dist/entities/coupon.entity.d.ts +50 -0
  23. package/dist/entities/coupon.entity.d.ts.map +1 -0
  24. package/dist/entities/coupon.entity.js +227 -0
  25. package/dist/entities/coupon.entity.js.map +1 -0
  26. package/dist/entities/coupon_usages.entity.d.ts +28 -0
  27. package/dist/entities/coupon_usages.entity.d.ts.map +1 -0
  28. package/dist/entities/coupon_usages.entity.js +136 -0
  29. package/dist/entities/coupon_usages.entity.js.map +1 -0
  30. package/dist/entities/coupon_user_mappings.entity.d.ts +18 -0
  31. package/dist/entities/coupon_user_mappings.entity.d.ts.map +1 -0
  32. package/dist/entities/coupon_user_mappings.entity.js +108 -0
  33. package/dist/entities/coupon_user_mappings.entity.js.map +1 -0
  34. package/dist/entities/driver.entity.d.ts +46 -0
  35. package/dist/entities/driver.entity.d.ts.map +1 -0
  36. package/dist/entities/driver.entity.js +157 -0
  37. package/dist/entities/driver.entity.js.map +1 -0
  38. package/dist/entities/farerates.entity.d.ts +14 -0
  39. package/dist/entities/farerates.entity.d.ts.map +1 -0
  40. package/dist/entities/farerates.entity.js +97 -0
  41. package/dist/entities/farerates.entity.js.map +1 -0
  42. package/dist/entities/geofence.entity.d.ts +23 -0
  43. package/dist/entities/geofence.entity.d.ts.map +1 -0
  44. package/dist/entities/geofence.entity.js +120 -0
  45. package/dist/entities/geofence.entity.js.map +1 -0
  46. package/dist/entities/index.d.ts +24 -0
  47. package/dist/entities/index.d.ts.map +1 -0
  48. package/dist/entities/index.js +40 -0
  49. package/dist/entities/index.js.map +1 -0
  50. package/dist/entities/notifications.entity.d.ts +25 -0
  51. package/dist/entities/notifications.entity.d.ts.map +1 -0
  52. package/dist/entities/notifications.entity.js +101 -0
  53. package/dist/entities/notifications.entity.js.map +1 -0
  54. package/dist/entities/payments.entity.d.ts +30 -0
  55. package/dist/entities/payments.entity.d.ts.map +1 -0
  56. package/dist/entities/payments.entity.js +123 -0
  57. package/dist/entities/payments.entity.js.map +1 -0
  58. package/dist/entities/promotion_camping.d.ts +26 -0
  59. package/dist/entities/promotion_camping.d.ts.map +1 -0
  60. package/dist/entities/promotion_camping.js +131 -0
  61. package/dist/entities/promotion_camping.js.map +1 -0
  62. package/dist/entities/raitings.entity.d.ts +15 -0
  63. package/dist/entities/raitings.entity.d.ts.map +1 -0
  64. package/dist/entities/raitings.entity.js +90 -0
  65. package/dist/entities/raitings.entity.js.map +1 -0
  66. package/dist/entities/recent_serch.entity.d.ts +16 -0
  67. package/dist/entities/recent_serch.entity.d.ts.map +1 -0
  68. package/dist/entities/recent_serch.entity.js +107 -0
  69. package/dist/entities/recent_serch.entity.js.map +1 -0
  70. package/dist/entities/roles.entity.d.ts +11 -0
  71. package/dist/entities/roles.entity.d.ts.map +1 -0
  72. package/dist/entities/roles.entity.js +66 -0
  73. package/dist/entities/roles.entity.js.map +1 -0
  74. package/dist/entities/supportticket.entity.d.ts +30 -0
  75. package/dist/entities/supportticket.entity.d.ts.map +1 -0
  76. package/dist/entities/supportticket.entity.js +123 -0
  77. package/dist/entities/supportticket.entity.js.map +1 -0
  78. package/dist/entities/trip-route-change.entity.d.ts +49 -0
  79. package/dist/entities/trip-route-change.entity.d.ts.map +1 -0
  80. package/dist/entities/trip-route-change.entity.js +228 -0
  81. package/dist/entities/trip-route-change.entity.js.map +1 -0
  82. package/dist/entities/trip-stop.entity.d.ts +44 -0
  83. package/dist/entities/trip-stop.entity.d.ts.map +1 -0
  84. package/dist/entities/trip-stop.entity.js +232 -0
  85. package/dist/entities/trip-stop.entity.js.map +1 -0
  86. package/dist/entities/triplocation.entity.d.ts +15 -0
  87. package/dist/entities/triplocation.entity.d.ts.map +1 -0
  88. package/dist/entities/triplocation.entity.js +110 -0
  89. package/dist/entities/triplocation.entity.js.map +1 -0
  90. package/dist/entities/trips.entity.d.ts +64 -0
  91. package/dist/entities/trips.entity.d.ts.map +1 -0
  92. package/dist/entities/trips.entity.js +331 -0
  93. package/dist/entities/trips.entity.js.map +1 -0
  94. package/dist/entities/user.entity.d.ts +54 -0
  95. package/dist/entities/user.entity.d.ts.map +1 -0
  96. package/dist/entities/user.entity.js +199 -0
  97. package/dist/entities/user.entity.js.map +1 -0
  98. package/dist/entities/userCard.entity.d.ts +45 -0
  99. package/dist/entities/userCard.entity.d.ts.map +1 -0
  100. package/dist/entities/userCard.entity.js +143 -0
  101. package/dist/entities/userCard.entity.js.map +1 -0
  102. package/dist/entities/vehicle-model.entity.d.ts +22 -0
  103. package/dist/entities/vehicle-model.entity.d.ts.map +1 -0
  104. package/dist/entities/vehicle-model.entity.js +128 -0
  105. package/dist/entities/vehicle-model.entity.js.map +1 -0
  106. package/dist/entities/vehicle.entity.d.ts +34 -0
  107. package/dist/entities/vehicle.entity.d.ts.map +1 -0
  108. package/dist/entities/vehicle.entity.js +168 -0
  109. package/dist/entities/vehicle.entity.js.map +1 -0
  110. package/dist/entities/wallet.entity.d.ts +23 -0
  111. package/dist/entities/wallet.entity.d.ts.map +1 -0
  112. package/dist/entities/wallet.entity.js +116 -0
  113. package/dist/entities/wallet.entity.js.map +1 -0
  114. package/dist/entities/walletTransaction.entity.d.ts +52 -0
  115. package/dist/entities/walletTransaction.entity.d.ts.map +1 -0
  116. package/dist/entities/walletTransaction.entity.js +183 -0
  117. package/dist/entities/walletTransaction.entity.js.map +1 -0
  118. package/dist/enums/address.enum.d.ts +7 -0
  119. package/dist/enums/address.enum.d.ts.map +1 -0
  120. package/dist/enums/address.enum.js +11 -0
  121. package/dist/enums/address.enum.js.map +1 -0
  122. package/dist/enums/coupon.enum.d.ts +32 -0
  123. package/dist/enums/coupon.enum.d.ts.map +1 -0
  124. package/dist/enums/coupon.enum.js +43 -0
  125. package/dist/enums/coupon.enum.js.map +1 -0
  126. package/dist/enums/driver.enum.d.ts +7 -0
  127. package/dist/enums/driver.enum.d.ts.map +1 -0
  128. package/dist/enums/driver.enum.js +14 -0
  129. package/dist/enums/driver.enum.js.map +1 -0
  130. package/dist/enums/geofence.enum.d.ts +9 -0
  131. package/dist/enums/geofence.enum.d.ts.map +1 -0
  132. package/dist/enums/geofence.enum.js +16 -0
  133. package/dist/enums/geofence.enum.js.map +1 -0
  134. package/dist/enums/index.d.ts +10 -0
  135. package/dist/enums/index.d.ts.map +1 -0
  136. package/dist/enums/index.js +29 -0
  137. package/dist/enums/index.js.map +1 -0
  138. package/dist/enums/notification.enum.d.ts +12 -0
  139. package/dist/enums/notification.enum.d.ts.map +1 -0
  140. package/dist/enums/notification.enum.js +19 -0
  141. package/dist/enums/notification.enum.js.map +1 -0
  142. package/dist/enums/payment.enum.d.ts +14 -0
  143. package/dist/enums/payment.enum.d.ts.map +1 -0
  144. package/dist/enums/payment.enum.js +22 -0
  145. package/dist/enums/payment.enum.js.map +1 -0
  146. package/dist/enums/trip.enum.d.ts +9 -0
  147. package/dist/enums/trip.enum.d.ts.map +1 -0
  148. package/dist/enums/trip.enum.js +16 -0
  149. package/dist/enums/trip.enum.js.map +1 -0
  150. package/dist/enums/user.enum.d.ts +7 -0
  151. package/dist/enums/user.enum.d.ts.map +1 -0
  152. package/dist/enums/user.enum.js +14 -0
  153. package/dist/enums/user.enum.js.map +1 -0
  154. package/dist/enums/vehicle.enum.d.ts +6 -0
  155. package/dist/enums/vehicle.enum.d.ts.map +1 -0
  156. package/dist/enums/vehicle.enum.js +13 -0
  157. package/dist/enums/vehicle.enum.js.map +1 -0
  158. package/dist/enums/wallet.enum.d.ts +33 -0
  159. package/dist/enums/wallet.enum.d.ts.map +1 -0
  160. package/dist/enums/wallet.enum.js +43 -0
  161. package/dist/enums/wallet.enum.js.map +1 -0
  162. package/dist/index.d.ts +5 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.js +28 -0
  165. package/dist/index.js.map +1 -0
  166. package/dist/types/common.types.d.ts +34 -0
  167. package/dist/types/common.types.d.ts.map +1 -0
  168. package/dist/types/common.types.js +6 -0
  169. package/dist/types/common.types.js.map +1 -0
  170. package/dist/types/index.d.ts +2 -0
  171. package/dist/types/index.d.ts.map +1 -0
  172. package/dist/types/index.js +21 -0
  173. package/dist/types/index.js.map +1 -0
  174. package/package.json +37 -0
  175. package/src/config/database.config.ts +39 -0
  176. package/src/config/index.ts +1 -0
  177. package/src/entities/address.entity.ts +239 -0
  178. package/src/entities/brand.entity.ts +87 -0
  179. package/src/entities/camping_coupons.entity.ts +60 -0
  180. package/src/entities/coupon.entity.ts +167 -0
  181. package/src/entities/coupon_usages.entity.ts +108 -0
  182. package/src/entities/coupon_user_mappings.entity.ts +89 -0
  183. package/src/entities/driver.entity.ts +151 -0
  184. package/src/entities/farerates.entity.ts +72 -0
  185. package/src/entities/geofence.entity.ts +88 -0
  186. package/src/entities/index.ts +27 -0
  187. package/src/entities/notifications.entity.ts +74 -0
  188. package/src/entities/payments.entity.ts +146 -0
  189. package/src/entities/promotion_camping.ts +96 -0
  190. package/src/entities/raitings.entity.ts +74 -0
  191. package/src/entities/recent_serch.entity.ts +86 -0
  192. package/src/entities/roles.entity.ts +44 -0
  193. package/src/entities/supportticket.entity.ts +104 -0
  194. package/src/entities/trip-route-change.entity.ts +196 -0
  195. package/src/entities/trip-stop.entity.ts +199 -0
  196. package/src/entities/triplocation.entity.ts +96 -0
  197. package/src/entities/trips.entity.ts +290 -0
  198. package/src/entities/user.entity.ts +170 -0
  199. package/src/entities/userCard.entity.ts +139 -0
  200. package/src/entities/vehicle-model.entity.ts +120 -0
  201. package/src/entities/vehicle.entity.ts +154 -0
  202. package/src/entities/wallet.entity.ts +104 -0
  203. package/src/entities/walletTransaction.entity.ts +103 -0
  204. package/src/enums/address.enum.ts +6 -0
  205. package/src/enums/coupon.enum.ts +39 -0
  206. package/src/enums/driver.enum.ts +10 -0
  207. package/src/enums/geofence.enum.ts +12 -0
  208. package/src/enums/index.ts +14 -0
  209. package/src/enums/notification.enum.ts +15 -0
  210. package/src/enums/payment.enum.ts +18 -0
  211. package/src/enums/trip.enum.ts +12 -0
  212. package/src/enums/user.enum.ts +10 -0
  213. package/src/enums/vehicle.enum.ts +9 -0
  214. package/src/enums/wallet.enum.ts +29 -0
  215. package/src/index.ts +15 -0
  216. package/src/types/common.types.ts +43 -0
  217. package/src/types/index.ts +5 -0
  218. package/tsconfig.json +24 -0
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ // =============================================
3
+ // CAMPAIGN COUPON MAPPING MODEL
4
+ // =============================================
5
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
+ 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;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __metadata = (this && this.__metadata) || function (k, v) {
12
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CampaignCoupon = void 0;
16
+ const sequelize_typescript_1 = require("sequelize-typescript");
17
+ const promotion_camping_1 = require("./promotion_camping");
18
+ const coupon_entity_1 = require("./coupon.entity");
19
+ let CampaignCoupon = class CampaignCoupon extends sequelize_typescript_1.Model {
20
+ };
21
+ exports.CampaignCoupon = CampaignCoupon;
22
+ __decorate([
23
+ (0, sequelize_typescript_1.Column)({
24
+ type: sequelize_typescript_1.DataType.UUID,
25
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
26
+ primaryKey: true,
27
+ }),
28
+ __metadata("design:type", String)
29
+ ], CampaignCoupon.prototype, "id", void 0);
30
+ __decorate([
31
+ (0, sequelize_typescript_1.ForeignKey)(() => promotion_camping_1.PromotionCampaign),
32
+ (0, sequelize_typescript_1.Column)({
33
+ type: sequelize_typescript_1.DataType.UUID,
34
+ allowNull: false,
35
+ }),
36
+ __metadata("design:type", String)
37
+ ], CampaignCoupon.prototype, "campaignId", void 0);
38
+ __decorate([
39
+ (0, sequelize_typescript_1.ForeignKey)(() => coupon_entity_1.Coupon),
40
+ (0, sequelize_typescript_1.Column)({
41
+ type: sequelize_typescript_1.DataType.UUID,
42
+ allowNull: false,
43
+ }),
44
+ __metadata("design:type", String)
45
+ ], CampaignCoupon.prototype, "couponId", void 0);
46
+ __decorate([
47
+ (0, sequelize_typescript_1.Column)({
48
+ type: sequelize_typescript_1.DataType.INTEGER,
49
+ defaultValue: 0,
50
+ }),
51
+ __metadata("design:type", Number)
52
+ ], CampaignCoupon.prototype, "distributedCount", void 0);
53
+ __decorate([
54
+ (0, sequelize_typescript_1.Column)({
55
+ type: sequelize_typescript_1.DataType.INTEGER,
56
+ defaultValue: 0,
57
+ }),
58
+ __metadata("design:type", Number)
59
+ ], CampaignCoupon.prototype, "redeemedCount", void 0);
60
+ __decorate([
61
+ (0, sequelize_typescript_1.BelongsTo)(() => promotion_camping_1.PromotionCampaign),
62
+ __metadata("design:type", promotion_camping_1.PromotionCampaign)
63
+ ], CampaignCoupon.prototype, "campaign", void 0);
64
+ __decorate([
65
+ (0, sequelize_typescript_1.BelongsTo)(() => coupon_entity_1.Coupon),
66
+ __metadata("design:type", coupon_entity_1.Coupon)
67
+ ], CampaignCoupon.prototype, "coupon", void 0);
68
+ exports.CampaignCoupon = CampaignCoupon = __decorate([
69
+ (0, sequelize_typescript_1.Table)({
70
+ tableName: 'campaign_coupons',
71
+ timestamps: true,
72
+ })
73
+ ], CampaignCoupon);
74
+ //# sourceMappingURL=camping_coupons.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camping_coupons.entity.js","sourceRoot":"","sources":["../../src/entities/camping_coupons.entity.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,gCAAgC;AAChC,gDAAgD;;;;;;;;;;;;AAEhD,+DAO8B;AAC9B,2DAAwD;AACxD,mDAAyC;AAMlC,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,4BAAqB;CAwCxD,CAAA;AAxCY,wCAAc;AAMjB;IALP,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,+BAAQ,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;;0CACiB;AAOnB;IALC,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,qCAAiB,CAAC;IACnC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;kDACiB;AAOnB;IALC,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,sBAAM,CAAC;IACxB,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;gDACe;AAMjB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,YAAY,EAAE,CAAC;KAChB,CAAC;;wDACuB;AAMzB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,YAAY,EAAE,CAAC;KAChB,CAAC;;qDACoB;AAItB;IADC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,qCAAiB,CAAC;8BACzB,qCAAiB;gDAAC;AAG5B;IADC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,sBAAM,CAAC;8BAChB,sBAAM;8CAAC;yBAvCJ,cAAc;IAJ1B,IAAA,4BAAK,EAAC;QACL,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,cAAc,CAwC1B"}
@@ -0,0 +1,50 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { CouponUsage } from './coupon_usages.entity';
3
+ import { CouponUserMapping } from './coupon_user_mappings.entity';
4
+ export declare enum CouponType {
5
+ PERCENTAGE = "percentage",// Descuento por porcentaje
6
+ FIXED_AMOUNT = "fixed_amount",// Descuento por cantidad fija
7
+ FREE_RIDE = "free_ride",// Viaje gratis
8
+ FIRST_RIDE = "first_ride"
9
+ }
10
+ export declare enum CouponStatus {
11
+ ACTIVE = "active",
12
+ INACTIVE = "inactive",
13
+ EXPIRED = "expired",
14
+ EXHAUSTED = "exhausted"
15
+ }
16
+ export declare enum CouponApplicability {
17
+ ALL_USERS = "all_users",
18
+ NEW_USERS = "new_users",
19
+ SPECIFIC_USERS = "specific_users",
20
+ USER_SEGMENT = "user_segment"
21
+ }
22
+ export declare class Coupon extends Model<Coupon> {
23
+ id: string;
24
+ code: string;
25
+ name: string;
26
+ description: string;
27
+ type: CouponType;
28
+ discountValue: number;
29
+ maxDiscountAmount: number;
30
+ minimumTripAmount: number;
31
+ maximumTripAmount: number;
32
+ applicability: CouponApplicability;
33
+ totalUsageLimit: number;
34
+ currentUsageCount: number;
35
+ usagePerUser: number;
36
+ validFrom: Date;
37
+ validUntil: Date;
38
+ status: CouponStatus;
39
+ vehicleTypes: string[];
40
+ geofenceData: any;
41
+ dayOfWeekRestrictions: number[];
42
+ validFromTime: string;
43
+ validUntilTime: string;
44
+ createdByAdminId: string;
45
+ isAutoApplicable: boolean;
46
+ metadata: any;
47
+ usages: CouponUsage[];
48
+ userMappings: CouponUserMapping[];
49
+ }
50
+ //# sourceMappingURL=coupon.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coupon.entity.d.ts","sourceRoot":"","sources":["../../src/entities/coupon.entity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoC,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,oBAAY,UAAU;IACpB,UAAU,eAAe,CAAE,2BAA2B;IACtD,YAAY,iBAAiB,CAAE,8BAA8B;IAC7D,SAAS,cAAc,CAAE,eAAe;IACxC,UAAU,eAAe;CAC1B;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,oBAAY,mBAAmB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;CAC9B;AAED,qBAIa,MAAO,SAAQ,KAAK,CAAC,MAAM,CAAC;IAM/B,EAAE,EAAE,MAAM,CAAC;IAOnB,IAAI,EAAE,MAAM,CAAC;IAMb,IAAI,EAAE,MAAM,CAAC;IAMb,WAAW,EAAE,MAAM,CAAC;IAMpB,IAAI,EAAE,UAAU,CAAC;IAMjB,aAAa,EAAE,MAAM,CAAC;IAMtB,iBAAiB,EAAE,MAAM,CAAC;IAM1B,iBAAiB,EAAE,MAAM,CAAC;IAM1B,iBAAiB,EAAE,MAAM,CAAC;IAM1B,aAAa,EAAE,mBAAmB,CAAC;IAMnC,eAAe,EAAE,MAAM,CAAC;IAMxB,iBAAiB,EAAE,MAAM,CAAC;IAM1B,YAAY,EAAE,MAAM,CAAC;IAMrB,SAAS,EAAE,IAAI,CAAC;IAMhB,UAAU,EAAE,IAAI,CAAC;IAMjB,MAAM,EAAE,YAAY,CAAC;IAMrB,YAAY,EAAE,MAAM,EAAE,CAAC;IAMvB,YAAY,EAAE,GAAG,CAAC;IAMlB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAMhC,aAAa,EAAE,MAAM,CAAC;IAMtB,cAAc,EAAE,MAAM,CAAC;IAMvB,gBAAgB,EAAE,MAAM,CAAC;IAMzB,gBAAgB,EAAE,OAAO,CAAC;IAM1B,QAAQ,EAAE,GAAG,CAAC;IAId,MAAM,EAAE,WAAW,EAAE,CAAC;IAGtB,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC"}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ // =============================================
3
+ // COUPON MODEL
4
+ // =============================================
5
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
+ 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;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __metadata = (this && this.__metadata) || function (k, v) {
12
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Coupon = exports.CouponApplicability = exports.CouponStatus = exports.CouponType = void 0;
16
+ const sequelize_typescript_1 = require("sequelize-typescript");
17
+ const coupon_usages_entity_1 = require("./coupon_usages.entity");
18
+ const coupon_user_mappings_entity_1 = require("./coupon_user_mappings.entity");
19
+ var CouponType;
20
+ (function (CouponType) {
21
+ CouponType["PERCENTAGE"] = "percentage";
22
+ CouponType["FIXED_AMOUNT"] = "fixed_amount";
23
+ CouponType["FREE_RIDE"] = "free_ride";
24
+ CouponType["FIRST_RIDE"] = "first_ride";
25
+ })(CouponType || (exports.CouponType = CouponType = {}));
26
+ var CouponStatus;
27
+ (function (CouponStatus) {
28
+ CouponStatus["ACTIVE"] = "active";
29
+ CouponStatus["INACTIVE"] = "inactive";
30
+ CouponStatus["EXPIRED"] = "expired";
31
+ CouponStatus["EXHAUSTED"] = "exhausted";
32
+ })(CouponStatus || (exports.CouponStatus = CouponStatus = {}));
33
+ var CouponApplicability;
34
+ (function (CouponApplicability) {
35
+ CouponApplicability["ALL_USERS"] = "all_users";
36
+ CouponApplicability["NEW_USERS"] = "new_users";
37
+ CouponApplicability["SPECIFIC_USERS"] = "specific_users";
38
+ CouponApplicability["USER_SEGMENT"] = "user_segment";
39
+ })(CouponApplicability || (exports.CouponApplicability = CouponApplicability = {}));
40
+ let Coupon = class Coupon extends sequelize_typescript_1.Model {
41
+ };
42
+ exports.Coupon = Coupon;
43
+ __decorate([
44
+ (0, sequelize_typescript_1.Column)({
45
+ type: sequelize_typescript_1.DataType.UUID,
46
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
47
+ primaryKey: true,
48
+ }),
49
+ __metadata("design:type", String)
50
+ ], Coupon.prototype, "id", void 0);
51
+ __decorate([
52
+ (0, sequelize_typescript_1.Column)({
53
+ type: sequelize_typescript_1.DataType.STRING,
54
+ allowNull: false,
55
+ unique: true,
56
+ }),
57
+ __metadata("design:type", String)
58
+ ], Coupon.prototype, "code", void 0);
59
+ __decorate([
60
+ (0, sequelize_typescript_1.Column)({
61
+ type: sequelize_typescript_1.DataType.STRING,
62
+ allowNull: false,
63
+ }),
64
+ __metadata("design:type", String)
65
+ ], Coupon.prototype, "name", void 0);
66
+ __decorate([
67
+ (0, sequelize_typescript_1.Column)({
68
+ type: sequelize_typescript_1.DataType.TEXT,
69
+ allowNull: true,
70
+ }),
71
+ __metadata("design:type", String)
72
+ ], Coupon.prototype, "description", void 0);
73
+ __decorate([
74
+ (0, sequelize_typescript_1.Column)({
75
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(CouponType)),
76
+ allowNull: false,
77
+ }),
78
+ __metadata("design:type", String)
79
+ ], Coupon.prototype, "type", void 0);
80
+ __decorate([
81
+ (0, sequelize_typescript_1.Column)({
82
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 2),
83
+ allowNull: true,
84
+ }),
85
+ __metadata("design:type", Number)
86
+ ], Coupon.prototype, "discountValue", void 0);
87
+ __decorate([
88
+ (0, sequelize_typescript_1.Column)({
89
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 2),
90
+ allowNull: true,
91
+ }),
92
+ __metadata("design:type", Number)
93
+ ], Coupon.prototype, "maxDiscountAmount", void 0);
94
+ __decorate([
95
+ (0, sequelize_typescript_1.Column)({
96
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 2),
97
+ allowNull: true,
98
+ }),
99
+ __metadata("design:type", Number)
100
+ ], Coupon.prototype, "minimumTripAmount", void 0);
101
+ __decorate([
102
+ (0, sequelize_typescript_1.Column)({
103
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 2),
104
+ allowNull: true,
105
+ }),
106
+ __metadata("design:type", Number)
107
+ ], Coupon.prototype, "maximumTripAmount", void 0);
108
+ __decorate([
109
+ (0, sequelize_typescript_1.Column)({
110
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(CouponApplicability)),
111
+ defaultValue: CouponApplicability.ALL_USERS,
112
+ }),
113
+ __metadata("design:type", String)
114
+ ], Coupon.prototype, "applicability", void 0);
115
+ __decorate([
116
+ (0, sequelize_typescript_1.Column)({
117
+ type: sequelize_typescript_1.DataType.INTEGER,
118
+ allowNull: true,
119
+ }),
120
+ __metadata("design:type", Number)
121
+ ], Coupon.prototype, "totalUsageLimit", void 0);
122
+ __decorate([
123
+ (0, sequelize_typescript_1.Column)({
124
+ type: sequelize_typescript_1.DataType.INTEGER,
125
+ defaultValue: 0,
126
+ }),
127
+ __metadata("design:type", Number)
128
+ ], Coupon.prototype, "currentUsageCount", void 0);
129
+ __decorate([
130
+ (0, sequelize_typescript_1.Column)({
131
+ type: sequelize_typescript_1.DataType.INTEGER,
132
+ defaultValue: 1,
133
+ }),
134
+ __metadata("design:type", Number)
135
+ ], Coupon.prototype, "usagePerUser", void 0);
136
+ __decorate([
137
+ (0, sequelize_typescript_1.Column)({
138
+ type: sequelize_typescript_1.DataType.DATE,
139
+ allowNull: false,
140
+ }),
141
+ __metadata("design:type", Date)
142
+ ], Coupon.prototype, "validFrom", void 0);
143
+ __decorate([
144
+ (0, sequelize_typescript_1.Column)({
145
+ type: sequelize_typescript_1.DataType.DATE,
146
+ allowNull: false,
147
+ }),
148
+ __metadata("design:type", Date)
149
+ ], Coupon.prototype, "validUntil", void 0);
150
+ __decorate([
151
+ (0, sequelize_typescript_1.Column)({
152
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(CouponStatus)),
153
+ defaultValue: CouponStatus.ACTIVE,
154
+ }),
155
+ __metadata("design:type", String)
156
+ ], Coupon.prototype, "status", void 0);
157
+ __decorate([
158
+ (0, sequelize_typescript_1.Column)({
159
+ type: sequelize_typescript_1.DataType.JSON,
160
+ allowNull: true,
161
+ }),
162
+ __metadata("design:type", Array)
163
+ ], Coupon.prototype, "vehicleTypes", void 0);
164
+ __decorate([
165
+ (0, sequelize_typescript_1.Column)({
166
+ type: sequelize_typescript_1.DataType.JSON,
167
+ allowNull: true,
168
+ }),
169
+ __metadata("design:type", Object)
170
+ ], Coupon.prototype, "geofenceData", void 0);
171
+ __decorate([
172
+ (0, sequelize_typescript_1.Column)({
173
+ type: sequelize_typescript_1.DataType.JSON,
174
+ allowNull: true,
175
+ }),
176
+ __metadata("design:type", Array)
177
+ ], Coupon.prototype, "dayOfWeekRestrictions", void 0);
178
+ __decorate([
179
+ (0, sequelize_typescript_1.Column)({
180
+ type: sequelize_typescript_1.DataType.TIME,
181
+ allowNull: true,
182
+ }),
183
+ __metadata("design:type", String)
184
+ ], Coupon.prototype, "validFromTime", void 0);
185
+ __decorate([
186
+ (0, sequelize_typescript_1.Column)({
187
+ type: sequelize_typescript_1.DataType.TIME,
188
+ allowNull: true,
189
+ }),
190
+ __metadata("design:type", String)
191
+ ], Coupon.prototype, "validUntilTime", void 0);
192
+ __decorate([
193
+ (0, sequelize_typescript_1.Column)({
194
+ type: sequelize_typescript_1.DataType.UUID,
195
+ allowNull: true,
196
+ }),
197
+ __metadata("design:type", String)
198
+ ], Coupon.prototype, "createdByAdminId", void 0);
199
+ __decorate([
200
+ (0, sequelize_typescript_1.Column)({
201
+ type: sequelize_typescript_1.DataType.BOOLEAN,
202
+ defaultValue: false,
203
+ }),
204
+ __metadata("design:type", Boolean)
205
+ ], Coupon.prototype, "isAutoApplicable", void 0);
206
+ __decorate([
207
+ (0, sequelize_typescript_1.Column)({
208
+ type: sequelize_typescript_1.DataType.JSON,
209
+ allowNull: true,
210
+ }),
211
+ __metadata("design:type", Object)
212
+ ], Coupon.prototype, "metadata", void 0);
213
+ __decorate([
214
+ (0, sequelize_typescript_1.HasMany)(() => coupon_usages_entity_1.CouponUsage, 'couponId'),
215
+ __metadata("design:type", Array)
216
+ ], Coupon.prototype, "usages", void 0);
217
+ __decorate([
218
+ (0, sequelize_typescript_1.HasMany)(() => coupon_user_mappings_entity_1.CouponUserMapping, 'couponId'),
219
+ __metadata("design:type", Array)
220
+ ], Coupon.prototype, "userMappings", void 0);
221
+ exports.Coupon = Coupon = __decorate([
222
+ (0, sequelize_typescript_1.Table)({
223
+ tableName: 'coupons',
224
+ timestamps: true,
225
+ })
226
+ ], Coupon);
227
+ //# sourceMappingURL=coupon.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coupon.entity.js","sourceRoot":"","sources":["../../src/entities/coupon.entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { Coupon } from './coupon.entity';
3
+ import { User } from './user.entity';
4
+ import { Trip } from './trips.entity';
5
+ export declare enum UsageStatus {
6
+ APPLIED = "applied",// Cupón aplicado al viaje
7
+ REDEEMED = "redeemed",// Cupón canjeado exitosamente
8
+ REVERSED = "reversed",// Cupón revertido (ej: viaje cancelado)
9
+ EXPIRED_UNUSED = "expired_unused"
10
+ }
11
+ export declare class CouponUsage extends Model<CouponUsage> {
12
+ id: string;
13
+ couponId: string;
14
+ userId: string;
15
+ tripId: string;
16
+ originalAmount: number;
17
+ discountAmount: number;
18
+ finalAmount: number;
19
+ status: UsageStatus;
20
+ redeemedAt: Date;
21
+ reversedAt: Date;
22
+ reversalReason: string;
23
+ metadata: any;
24
+ coupon: Coupon;
25
+ user: User;
26
+ trip: Trip;
27
+ }
28
+ //# sourceMappingURL=coupon_usages.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coupon_usages.entity.d.ts","sourceRoot":"","sources":["../../src/entities/coupon_usages.entity.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,oBAAY,WAAW;IACrB,OAAO,YAAY,CAAE,0BAA0B;IAC/C,QAAQ,aAAa,CAAE,8BAA8B;IACrD,QAAQ,aAAa,CAAE,wCAAwC;IAC/D,cAAc,mBAAmB;CAClC;AAED,qBAIa,WAAY,SAAQ,KAAK,CAAC,WAAW,CAAC;IAMzC,EAAE,EAAE,MAAM,CAAC;IAOnB,QAAQ,EAAE,MAAM,CAAC;IAOjB,MAAM,EAAE,MAAM,CAAC;IAOf,MAAM,EAAE,MAAM,CAAC;IAMf,cAAc,EAAE,MAAM,CAAC;IAMvB,cAAc,EAAE,MAAM,CAAC;IAMvB,WAAW,EAAE,MAAM,CAAC;IAMpB,MAAM,EAAE,WAAW,CAAC;IAMpB,UAAU,EAAE,IAAI,CAAC;IAMjB,UAAU,EAAE,IAAI,CAAC;IAMjB,cAAc,EAAE,MAAM,CAAC;IAMvB,QAAQ,EAAE,GAAG,CAAC;IAId,MAAM,EAAE,MAAM,CAAC;IAGf,IAAI,EAAE,IAAI,CAAC;IAGX,IAAI,EAAE,IAAI,CAAC;CACZ"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ // =============================================
3
+ // COUPON USAGE MODEL
4
+ // =============================================
5
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8
+ 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;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ var __metadata = (this && this.__metadata) || function (k, v) {
12
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CouponUsage = exports.UsageStatus = void 0;
16
+ const sequelize_typescript_1 = require("sequelize-typescript");
17
+ const coupon_entity_1 = require("./coupon.entity");
18
+ const user_entity_1 = require("./user.entity");
19
+ const trips_entity_1 = require("./trips.entity");
20
+ var UsageStatus;
21
+ (function (UsageStatus) {
22
+ UsageStatus["APPLIED"] = "applied";
23
+ UsageStatus["REDEEMED"] = "redeemed";
24
+ UsageStatus["REVERSED"] = "reversed";
25
+ UsageStatus["EXPIRED_UNUSED"] = "expired_unused";
26
+ })(UsageStatus || (exports.UsageStatus = UsageStatus = {}));
27
+ let CouponUsage = class CouponUsage extends sequelize_typescript_1.Model {
28
+ };
29
+ exports.CouponUsage = CouponUsage;
30
+ __decorate([
31
+ (0, sequelize_typescript_1.Column)({
32
+ type: sequelize_typescript_1.DataType.UUID,
33
+ defaultValue: sequelize_typescript_1.DataType.UUIDV4,
34
+ primaryKey: true,
35
+ }),
36
+ __metadata("design:type", String)
37
+ ], CouponUsage.prototype, "id", void 0);
38
+ __decorate([
39
+ (0, sequelize_typescript_1.ForeignKey)(() => coupon_entity_1.Coupon),
40
+ (0, sequelize_typescript_1.Column)({
41
+ type: sequelize_typescript_1.DataType.UUID,
42
+ allowNull: false,
43
+ }),
44
+ __metadata("design:type", String)
45
+ ], CouponUsage.prototype, "couponId", void 0);
46
+ __decorate([
47
+ (0, sequelize_typescript_1.ForeignKey)(() => user_entity_1.User),
48
+ (0, sequelize_typescript_1.Column)({
49
+ type: sequelize_typescript_1.DataType.UUID,
50
+ allowNull: false,
51
+ }),
52
+ __metadata("design:type", String)
53
+ ], CouponUsage.prototype, "userId", void 0);
54
+ __decorate([
55
+ (0, sequelize_typescript_1.ForeignKey)(() => trips_entity_1.Trip),
56
+ (0, sequelize_typescript_1.Column)({
57
+ type: sequelize_typescript_1.DataType.UUID,
58
+ allowNull: false,
59
+ }),
60
+ __metadata("design:type", String)
61
+ ], CouponUsage.prototype, "tripId", void 0);
62
+ __decorate([
63
+ (0, sequelize_typescript_1.Column)({
64
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 2),
65
+ allowNull: false,
66
+ }),
67
+ __metadata("design:type", Number)
68
+ ], CouponUsage.prototype, "originalAmount", void 0);
69
+ __decorate([
70
+ (0, sequelize_typescript_1.Column)({
71
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 2),
72
+ allowNull: false,
73
+ }),
74
+ __metadata("design:type", Number)
75
+ ], CouponUsage.prototype, "discountAmount", void 0);
76
+ __decorate([
77
+ (0, sequelize_typescript_1.Column)({
78
+ type: sequelize_typescript_1.DataType.DECIMAL(10, 2),
79
+ allowNull: false,
80
+ }),
81
+ __metadata("design:type", Number)
82
+ ], CouponUsage.prototype, "finalAmount", void 0);
83
+ __decorate([
84
+ (0, sequelize_typescript_1.Column)({
85
+ type: sequelize_typescript_1.DataType.ENUM(...Object.values(UsageStatus)),
86
+ defaultValue: UsageStatus.APPLIED,
87
+ }),
88
+ __metadata("design:type", String)
89
+ ], CouponUsage.prototype, "status", void 0);
90
+ __decorate([
91
+ (0, sequelize_typescript_1.Column)({
92
+ type: sequelize_typescript_1.DataType.DATE,
93
+ allowNull: true,
94
+ }),
95
+ __metadata("design:type", Date)
96
+ ], CouponUsage.prototype, "redeemedAt", void 0);
97
+ __decorate([
98
+ (0, sequelize_typescript_1.Column)({
99
+ type: sequelize_typescript_1.DataType.DATE,
100
+ allowNull: true,
101
+ }),
102
+ __metadata("design:type", Date)
103
+ ], CouponUsage.prototype, "reversedAt", void 0);
104
+ __decorate([
105
+ (0, sequelize_typescript_1.Column)({
106
+ type: sequelize_typescript_1.DataType.STRING,
107
+ allowNull: true,
108
+ }),
109
+ __metadata("design:type", String)
110
+ ], CouponUsage.prototype, "reversalReason", void 0);
111
+ __decorate([
112
+ (0, sequelize_typescript_1.Column)({
113
+ type: sequelize_typescript_1.DataType.JSON,
114
+ allowNull: true,
115
+ }),
116
+ __metadata("design:type", Object)
117
+ ], CouponUsage.prototype, "metadata", void 0);
118
+ __decorate([
119
+ (0, sequelize_typescript_1.BelongsTo)(() => coupon_entity_1.Coupon),
120
+ __metadata("design:type", coupon_entity_1.Coupon)
121
+ ], CouponUsage.prototype, "coupon", void 0);
122
+ __decorate([
123
+ (0, sequelize_typescript_1.BelongsTo)(() => user_entity_1.User),
124
+ __metadata("design:type", user_entity_1.User)
125
+ ], CouponUsage.prototype, "user", void 0);
126
+ __decorate([
127
+ (0, sequelize_typescript_1.BelongsTo)(() => trips_entity_1.Trip),
128
+ __metadata("design:type", trips_entity_1.Trip)
129
+ ], CouponUsage.prototype, "trip", void 0);
130
+ exports.CouponUsage = CouponUsage = __decorate([
131
+ (0, sequelize_typescript_1.Table)({
132
+ tableName: 'coupon_usages',
133
+ timestamps: true,
134
+ })
135
+ ], CouponUsage);
136
+ //# sourceMappingURL=coupon_usages.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coupon_usages.entity.js","sourceRoot":"","sources":["../../src/entities/coupon_usages.entity.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,qBAAqB;AACrB,gDAAgD;;;;;;;;;;;;AAEhD,+DAO8B;AAC9B,mDAAyC;AACzC,+CAAqC;AACrC,iDAAsC;AAEtC,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;IACrB,gDAAiC,CAAA;AACnC,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAMM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,4BAAkB;CAsFlD,CAAA;AAtFY,kCAAW;AAMd;IALP,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,YAAY,EAAE,+BAAQ,CAAC,MAAM;QAC7B,UAAU,EAAE,IAAI;KACjB,CAAC;;uCACiB;AAOnB;IALC,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,sBAAM,CAAC;IACxB,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;6CACe;AAOjB;IALC,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,kBAAI,CAAC;IACtB,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;2CACa;AAOf;IALC,IAAA,iCAAU,EAAC,GAAG,EAAE,CAAC,mBAAI,CAAC;IACtB,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;2CACa;AAMf;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;KACjB,CAAC;;mDACqB;AAMvB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;KACjB,CAAC;;mDACqB;AAMvB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,SAAS,EAAE,KAAK;KACjB,CAAC;;gDACkB;AAMpB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,YAAY,EAAE,WAAW,CAAC,OAAO;KAClC,CAAC;;2CACkB;AAMpB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC;8BACU,IAAI;+CAAC;AAMjB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC;8BACU,IAAI;+CAAC;AAMjB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,SAAS,EAAE,IAAI;KAChB,CAAC;;mDACqB;AAMvB;IAJC,IAAA,6BAAM,EAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC;;6CACY;AAId;IADC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,sBAAM,CAAC;8BAChB,sBAAM;2CAAC;AAGf;IADC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,CAAC;8BAChB,kBAAI;yCAAC;AAGX;IADC,IAAA,gCAAS,EAAC,GAAG,EAAE,CAAC,mBAAI,CAAC;8BAChB,mBAAI;yCAAC;sBArFA,WAAW;IAJvB,IAAA,4BAAK,EAAC;QACL,SAAS,EAAE,eAAe;QAC1B,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,WAAW,CAsFvB"}
@@ -0,0 +1,18 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { Coupon } from './coupon.entity';
3
+ import { User } from './user.entity';
4
+ export declare class CouponUserMapping extends Model {
5
+ id: string;
6
+ couponId: string;
7
+ userId: string;
8
+ usageCount: number;
9
+ firstUsedAt: Date;
10
+ lastUsedAt: Date;
11
+ isEligible: boolean;
12
+ assignedAt: Date;
13
+ assignedByAdminId: string;
14
+ coupon: Coupon;
15
+ user: User;
16
+ static couponUserIndex: string[];
17
+ }
18
+ //# sourceMappingURL=coupon_user_mappings.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coupon_user_mappings.entity.d.ts","sourceRoot":"","sources":["../../src/entities/coupon_user_mappings.entity.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,qBAIa,iBAAkB,SAAQ,KAAK;IAMlC,EAAE,EAAE,MAAM,CAAC;IAOnB,QAAQ,EAAE,MAAM,CAAC;IAOjB,MAAM,EAAE,MAAM,CAAC;IAMf,UAAU,EAAE,MAAM,CAAC;IAMnB,WAAW,EAAE,IAAI,CAAC;IAMlB,UAAU,EAAE,IAAI,CAAC;IAMjB,UAAU,EAAE,OAAO,CAAC;IAMpB,UAAU,EAAE,IAAI,CAAC;IAMjB,iBAAiB,EAAE,MAAM,CAAC;IAI1B,MAAM,EAAE,MAAM,CAAC;IAGf,IAAI,EAAE,IAAI,CAAC;IAIX,MAAM,CAAC,eAAe,WAA0B;CACjD"}