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,154 @@
1
+ // =============================================
2
+ // VEHICLE MODEL
3
+ // =============================================
4
+
5
+ import {
6
+ BelongsTo,
7
+ Column,
8
+ CreatedAt,
9
+ DataType,
10
+ DeletedAt,
11
+ ForeignKey,
12
+ HasMany,
13
+ Model,
14
+ Table,
15
+ UpdatedAt,
16
+ } from 'sequelize-typescript';
17
+ import { DriverProfile } from './driver.entity';
18
+ import { Trip } from './trips.entity';
19
+ import { Brand } from './brand.entity';
20
+ import { VehicleModel } from './vehicle-model.entity';
21
+ import { VehicleStatus } from '../enums';
22
+ export interface ICreateVehicleDto {
23
+ driverId: string;
24
+ brandId: string;
25
+ modelId: string;
26
+ year: number;
27
+ licensePlate: string;
28
+ color: string;
29
+ vehicleType: string;
30
+ seatingCapacity: number;
31
+ status?: VehicleStatus;
32
+ registrationDocument?: string;
33
+ insuranceDocument?: string;
34
+ insuranceExpiryDate?: Date;
35
+ isDocumentVerified?: boolean;
36
+ }
37
+ @Table({
38
+ tableName: 'vehicles',
39
+ timestamps: true,
40
+ paranoid: true, // Soft deletes
41
+ })
42
+ export class Vehicle extends Model<Vehicle, ICreateVehicleDto> {
43
+ @Column({
44
+ type: DataType.UUID,
45
+ defaultValue: DataType.UUIDV4,
46
+ primaryKey: true,
47
+ })
48
+ declare id: string;
49
+
50
+ @ForeignKey(() => DriverProfile)
51
+ @Column({
52
+ type: DataType.UUID,
53
+ allowNull: false,
54
+ })
55
+ driverId: string;
56
+
57
+ // NUEVO: Referencias a Brand y Model
58
+ @ForeignKey(() => Brand)
59
+ @Column({
60
+ type: DataType.UUID,
61
+ allowNull: false,
62
+ })
63
+ brandId: string;
64
+
65
+ @ForeignKey(() => VehicleModel)
66
+ @Column({
67
+ type: DataType.UUID,
68
+ allowNull: false,
69
+ })
70
+ modelId: string;
71
+
72
+ @Column({
73
+ type: DataType.INTEGER,
74
+ allowNull: false,
75
+ })
76
+ year: number;
77
+
78
+ @Column({
79
+ type: DataType.STRING,
80
+ allowNull: false,
81
+ unique: true,
82
+ })
83
+ licensePlate: string;
84
+
85
+ @Column({
86
+ type: DataType.STRING,
87
+ allowNull: false,
88
+ })
89
+ color: string;
90
+
91
+ @Column({
92
+ type: DataType.STRING,
93
+ allowNull: false,
94
+ })
95
+ vehicleType: string; // sedan, suv, compact, etc.
96
+
97
+ @Column({
98
+ type: DataType.INTEGER,
99
+ allowNull: false,
100
+ })
101
+ seatingCapacity: number;
102
+
103
+ @Column({
104
+ type: DataType.ENUM(...Object.values(VehicleStatus)),
105
+ defaultValue: VehicleStatus.ACTIVE,
106
+ })
107
+ status: VehicleStatus;
108
+
109
+ @Column({
110
+ type: DataType.STRING,
111
+ allowNull: true,
112
+ })
113
+ registrationDocument: string;
114
+
115
+ @Column({
116
+ type: DataType.STRING,
117
+ allowNull: true,
118
+ })
119
+ insuranceDocument: string;
120
+
121
+ @Column({
122
+ type: DataType.DATE,
123
+ allowNull: true,
124
+ })
125
+ insuranceExpiryDate: Date;
126
+
127
+ @Column({
128
+ type: DataType.BOOLEAN,
129
+ defaultValue: false,
130
+ })
131
+ isDocumentVerified: boolean;
132
+
133
+ @CreatedAt
134
+ declare createdAt: Date;
135
+
136
+ @UpdatedAt
137
+ declare updatedAt: Date;
138
+
139
+ @DeletedAt
140
+ declare deletedAt: Date;
141
+
142
+ // Associations
143
+ @BelongsTo(() => DriverProfile)
144
+ driver: DriverProfile;
145
+
146
+ @BelongsTo(() => Brand)
147
+ brand: Brand;
148
+
149
+ @BelongsTo(() => VehicleModel)
150
+ model: VehicleModel;
151
+
152
+ @HasMany(() => Trip, 'vehicleId')
153
+ trips: Trip[];
154
+ }
@@ -0,0 +1,104 @@
1
+ import {
2
+ BelongsTo,
3
+ Column,
4
+ DataType,
5
+ ForeignKey,
6
+ HasMany,
7
+ Model,
8
+ Table,
9
+ } from 'sequelize-typescript';
10
+ import { User } from './user.entity';
11
+ import { WalletTransaction } from './walletTransaction.entity';
12
+ import { WalletStatus } from '../enums';
13
+
14
+ export interface CreateWalletData {
15
+ userId: string;
16
+ balance?: number;
17
+ frozenBalance?: number;
18
+ walletNumber?: string;
19
+ status?: WalletStatus;
20
+ currency?: string;
21
+ dailyLimit?: number;
22
+ dailySpent?: number;
23
+ lastTransactionAt?: Date;
24
+ }
25
+
26
+ @Table({
27
+ tableName: 'wallets',
28
+ timestamps: true,
29
+ })
30
+ export class Wallet extends Model<Wallet, CreateWalletData> {
31
+ @Column({
32
+ type: DataType.UUID,
33
+ defaultValue: DataType.UUIDV4,
34
+ primaryKey: true,
35
+ })
36
+ declare id: string;
37
+
38
+ @ForeignKey(() => User)
39
+ @Column({
40
+ type: DataType.UUID,
41
+ allowNull: false,
42
+ unique: true,
43
+ })
44
+ userId: string;
45
+
46
+ @Column({
47
+ type: DataType.DECIMAL(12, 2),
48
+ defaultValue: 0.0,
49
+ allowNull: false,
50
+ })
51
+ balance: number;
52
+
53
+ @Column({
54
+ type: DataType.DECIMAL(12, 2),
55
+ defaultValue: 0.0,
56
+ allowNull: false,
57
+ })
58
+ frozenBalance: number; // Balance congelado por transacciones pendientes
59
+
60
+ @Column({
61
+ type: DataType.STRING,
62
+ allowNull: false,
63
+ unique: true,
64
+ })
65
+ walletNumber: string; // Número único de wallet para identificación
66
+
67
+ @Column({
68
+ type: DataType.ENUM(...Object.values(WalletStatus)),
69
+ defaultValue: WalletStatus.ACTIVE,
70
+ })
71
+ status: WalletStatus;
72
+
73
+ @Column({
74
+ type: DataType.STRING,
75
+ allowNull: false,
76
+ defaultValue: 'MXN', // Moneda por defecto
77
+ })
78
+ currency: string;
79
+
80
+ @Column({
81
+ type: DataType.DECIMAL(10, 2),
82
+ defaultValue: 0.0,
83
+ })
84
+ dailyLimit: number;
85
+
86
+ @Column({
87
+ type: DataType.DECIMAL(10, 2),
88
+ defaultValue: 0.0,
89
+ })
90
+ dailySpent: number;
91
+
92
+ @Column({
93
+ type: DataType.DATE,
94
+ allowNull: true,
95
+ })
96
+ lastTransactionAt: Date;
97
+
98
+ // Associations
99
+ @BelongsTo(() => User)
100
+ user: User;
101
+
102
+ @HasMany(() => WalletTransaction, 'walletId')
103
+ transactions: WalletTransaction[];
104
+ }
@@ -0,0 +1,103 @@
1
+ // =============================================
2
+ // WALLET TRANSACTION MODEL - Solo movimientos internos de wallet
3
+ // =============================================
4
+
5
+ import {
6
+ BelongsTo,
7
+ Column,
8
+ DataType,
9
+ ForeignKey,
10
+ Model,
11
+ Table,
12
+ } from 'sequelize-typescript';
13
+ import { Wallet } from './wallet.entity';
14
+ import { Trip } from './trips.entity';
15
+ import {
16
+ TransactionCategory,
17
+ TransactionStatus,
18
+ TransactionType,
19
+ } from '../enums';
20
+
21
+ export interface CreateWalletTransactionData {
22
+ walletId: string;
23
+ tripId?: string;
24
+ type: TransactionType;
25
+ category: TransactionCategory;
26
+ amount: number;
27
+ description: string;
28
+ referenceId?: string; // Solo para recargas externas
29
+ metadata?: any;
30
+ }
31
+
32
+ @Table({
33
+ tableName: 'wallet_transactions',
34
+ timestamps: true,
35
+ })
36
+ export class WalletTransaction extends Model<
37
+ WalletTransaction,
38
+ CreateWalletTransactionData
39
+ > {
40
+ @Column({
41
+ type: DataType.UUID,
42
+ defaultValue: DataType.UUIDV4,
43
+ primaryKey: true,
44
+ })
45
+ declare id: string;
46
+
47
+ @ForeignKey(() => Wallet)
48
+ @Column({
49
+ type: DataType.UUID,
50
+ allowNull: false,
51
+ })
52
+ walletId: string;
53
+
54
+ @ForeignKey(() => Trip)
55
+ @Column({
56
+ type: DataType.UUID,
57
+ allowNull: true,
58
+ })
59
+ tripId: string; // Solo para pagos de viajes
60
+
61
+ @Column({
62
+ type: DataType.ENUM(...Object.values(TransactionType)),
63
+ allowNull: false,
64
+ })
65
+ type: TransactionType; // DEBIT, CREDIT
66
+
67
+ @Column({
68
+ type: DataType.ENUM(...Object.values(TransactionCategory)),
69
+ allowNull: false,
70
+ })
71
+ category: TransactionCategory; // TRIP_PAYMENT, REFUND, TOP_UP
72
+
73
+ @Column({
74
+ type: DataType.DECIMAL(12, 2),
75
+ allowNull: false,
76
+ })
77
+ amount: number;
78
+
79
+ @Column({
80
+ type: DataType.STRING,
81
+ allowNull: false,
82
+ })
83
+ description: string;
84
+
85
+ @Column({
86
+ type: DataType.STRING,
87
+ allowNull: true,
88
+ })
89
+ referenceId: string; // Solo para recargas externas (PayPal, Stripe, etc.)
90
+
91
+ @Column({
92
+ type: DataType.JSON,
93
+ allowNull: true,
94
+ })
95
+ metadata: any;
96
+
97
+ // Associations
98
+ @BelongsTo(() => Wallet)
99
+ wallet: Wallet;
100
+
101
+ @BelongsTo(() => Trip)
102
+ trip: Trip;
103
+ }
@@ -0,0 +1,6 @@
1
+ export enum AddressType {
2
+ HOME = "home",
3
+ WORK = "work",
4
+ FAVORITE = "favorite",
5
+ OTHER = "other",
6
+ }
@@ -0,0 +1,39 @@
1
+ // =============================================
2
+ // COUPON ENUMS
3
+ // =============================================
4
+
5
+ export enum CouponType {
6
+ PERCENTAGE = "percentage",
7
+ FIXED_AMOUNT = "fixed_amount",
8
+ FREE_RIDE = "free_ride",
9
+ FIRST_RIDE = "first_ride",
10
+ }
11
+
12
+ export enum CouponStatus {
13
+ ACTIVE = "active",
14
+ INACTIVE = "inactive",
15
+ EXPIRED = "expired",
16
+ EXHAUSTED = "exhausted",
17
+ }
18
+
19
+ export enum CouponApplicability {
20
+ ALL_USERS = "all_users",
21
+ NEW_USERS = "new_users",
22
+ SPECIFIC_USERS = "specific_users",
23
+ USER_SEGMENT = "user_segment",
24
+ }
25
+
26
+ export enum UsageStatus {
27
+ APPLIED = "applied",
28
+ REDEEMED = "redeemed",
29
+ REVERSED = "reversed",
30
+ EXPIRED_UNUSED = "expired_unused",
31
+ }
32
+
33
+ export enum CampaignStatus {
34
+ DRAFT = "draft",
35
+ ACTIVE = "active",
36
+ PAUSED = "paused",
37
+ COMPLETED = "completed",
38
+ CANCELLED = "cancelled",
39
+ }
@@ -0,0 +1,10 @@
1
+ // =============================================
2
+ // DRIVER ENUMS
3
+ // =============================================
4
+
5
+ export enum DriverStatus {
6
+ OFFLINE = "offline",
7
+ ONLINE = "online",
8
+ BUSY = "busy",
9
+ BREAK = "break",
10
+ }
@@ -0,0 +1,12 @@
1
+ // =============================================
2
+ // GEOFENCE ENUMS
3
+ // =============================================
4
+
5
+ export enum GeofenceType {
6
+ CITY = "city",
7
+ NEIGHBORHOOD = "neighborhood",
8
+ AIRPORT = "airport",
9
+ COMMERCIAL_ZONE = "commercial_zone",
10
+ RESTRICTED_AREA = "restricted_area",
11
+ SURGE_ZONE = "surge_zone",
12
+ }
@@ -0,0 +1,14 @@
1
+ // =============================================
2
+ // EXPORTACIONES DE ENUMS
3
+ // =============================================
4
+
5
+ export * from "./user.enum";
6
+ export * from "./driver.enum";
7
+ export * from "./vehicle.enum";
8
+ export * from "./trip.enum";
9
+ export * from "./payment.enum";
10
+ export * from "./wallet.enum";
11
+ export * from "./notification.enum";
12
+ export * from "./coupon.enum";
13
+ export * from "./geofence.enum";
14
+ export * from "./address.enum";
@@ -0,0 +1,15 @@
1
+ // =============================================
2
+ // NOTIFICATION ENUMS
3
+ // =============================================
4
+
5
+ export enum NotificationType {
6
+ TRIP_REQUEST = "trip_request",
7
+ TRIP_ACCEPTED = "trip_accepted",
8
+ DRIVER_ARRIVED = "driver_arrived",
9
+ TRIP_STARTED = "trip_started",
10
+ TRIP_COMPLETED = "trip_completed",
11
+ TRIP_CANCELLED = "trip_cancelled",
12
+ PAYMENT_SUCCESSFUL = "payment_successful",
13
+ PAYMENT_FAILED = "payment_failed",
14
+ GENERAL = "general",
15
+ }
@@ -0,0 +1,18 @@
1
+ // =============================================
2
+ // PAYMENT ENUMS
3
+ // =============================================
4
+
5
+ export enum PaymentStatus {
6
+ PENDING = "pending",
7
+ COMPLETED = "completed",
8
+ FAILED = "failed",
9
+ REFUNDED = "refunded",
10
+ }
11
+
12
+ export enum PaymentMethod {
13
+ CREDIT_CARD = "credit_card",
14
+ DEBIT_CARD = "debit_card",
15
+ CASH = "cash",
16
+ WALLET = "wallet",
17
+ BANK_TRANSFER = "bank_transfer",
18
+ }
@@ -0,0 +1,12 @@
1
+ // =============================================
2
+ // TRIP ENUMS
3
+ // =============================================
4
+
5
+ export enum TripStatus {
6
+ REQUESTED = "requested",
7
+ ACCEPTED = "accepted",
8
+ DRIVER_ARRIVED = "driver_arrived",
9
+ IN_PROGRESS = "in_progress",
10
+ COMPLETED = "completed",
11
+ CANCELLED = "cancelled",
12
+ }
@@ -0,0 +1,10 @@
1
+ // =============================================
2
+ // USER ENUMS
3
+ // =============================================
4
+
5
+ export enum UserStatus {
6
+ ACTIVE = "active",
7
+ INACTIVE = "inactive",
8
+ SUSPENDED = "suspended",
9
+ PENDING_VERIFICATION = "pending_verification",
10
+ }
@@ -0,0 +1,9 @@
1
+ // =============================================
2
+ // VEHICLE ENUMS
3
+ // =============================================
4
+
5
+ export enum VehicleStatus {
6
+ ACTIVE = "active",
7
+ INACTIVE = "inactive",
8
+ MAINTENANCE = "maintenance",
9
+ }
@@ -0,0 +1,29 @@
1
+ // =============================================
2
+ // WALLET ENUMS
3
+ // =============================================
4
+
5
+ export enum WalletStatus {
6
+ ACTIVE = 'active',
7
+ SUSPENDED = 'suspended',
8
+ BLOCKED = 'blocked',
9
+ }
10
+
11
+ export enum TransactionType {
12
+ DEBIT = 'DEBIT', // Sale dinero de la wallet
13
+ CREDIT = 'CREDIT', // Entra dinero a la wallet
14
+ }
15
+
16
+ export enum TransactionCategory {
17
+ TRIP_PAYMENT = 'TRIP_PAYMENT', // Pago de viaje
18
+ REFUND = 'REFUND', // Devolución de dinero
19
+ TOP_UP = 'TOP_UP', // Recarga de wallet
20
+ CANCELLATION = 'CANCELLATION', // Cancelación de viaje
21
+ ADJUSTMENT = 'ADJUSTMENT', // Ajuste manual
22
+ }
23
+
24
+ export enum TransactionStatus {
25
+ PENDING = 'PENDING',
26
+ COMPLETED = 'COMPLETED',
27
+ FAILED = 'FAILED',
28
+ CANCELLED = 'CANCELLED',
29
+ }
package/src/index.ts ADDED
@@ -0,0 +1,15 @@
1
+ // =============================================
2
+ // EXPORTACIONES PRINCIPALES
3
+ // =============================================
4
+
5
+ // Exportar todas las entidades (incluyen sus enums)
6
+ export * from "./entities";
7
+
8
+ // Exportar enums adicionales que no están en entidades
9
+ export * from "./enums";
10
+
11
+ // Exportar configuraciones
12
+ export * from "./config";
13
+
14
+ // Exportar tipos y interfaces
15
+ export * from "./types";
@@ -0,0 +1,43 @@
1
+ // =============================================
2
+ // TIPOS COMUNES COMPARTIDOS
3
+ // =============================================
4
+
5
+ export interface GeoPoint {
6
+ longitude: number;
7
+ latitude: number;
8
+ }
9
+
10
+ export interface GeoPolygon {
11
+ coordinates: number[][][];
12
+ }
13
+
14
+ export interface GeoLineString {
15
+ coordinates: number[][];
16
+ }
17
+
18
+ export interface PaginationParams {
19
+ page?: number;
20
+ limit?: number;
21
+ offset?: number;
22
+ }
23
+
24
+ export interface PaginatedResponse<T> {
25
+ data: T[];
26
+ total: number;
27
+ currentPage: number;
28
+ limit: number;
29
+ totalPages: number;
30
+ }
31
+
32
+ export interface ApiResponse<T = any> {
33
+ success: boolean;
34
+ data?: T;
35
+ message?: string;
36
+ error?: string;
37
+ }
38
+
39
+ export interface BaseEntity {
40
+ id: string;
41
+ createdAt: Date;
42
+ updatedAt: Date;
43
+ }
@@ -0,0 +1,5 @@
1
+ // =============================================
2
+ // EXPORTACIONES DE TIPOS E INTERFACES
3
+ // =============================================
4
+
5
+ export * from "./common.types";
package/tsconfig.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "commonjs",
5
+ "lib": ["ES2020"],
6
+ "outDir": "./dist",
7
+ "rootDir": "./src",
8
+ "strict": true,
9
+ "strictPropertyInitialization": false,
10
+ "esModuleInterop": true,
11
+ "skipLibCheck": true,
12
+ "forceConsistentCasingInFileNames": true,
13
+ "declaration": true,
14
+ "declarationMap": true,
15
+ "sourceMap": true,
16
+ "experimentalDecorators": true,
17
+ "emitDecoratorMetadata": true,
18
+ "resolveJsonModule": true,
19
+ "moduleResolution": "node",
20
+ "allowSyntheticDefaultImports": true
21
+ },
22
+ "include": ["src/**/*"],
23
+ "exclude": ["node_modules", "dist", "**/*.spec.ts"]
24
+ }