@gymspace/shared 1.2.4 → 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +795 -0
- package/dist/index.d.ts +795 -0
- package/dist/index.js +281 -24
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +266 -25
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/constants/template-codes.constants.ts +131 -0
- package/src/constants.ts +31 -40
- package/src/enums.ts +2 -1
- package/src/events/index.ts +1 -0
- package/src/events/whatsapp.events.ts +31 -0
- package/src/index.ts +4 -1
- package/src/interfaces.ts +3 -6
- package/src/schemas/ai-template.schema.ts +23 -0
- package/src/schemas/index.ts +1 -0
- package/src/types/whatsapp-templates.types.ts +174 -0
- package/src/types.ts +147 -1
- package/src/utils/roleHelpers.ts +104 -0
- package/dist/.tsbuildinfo +0 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var zod = require('zod');
|
|
4
|
+
|
|
5
|
+
// src/types/whatsapp-templates.types.ts
|
|
6
|
+
var TemplateCode = {
|
|
7
|
+
WELCOME: "WELCOME",
|
|
8
|
+
MEMBERSHIP_PURCHASE: "MEMBERSHIP_PURCHASE",
|
|
9
|
+
MEMBERSHIP_RENEWAL: "MEMBERSHIP_RENEWAL",
|
|
10
|
+
MEMBERSHIP_EXPIRING: "MEMBERSHIP_EXPIRING",
|
|
11
|
+
PAYMENT_REMINDER: "PAYMENT_REMINDER",
|
|
12
|
+
BIRTHDAY: "BIRTHDAY",
|
|
13
|
+
PAYMENT_RECEIPT: "PAYMENT_RECEIPT"
|
|
14
|
+
};
|
|
15
|
+
var TemplateType = {
|
|
16
|
+
STATIC: "STATIC",
|
|
17
|
+
PROMPT: "PROMPT"
|
|
18
|
+
};
|
|
19
|
+
|
|
3
20
|
// src/enums.ts
|
|
4
21
|
var UserType = /* @__PURE__ */ ((UserType2) => {
|
|
5
22
|
UserType2["OWNER"] = "owner";
|
|
@@ -23,6 +40,7 @@ var CollaboratorStatus = /* @__PURE__ */ ((CollaboratorStatus2) => {
|
|
|
23
40
|
var InvitationStatus = /* @__PURE__ */ ((InvitationStatus2) => {
|
|
24
41
|
InvitationStatus2["PENDING"] = "pending";
|
|
25
42
|
InvitationStatus2["ACCEPTED"] = "accepted";
|
|
43
|
+
InvitationStatus2["CANCELLED"] = "cancelled";
|
|
26
44
|
InvitationStatus2["EXPIRED"] = "expired";
|
|
27
45
|
return InvitationStatus2;
|
|
28
46
|
})(InvitationStatus || {});
|
|
@@ -116,6 +134,126 @@ var LeadStatus = /* @__PURE__ */ ((LeadStatus2) => {
|
|
|
116
134
|
return LeadStatus2;
|
|
117
135
|
})(LeadStatus || {});
|
|
118
136
|
|
|
137
|
+
// src/constants/template-codes.constants.ts
|
|
138
|
+
var TEMPLATE_CODES = {
|
|
139
|
+
WELCOME: TemplateCode.WELCOME,
|
|
140
|
+
MEMBERSHIP_PURCHASE: TemplateCode.MEMBERSHIP_PURCHASE,
|
|
141
|
+
MEMBERSHIP_RENEWAL: TemplateCode.MEMBERSHIP_RENEWAL,
|
|
142
|
+
MEMBERSHIP_EXPIRING: TemplateCode.MEMBERSHIP_EXPIRING,
|
|
143
|
+
PAYMENT_REMINDER: TemplateCode.PAYMENT_REMINDER,
|
|
144
|
+
BIRTHDAY: TemplateCode.BIRTHDAY,
|
|
145
|
+
PAYMENT_RECEIPT: TemplateCode.PAYMENT_RECEIPT
|
|
146
|
+
};
|
|
147
|
+
var WHATSAPP_TEMPLATE_EVENTS = {
|
|
148
|
+
SEND_TEMPLATE: "whatsapp/template.send",
|
|
149
|
+
TEMPLATE_SENT: "whatsapp/template.sent",
|
|
150
|
+
TEMPLATE_FAILED: "whatsapp/template.failed"
|
|
151
|
+
};
|
|
152
|
+
var TEMPLATE_METADATA = {
|
|
153
|
+
[TemplateCode.WELCOME]: {
|
|
154
|
+
code: TemplateCode.WELCOME,
|
|
155
|
+
title: "Mensaje de Bienvenida",
|
|
156
|
+
description: "Mensaje para nuevos clientes",
|
|
157
|
+
icon: "UserPlus",
|
|
158
|
+
variables: ["clientName", "gymName", "registrationDate"],
|
|
159
|
+
exampleValues: {
|
|
160
|
+
clientName: "Juan P\xE9rez",
|
|
161
|
+
gymName: "GymSpace",
|
|
162
|
+
registrationDate: "15/01/2024"
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
[TemplateCode.MEMBERSHIP_PURCHASE]: {
|
|
166
|
+
code: TemplateCode.MEMBERSHIP_PURCHASE,
|
|
167
|
+
title: "Compra de Membres\xEDa",
|
|
168
|
+
description: "Confirmaci\xF3n de nueva membres\xEDa",
|
|
169
|
+
icon: "ShoppingCart",
|
|
170
|
+
variables: ["clientName", "planName", "startDate", "endDate", "amount", "paymentFrequency"],
|
|
171
|
+
exampleValues: {
|
|
172
|
+
clientName: "Mar\xEDa L\xF3pez",
|
|
173
|
+
planName: "Premium",
|
|
174
|
+
startDate: "01/02/2024",
|
|
175
|
+
endDate: "01/03/2024",
|
|
176
|
+
amount: "$50.00",
|
|
177
|
+
paymentFrequency: "mensual"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
[TemplateCode.MEMBERSHIP_RENEWAL]: {
|
|
181
|
+
code: TemplateCode.MEMBERSHIP_RENEWAL,
|
|
182
|
+
title: "Renovaci\xF3n de Membres\xEDa",
|
|
183
|
+
description: "Confirmaci\xF3n de renovaci\xF3n",
|
|
184
|
+
icon: "RefreshCw",
|
|
185
|
+
variables: ["clientName", "planName", "newEndDate", "amount"],
|
|
186
|
+
exampleValues: {
|
|
187
|
+
clientName: "Carlos Ruiz",
|
|
188
|
+
planName: "B\xE1sico",
|
|
189
|
+
newEndDate: "15/04/2024",
|
|
190
|
+
amount: "$30.00"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
[TemplateCode.MEMBERSHIP_EXPIRING]: {
|
|
194
|
+
code: TemplateCode.MEMBERSHIP_EXPIRING,
|
|
195
|
+
title: "Membres\xEDa Por Vencer",
|
|
196
|
+
description: "Recordatorio de expiraci\xF3n pr\xF3xima",
|
|
197
|
+
icon: "AlertCircle",
|
|
198
|
+
variables: ["clientName", "planName", "expirationDate", "daysRemaining"],
|
|
199
|
+
exampleValues: {
|
|
200
|
+
clientName: "Ana Garc\xEDa",
|
|
201
|
+
planName: "Premium",
|
|
202
|
+
expirationDate: "20/02/2024",
|
|
203
|
+
daysRemaining: "3"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
[TemplateCode.PAYMENT_REMINDER]: {
|
|
207
|
+
code: TemplateCode.PAYMENT_REMINDER,
|
|
208
|
+
title: "Recordatorio de Pago",
|
|
209
|
+
description: "Recordatorio de pago pendiente",
|
|
210
|
+
icon: "DollarSign",
|
|
211
|
+
variables: ["clientName", "amount", "dueDate", "planName"],
|
|
212
|
+
exampleValues: {
|
|
213
|
+
clientName: "Pedro S\xE1nchez",
|
|
214
|
+
amount: "$40.00",
|
|
215
|
+
dueDate: "25/02/2024",
|
|
216
|
+
planName: "Est\xE1ndar"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
[TemplateCode.BIRTHDAY]: {
|
|
220
|
+
code: TemplateCode.BIRTHDAY,
|
|
221
|
+
title: "Cumplea\xF1os",
|
|
222
|
+
description: "Felicitaci\xF3n de cumplea\xF1os",
|
|
223
|
+
icon: "Cake",
|
|
224
|
+
variables: ["clientName", "gymName", "age"],
|
|
225
|
+
exampleValues: {
|
|
226
|
+
clientName: "Laura Mart\xEDnez",
|
|
227
|
+
gymName: "GymSpace",
|
|
228
|
+
age: "28"
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
[TemplateCode.PAYMENT_RECEIPT]: {
|
|
232
|
+
code: TemplateCode.PAYMENT_RECEIPT,
|
|
233
|
+
title: "Comprobante de Pago",
|
|
234
|
+
description: "Comprobante de venta pagada",
|
|
235
|
+
icon: "Receipt",
|
|
236
|
+
variables: [
|
|
237
|
+
"gymName",
|
|
238
|
+
"receiptNumber",
|
|
239
|
+
"date",
|
|
240
|
+
"clientName",
|
|
241
|
+
"items",
|
|
242
|
+
"amount",
|
|
243
|
+
"paymentMethod"
|
|
244
|
+
],
|
|
245
|
+
exampleValues: {
|
|
246
|
+
gymName: "GymSpace",
|
|
247
|
+
receiptNumber: "V-001",
|
|
248
|
+
date: "15/01/2024",
|
|
249
|
+
clientName: "Juan P\xE9rez",
|
|
250
|
+
items: "\u2022 Prote\xEDna x2 = Q100.00\n\u2022 Creatina x1 = Q50.00",
|
|
251
|
+
amount: "Q150.00",
|
|
252
|
+
paymentMethod: "Efectivo"
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
|
|
119
257
|
// src/constants.ts
|
|
120
258
|
var PERMISSIONS = {
|
|
121
259
|
// Organizations
|
|
@@ -195,11 +333,17 @@ var PERMISSIONS = {
|
|
|
195
333
|
PAYMENT_METHODS_READ: "PAYMENT_METHODS_READ",
|
|
196
334
|
PAYMENT_METHODS_UPDATE: "PAYMENT_METHODS_UPDATE",
|
|
197
335
|
PAYMENT_METHODS_DELETE: "PAYMENT_METHODS_DELETE",
|
|
198
|
-
//
|
|
199
|
-
|
|
336
|
+
// WhatsApp
|
|
337
|
+
WHATSAPP_READ: "WHATSAPP_READ",
|
|
338
|
+
WHATSAPP_SEND: "WHATSAPP_SEND",
|
|
339
|
+
WHATSAPP_MANAGE: "WHATSAPP_MANAGE",
|
|
340
|
+
// Special permissions
|
|
341
|
+
SUPER_ADMIN: "SUPER_ADMIN",
|
|
342
|
+
OWNER: "OWNER",
|
|
343
|
+
All: "ALL"
|
|
200
344
|
};
|
|
201
345
|
var ROLE_PERMISSIONS = {
|
|
202
|
-
|
|
346
|
+
ADMIN: Object.values(PERMISSIONS),
|
|
203
347
|
MANAGER: [
|
|
204
348
|
PERMISSIONS.GYMS_READ,
|
|
205
349
|
PERMISSIONS.COLLABORATORS_READ,
|
|
@@ -239,26 +383,6 @@ var ROLE_PERMISSIONS = {
|
|
|
239
383
|
PERMISSIONS.PAYMENT_METHODS_READ,
|
|
240
384
|
PERMISSIONS.PAYMENT_METHODS_UPDATE,
|
|
241
385
|
PERMISSIONS.PAYMENT_METHODS_DELETE
|
|
242
|
-
],
|
|
243
|
-
STAFF: [
|
|
244
|
-
PERMISSIONS.CLIENTS_READ,
|
|
245
|
-
PERMISSIONS.CHECKINS_CREATE,
|
|
246
|
-
PERMISSIONS.CHECKINS_READ,
|
|
247
|
-
PERMISSIONS.PRODUCTS_READ,
|
|
248
|
-
PERMISSIONS.PRODUCT_CATEGORIES_READ,
|
|
249
|
-
PERMISSIONS.SALES_CREATE,
|
|
250
|
-
PERMISSIONS.SALES_READ,
|
|
251
|
-
PERMISSIONS.PAYMENT_METHODS_READ
|
|
252
|
-
],
|
|
253
|
-
ADVISOR: [
|
|
254
|
-
PERMISSIONS.CLIENTS_READ,
|
|
255
|
-
PERMISSIONS.EVALUATIONS_CREATE,
|
|
256
|
-
PERMISSIONS.EVALUATIONS_READ,
|
|
257
|
-
PERMISSIONS.EVALUATIONS_UPDATE,
|
|
258
|
-
PERMISSIONS.ASSETS_CREATE,
|
|
259
|
-
PERMISSIONS.ASSETS_READ,
|
|
260
|
-
PERMISSIONS.FILES_CREATE,
|
|
261
|
-
PERMISSIONS.FILES_READ
|
|
262
386
|
]
|
|
263
387
|
};
|
|
264
388
|
var CACHE_TTL = {
|
|
@@ -270,8 +394,10 @@ var CACHE_TTL = {
|
|
|
270
394
|
// 60 minutes
|
|
271
395
|
REPORTS: 300,
|
|
272
396
|
// 5 minutes
|
|
273
|
-
DASHBOARD: 180
|
|
397
|
+
DASHBOARD: 180,
|
|
274
398
|
// 3 minutes
|
|
399
|
+
WHATSAPP_MESSAGE_STATUS: 300
|
|
400
|
+
// 5 minutes
|
|
275
401
|
};
|
|
276
402
|
var FILE_LIMITS = {
|
|
277
403
|
MAX_FILE_SIZE: 10 * 1024 * 1024,
|
|
@@ -296,6 +422,121 @@ var HEADERS = {
|
|
|
296
422
|
REQUEST_ID: "X-Request-Id"
|
|
297
423
|
};
|
|
298
424
|
|
|
425
|
+
// src/utils/roleHelpers.ts
|
|
426
|
+
var RoleNames = /* @__PURE__ */ ((RoleNames2) => {
|
|
427
|
+
RoleNames2["ADMIN"] = "Admin";
|
|
428
|
+
RoleNames2["ENCARGADO"] = "Encargado";
|
|
429
|
+
RoleNames2["OWNER"] = "OWNER";
|
|
430
|
+
return RoleNames2;
|
|
431
|
+
})(RoleNames || {});
|
|
432
|
+
var ROLE_NAMES = RoleNames;
|
|
433
|
+
function isAdminRole(roleName) {
|
|
434
|
+
return roleName === "Admin" /* ADMIN */;
|
|
435
|
+
}
|
|
436
|
+
function isEncargadoRole(roleName) {
|
|
437
|
+
return roleName === "Encargado" /* ENCARGADO */;
|
|
438
|
+
}
|
|
439
|
+
function canAccessFeature(userRole, allowedRoles) {
|
|
440
|
+
if (!userRole) return false;
|
|
441
|
+
if (userRole === "OWNER" /* OWNER */) return true;
|
|
442
|
+
return allowedRoles.includes(userRole);
|
|
443
|
+
}
|
|
444
|
+
function getRoleDisplayName(roleName) {
|
|
445
|
+
if (!roleName) return "";
|
|
446
|
+
switch (roleName) {
|
|
447
|
+
case "Admin" /* ADMIN */:
|
|
448
|
+
return "Administrador";
|
|
449
|
+
case "Encargado" /* ENCARGADO */:
|
|
450
|
+
return "Encargado";
|
|
451
|
+
case "OWNER" /* OWNER */:
|
|
452
|
+
return "Propietario";
|
|
453
|
+
default:
|
|
454
|
+
return roleName;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
function getRoleDescription(roleName) {
|
|
458
|
+
if (!roleName) return "";
|
|
459
|
+
switch (roleName) {
|
|
460
|
+
case "Admin" /* ADMIN */:
|
|
461
|
+
return "Acceso completo a todas las funcionalidades del gimnasio, gesti\xF3n de colaboradores y configuraci\xF3n";
|
|
462
|
+
case "Encargado" /* ENCARGADO */:
|
|
463
|
+
return "Gesti\xF3n diaria del gimnasio: clientes, contratos, check-ins y reportes";
|
|
464
|
+
case "OWNER" /* OWNER */:
|
|
465
|
+
return "Acceso completo a todas las funcionalidades, organizaci\xF3n y suscripci\xF3n";
|
|
466
|
+
default:
|
|
467
|
+
return "";
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
function getRoleCapabilities(roleName) {
|
|
471
|
+
if (!roleName) return [];
|
|
472
|
+
switch (roleName) {
|
|
473
|
+
case "OWNER" /* OWNER */:
|
|
474
|
+
return [
|
|
475
|
+
"Acceso completo a todas las funcionalidades",
|
|
476
|
+
"Gesti\xF3n de organizaci\xF3n",
|
|
477
|
+
"Gesti\xF3n de suscripci\xF3n y facturaci\xF3n",
|
|
478
|
+
"Gesti\xF3n completa de clientes",
|
|
479
|
+
"Gesti\xF3n completa de contratos",
|
|
480
|
+
"Gesti\xF3n de colaboradores",
|
|
481
|
+
"Configuraci\xF3n del gimnasio",
|
|
482
|
+
"Gesti\xF3n de planes",
|
|
483
|
+
"Gesti\xF3n de proveedores",
|
|
484
|
+
"Gesti\xF3n de m\xE9todos de pago",
|
|
485
|
+
"Reportes y estad\xEDsticas",
|
|
486
|
+
"Gesti\xF3n de inventario",
|
|
487
|
+
"Check-ins"
|
|
488
|
+
];
|
|
489
|
+
case "Admin" /* ADMIN */:
|
|
490
|
+
return [
|
|
491
|
+
"Gesti\xF3n completa de clientes",
|
|
492
|
+
"Gesti\xF3n completa de contratos",
|
|
493
|
+
"Gesti\xF3n de colaboradores",
|
|
494
|
+
"Configuraci\xF3n del gimnasio",
|
|
495
|
+
"Gesti\xF3n de planes",
|
|
496
|
+
"Gesti\xF3n de proveedores",
|
|
497
|
+
"Gesti\xF3n de m\xE9todos de pago",
|
|
498
|
+
"Reportes y estad\xEDsticas",
|
|
499
|
+
"Gesti\xF3n de inventario",
|
|
500
|
+
"Check-ins"
|
|
501
|
+
];
|
|
502
|
+
case "Encargado" /* ENCARGADO */:
|
|
503
|
+
return [
|
|
504
|
+
"Gesti\xF3n de clientes (ver, crear, editar)",
|
|
505
|
+
"Creaci\xF3n y renovaci\xF3n de contratos",
|
|
506
|
+
"Check-ins",
|
|
507
|
+
"Ver reportes",
|
|
508
|
+
"Gesti\xF3n de inventario",
|
|
509
|
+
"Ventas"
|
|
510
|
+
];
|
|
511
|
+
default:
|
|
512
|
+
return [];
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
// src/events/whatsapp.events.ts
|
|
517
|
+
var WHATSAPP_EVENTS = {
|
|
518
|
+
MESSAGE_SEND: "whatsapp/message.send",
|
|
519
|
+
MESSAGE_RECEIVED: "whatsapp/message.received",
|
|
520
|
+
CONNECTION_UPDATE: "whatsapp/connection.update"
|
|
521
|
+
};
|
|
522
|
+
var templateGenerationRequestSchema = zod.z.object({
|
|
523
|
+
templateCode: zod.z.string(),
|
|
524
|
+
templateMetadata: zod.z.object({
|
|
525
|
+
title: zod.z.string(),
|
|
526
|
+
description: zod.z.string(),
|
|
527
|
+
variables: zod.z.array(zod.z.string()),
|
|
528
|
+
exampleValues: zod.z.record(zod.z.string())
|
|
529
|
+
}),
|
|
530
|
+
userPrompt: zod.z.string().optional(),
|
|
531
|
+
language: zod.z.string().default("es")
|
|
532
|
+
});
|
|
533
|
+
var aiGeneratedTemplateSchema = zod.z.object({
|
|
534
|
+
message: zod.z.string().describe("Mensaje generado con variables en formato {{variable}}"),
|
|
535
|
+
tone: zod.z.enum(["professional", "friendly", "casual", "urgent"]).describe("Tono del mensaje"),
|
|
536
|
+
usedVariables: zod.z.array(zod.z.string()).describe("Variables utilizadas en el mensaje"),
|
|
537
|
+
suggestions: zod.z.array(zod.z.string()).optional().describe("Sugerencias adicionales")
|
|
538
|
+
});
|
|
539
|
+
|
|
299
540
|
exports.AssetCategory = AssetCategory;
|
|
300
541
|
exports.AssetStatus = AssetStatus;
|
|
301
542
|
exports.CACHE_TTL = CACHE_TTL;
|
|
@@ -317,8 +558,24 @@ exports.PAGINATION_DEFAULTS = PAGINATION_DEFAULTS;
|
|
|
317
558
|
exports.PERMISSIONS = PERMISSIONS;
|
|
318
559
|
exports.PaymentFrequency = PaymentFrequency;
|
|
319
560
|
exports.PlanStatus = PlanStatus;
|
|
561
|
+
exports.ROLE_NAMES = ROLE_NAMES;
|
|
320
562
|
exports.ROLE_PERMISSIONS = ROLE_PERMISSIONS;
|
|
563
|
+
exports.RoleNames = RoleNames;
|
|
321
564
|
exports.SubscriptionStatus = SubscriptionStatus;
|
|
565
|
+
exports.TEMPLATE_CODES = TEMPLATE_CODES;
|
|
566
|
+
exports.TEMPLATE_METADATA = TEMPLATE_METADATA;
|
|
567
|
+
exports.TemplateCode = TemplateCode;
|
|
568
|
+
exports.TemplateType = TemplateType;
|
|
322
569
|
exports.UserType = UserType;
|
|
570
|
+
exports.WHATSAPP_EVENTS = WHATSAPP_EVENTS;
|
|
571
|
+
exports.WHATSAPP_TEMPLATE_EVENTS = WHATSAPP_TEMPLATE_EVENTS;
|
|
572
|
+
exports.aiGeneratedTemplateSchema = aiGeneratedTemplateSchema;
|
|
573
|
+
exports.canAccessFeature = canAccessFeature;
|
|
574
|
+
exports.getRoleCapabilities = getRoleCapabilities;
|
|
575
|
+
exports.getRoleDescription = getRoleDescription;
|
|
576
|
+
exports.getRoleDisplayName = getRoleDisplayName;
|
|
577
|
+
exports.isAdminRole = isAdminRole;
|
|
578
|
+
exports.isEncargadoRole = isEncargadoRole;
|
|
579
|
+
exports.templateGenerationRequestSchema = templateGenerationRequestSchema;
|
|
323
580
|
//# sourceMappingURL=index.js.map
|
|
324
581
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/enums.ts","../src/constants.ts"],"names":["UserType","SubscriptionStatus","CollaboratorStatus","InvitationStatus","ClientStatus","PlanStatus","ContractStatus","PaymentFrequency","AssetStatus","EvaluationType","EvaluationStatus","CommentType","AssetCategory","ContractAssetType","EvaluationAssetStage","EvaluationAssetCategory","LeadStatus"],"mappings":"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","file":"index.js","sourcesContent":["export enum UserType {\n OWNER = 'owner',\n COLLABORATOR = 'collaborator',\n}\n\nexport enum SubscriptionStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n EXPIRED = 'expired',\n PAUSED = 'paused',\n PENDING_UPGRADE = 'pending_upgrade',\n}\n\nexport enum CollaboratorStatus {\n PENDING = 'pending',\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum InvitationStatus {\n PENDING = 'pending',\n ACCEPTED = 'accepted',\n EXPIRED = 'expired',\n}\n\nexport enum ClientStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum PlanStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n ARCHIVED = 'archived',\n}\n\nexport enum ContractStatus {\n PENDING = 'pending',\n ACTIVE = 'active',\n EXPIRING_SOON = 'expiring_soon',\n EXPIRED = 'expired',\n CANCELLED = 'cancelled',\n FOR_RENEW = 'for_renew',\n}\n\nexport enum PaymentFrequency {\n MONTHLY = 'monthly',\n QUARTERLY = 'quarterly',\n ANNUAL = 'annual',\n}\n\nexport enum AssetStatus {\n ACTIVE = 'active',\n DELETED = 'deleted',\n}\n\nexport enum EvaluationType {\n INITIAL = 'initial',\n PROGRESS = 'progress',\n FINAL = 'final',\n}\n\nexport enum EvaluationStatus {\n OPEN = 'open',\n IN_PROGRESS = 'in_progress',\n COMPLETED = 'completed',\n CANCELLED = 'cancelled',\n}\n\nexport enum CommentType {\n PROGRESS_NOTE = 'progress_note',\n PHONE_CALL = 'phone_call',\n MEETING = 'meeting',\n REMINDER = 'reminder',\n OTHER = 'other',\n}\n\nexport enum AssetCategory {\n MEDICAL_DOCUMENT = 'medical_document',\n IDENTIFICATION = 'identification',\n INSURANCE = 'insurance',\n CONTRACT_COPY = 'contract_copy',\n OTHER = 'other',\n}\n\nexport enum ContractAssetType {\n PAYMENT_RECEIPT = 'payment_receipt',\n CONTRACT_DOCUMENT = 'contract_document',\n IDENTIFICATION = 'identification',\n OTHER = 'other',\n}\n\nexport enum EvaluationAssetStage {\n INITIAL = 'initial',\n PROGRESS = 'progress',\n FINAL = 'final',\n}\n\nexport enum EvaluationAssetCategory {\n BODY_PHOTO = 'body_photo',\n MEASUREMENT_PHOTO = 'measurement_photo',\n DOCUMENT = 'document',\n REPORT = 'report',\n OTHER = 'other',\n}\n\nexport enum LeadStatus {\n NEW = 'NEW',\n CONTACTED = 'CONTACTED',\n INTERESTED = 'INTERESTED',\n CONVERTED = 'CONVERTED',\n LOST = 'LOST',\n}","// Permission constants\nexport const PERMISSIONS = {\n // Organizations\n ORGANIZATIONS_CREATE: 'ORGANIZATIONS_CREATE',\n ORGANIZATIONS_READ: 'ORGANIZATIONS_READ',\n ORGANIZATIONS_UPDATE: 'ORGANIZATIONS_UPDATE',\n ORGANIZATIONS_DELETE: 'ORGANIZATIONS_DELETE',\n \n // Gyms\n GYMS_CREATE: 'GYMS_CREATE',\n GYMS_READ: 'GYMS_READ',\n GYMS_UPDATE: 'GYMS_UPDATE',\n GYMS_DELETE: 'GYMS_DELETE',\n \n // Collaborators\n COLLABORATORS_CREATE: 'COLLABORATORS_CREATE',\n COLLABORATORS_READ: 'COLLABORATORS_READ',\n COLLABORATORS_UPDATE: 'COLLABORATORS_UPDATE',\n COLLABORATORS_DELETE: 'COLLABORATORS_DELETE',\n \n // Clients\n CLIENTS_CREATE: 'CLIENTS_CREATE',\n CLIENTS_READ: 'CLIENTS_READ',\n CLIENTS_UPDATE: 'CLIENTS_UPDATE',\n CLIENTS_DELETE: 'CLIENTS_DELETE',\n \n // Contracts\n CONTRACTS_CREATE: 'CONTRACTS_CREATE',\n CONTRACTS_READ: 'CONTRACTS_READ',\n CONTRACTS_UPDATE: 'CONTRACTS_UPDATE',\n CONTRACTS_APPROVE: 'CONTRACTS_APPROVE',\n CONTRACTS_CANCEL: 'CONTRACTS_CANCEL',\n \n // Evaluations\n EVALUATIONS_CREATE: 'EVALUATIONS_CREATE',\n EVALUATIONS_READ: 'EVALUATIONS_READ',\n EVALUATIONS_UPDATE: 'EVALUATIONS_UPDATE',\n EVALUATIONS_DELETE: 'EVALUATIONS_DELETE',\n \n // Check-ins\n CHECKINS_CREATE: 'CHECKINS_CREATE',\n CHECKINS_READ: 'CHECKINS_READ',\n \n // Leads\n LEADS_CREATE: 'LEADS_CREATE',\n LEADS_READ: 'LEADS_READ',\n LEADS_UPDATE: 'LEADS_UPDATE',\n LEADS_DELETE: 'LEADS_DELETE',\n \n // Reports\n REPORTS_VIEW: 'REPORTS_VIEW',\n REPORTS_FINANCIAL: 'REPORTS_FINANCIAL',\n \n // Settings\n SETTINGS_UPDATE: 'SETTINGS_UPDATE',\n \n // Assets\n ASSETS_CREATE: 'ASSETS_CREATE',\n ASSETS_READ: 'ASSETS_READ',\n ASSETS_DELETE: 'ASSETS_DELETE',\n \n // Files\n FILES_CREATE: 'FILES_CREATE',\n FILES_READ: 'FILES_READ',\n FILES_DELETE: 'FILES_DELETE',\n \n // Products\n PRODUCTS_CREATE: 'PRODUCTS_CREATE',\n PRODUCTS_READ: 'PRODUCTS_READ',\n PRODUCTS_UPDATE: 'PRODUCTS_UPDATE',\n PRODUCTS_DELETE: 'PRODUCTS_DELETE',\n \n // Product Categories\n PRODUCT_CATEGORIES_CREATE: 'PRODUCT_CATEGORIES_CREATE',\n PRODUCT_CATEGORIES_READ: 'PRODUCT_CATEGORIES_READ',\n PRODUCT_CATEGORIES_UPDATE: 'PRODUCT_CATEGORIES_UPDATE',\n PRODUCT_CATEGORIES_DELETE: 'PRODUCT_CATEGORIES_DELETE',\n \n // Sales\n SALES_CREATE: 'SALES_CREATE',\n SALES_READ: 'SALES_READ',\n SALES_UPDATE: 'SALES_UPDATE',\n SALES_DELETE: 'SALES_DELETE',\n \n // Suppliers\n SUPPLIERS_CREATE: 'SUPPLIERS_CREATE',\n SUPPLIERS_READ: 'SUPPLIERS_READ',\n SUPPLIERS_UPDATE: 'SUPPLIERS_UPDATE',\n SUPPLIERS_DELETE: 'SUPPLIERS_DELETE',\n \n // Payment Methods\n PAYMENT_METHODS_CREATE: 'PAYMENT_METHODS_CREATE',\n PAYMENT_METHODS_READ: 'PAYMENT_METHODS_READ',\n PAYMENT_METHODS_UPDATE: 'PAYMENT_METHODS_UPDATE',\n PAYMENT_METHODS_DELETE: 'PAYMENT_METHODS_DELETE',\n \n // Super Admin\n SUPER_ADMIN: 'SUPER_ADMIN',\n} as const;\n\n// Role definitions\nexport const ROLE_PERMISSIONS = {\n OWNER: Object.values(PERMISSIONS),\n MANAGER: [\n PERMISSIONS.GYMS_READ,\n PERMISSIONS.COLLABORATORS_READ,\n PERMISSIONS.CLIENTS_CREATE,\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.CLIENTS_UPDATE,\n PERMISSIONS.CONTRACTS_CREATE,\n PERMISSIONS.CONTRACTS_READ,\n PERMISSIONS.EVALUATIONS_CREATE,\n PERMISSIONS.EVALUATIONS_READ,\n PERMISSIONS.EVALUATIONS_UPDATE,\n PERMISSIONS.CHECKINS_CREATE,\n PERMISSIONS.CHECKINS_READ,\n PERMISSIONS.REPORTS_VIEW,\n PERMISSIONS.ASSETS_CREATE,\n PERMISSIONS.ASSETS_READ,\n PERMISSIONS.ASSETS_DELETE,\n PERMISSIONS.FILES_CREATE,\n PERMISSIONS.FILES_READ,\n PERMISSIONS.FILES_DELETE,\n PERMISSIONS.PRODUCTS_CREATE,\n PERMISSIONS.PRODUCTS_READ,\n PERMISSIONS.PRODUCTS_UPDATE,\n PERMISSIONS.PRODUCTS_DELETE,\n PERMISSIONS.PRODUCT_CATEGORIES_CREATE,\n PERMISSIONS.PRODUCT_CATEGORIES_READ,\n PERMISSIONS.PRODUCT_CATEGORIES_UPDATE,\n PERMISSIONS.PRODUCT_CATEGORIES_DELETE,\n PERMISSIONS.SALES_CREATE,\n PERMISSIONS.SALES_READ,\n PERMISSIONS.SALES_UPDATE,\n PERMISSIONS.SUPPLIERS_CREATE,\n PERMISSIONS.SUPPLIERS_READ,\n PERMISSIONS.SUPPLIERS_UPDATE,\n PERMISSIONS.SUPPLIERS_DELETE,\n PERMISSIONS.PAYMENT_METHODS_CREATE,\n PERMISSIONS.PAYMENT_METHODS_READ,\n PERMISSIONS.PAYMENT_METHODS_UPDATE,\n PERMISSIONS.PAYMENT_METHODS_DELETE,\n ],\n STAFF: [\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.CHECKINS_CREATE,\n PERMISSIONS.CHECKINS_READ,\n PERMISSIONS.PRODUCTS_READ,\n PERMISSIONS.PRODUCT_CATEGORIES_READ,\n PERMISSIONS.SALES_CREATE,\n PERMISSIONS.SALES_READ,\n PERMISSIONS.PAYMENT_METHODS_READ,\n ],\n ADVISOR: [\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.EVALUATIONS_CREATE,\n PERMISSIONS.EVALUATIONS_READ,\n PERMISSIONS.EVALUATIONS_UPDATE,\n PERMISSIONS.ASSETS_CREATE,\n PERMISSIONS.ASSETS_READ,\n PERMISSIONS.FILES_CREATE,\n PERMISSIONS.FILES_READ,\n ],\n} as const;\n\n// Cache TTL values (in seconds)\nexport const CACHE_TTL = {\n USER_PERMISSIONS: 900, // 15 minutes\n GYM_DATA: 1800, // 30 minutes\n STATIC_DATA: 3600, // 60 minutes\n REPORTS: 300, // 5 minutes\n DASHBOARD: 180, // 3 minutes\n} as const;\n\n// File size limits (in bytes)\nexport const FILE_LIMITS = {\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_IMAGE_SIZE: 5 * 1024 * 1024, // 5MB\n MAX_DOCUMENT_SIZE: 10 * 1024 * 1024, // 10MB\n} as const;\n\n// Pagination defaults\nexport const PAGINATION_DEFAULTS = {\n PAGE: 1,\n LIMIT: 20,\n MAX_LIMIT: 100,\n} as const;\n\n// Date formats\nexport const DATE_FORMATS = {\n DATE_ONLY: 'YYYY-MM-DD',\n DATETIME: 'YYYY-MM-DD HH:mm:ss',\n TIME_ONLY: 'HH:mm:ss',\n} as const;\n\n// Headers\nexport const HEADERS = {\n GYM_ID: 'X-Gym-Id',\n REQUEST_ID: 'X-Request-Id',\n} as const;"]}
|
|
1
|
+
{"version":3,"sources":["../src/types/whatsapp-templates.types.ts","../src/enums.ts","../src/constants/template-codes.constants.ts","../src/constants.ts","../src/utils/roleHelpers.ts","../src/events/whatsapp.events.ts","../src/schemas/ai-template.schema.ts"],"names":["UserType","SubscriptionStatus","CollaboratorStatus","InvitationStatus","ClientStatus","PlanStatus","ContractStatus","PaymentFrequency","AssetStatus","EvaluationType","EvaluationStatus","CommentType","AssetCategory","ContractAssetType","EvaluationAssetStage","EvaluationAssetCategory","LeadStatus","RoleNames","z"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Template codes for WhatsApp messages\n */\nexport const TemplateCode = {\n WELCOME: 'WELCOME',\n MEMBERSHIP_PURCHASE: 'MEMBERSHIP_PURCHASE',\n MEMBERSHIP_RENEWAL: 'MEMBERSHIP_RENEWAL',\n MEMBERSHIP_EXPIRING: 'MEMBERSHIP_EXPIRING',\n PAYMENT_REMINDER: 'PAYMENT_REMINDER',\n BIRTHDAY: 'BIRTHDAY',\n PAYMENT_RECEIPT: 'PAYMENT_RECEIPT',\n} as const;\n\nexport type TemplateCodeValue = (typeof TemplateCode)[keyof typeof TemplateCode];\nexport type TemplateCode = TemplateCodeValue;\n\n/**\n * Template types\n */\nexport const TemplateType = {\n STATIC: 'STATIC',\n PROMPT: 'PROMPT',\n} as const;\n\nexport type TemplateTypeValue = (typeof TemplateType)[keyof typeof TemplateType];\nexport type TemplateType = TemplateTypeValue;\n\n/**\n * Base interface for WhatsApp template data\n */\nexport interface WhatsAppTemplateData {\n gymId: string;\n clientId: string;\n phoneNumber: string;\n templateCode: TemplateCode;\n variables: Record<string, any>;\n metadata?: {\n contractId?: string;\n userId?: string;\n source?: string;\n instanceName?: string;\n };\n}\n\n/**\n * Welcome message template data\n */\nexport interface WelcomeTemplateData\n extends Omit<WhatsAppTemplateData, 'templateCode' | 'variables'> {\n templateCode: typeof TemplateCode.WELCOME;\n variables: {\n clientName: string;\n gymName: string;\n registrationDate: string;\n };\n}\n\n/**\n * Membership purchase template data\n */\nexport interface MembershipPurchaseTemplateData\n extends Omit<WhatsAppTemplateData, 'templateCode' | 'variables'> {\n templateCode: typeof TemplateCode.MEMBERSHIP_PURCHASE;\n variables: {\n clientName: string;\n planName: string;\n startDate: string;\n endDate: string;\n amount: string;\n paymentFrequency: string;\n };\n}\n\n/**\n * Membership renewal template data\n */\nexport interface MembershipRenewalTemplateData\n extends Omit<WhatsAppTemplateData, 'templateCode' | 'variables'> {\n templateCode: typeof TemplateCode.MEMBERSHIP_RENEWAL;\n variables: {\n clientName: string;\n planName: string;\n newEndDate: string;\n amount: string;\n };\n}\n\n/**\n * Membership expiring template data\n */\nexport interface MembershipExpiringTemplateData\n extends Omit<WhatsAppTemplateData, 'templateCode' | 'variables'> {\n templateCode: typeof TemplateCode.MEMBERSHIP_EXPIRING;\n variables: {\n clientName: string;\n planName: string;\n expirationDate: string;\n daysRemaining: string;\n };\n}\n\n/**\n * Payment reminder template data\n */\nexport interface PaymentReminderTemplateData\n extends Omit<WhatsAppTemplateData, 'templateCode' | 'variables'> {\n templateCode: typeof TemplateCode.PAYMENT_REMINDER;\n variables: {\n clientName: string;\n amount: string;\n dueDate: string;\n planName: string;\n };\n}\n\n/**\n * Birthday template data\n */\nexport interface BirthdayTemplateData\n extends Omit<WhatsAppTemplateData, 'templateCode' | 'variables'> {\n templateCode: typeof TemplateCode.BIRTHDAY;\n variables: {\n clientName: string;\n gymName: string;\n age: string;\n };\n}\n\n/**\n * Payment receipt template data\n */\nexport interface PaymentReceiptTemplateData\n extends Omit<WhatsAppTemplateData, 'templateCode' | 'variables'> {\n templateCode: typeof TemplateCode.PAYMENT_RECEIPT;\n variables: {\n gymName: string;\n receiptNumber: string;\n date: string;\n clientName: string;\n items: string;\n amount: string;\n paymentMethod: string;\n };\n metadata?: {\n saleId?: string;\n userId?: string;\n source?: string;\n instanceName?: string;\n };\n}\n\n/**\n * Union type for all template data types\n */\nexport type WhatsAppTemplateEventData =\n | WelcomeTemplateData\n | MembershipPurchaseTemplateData\n | MembershipRenewalTemplateData\n | MembershipExpiringTemplateData\n | PaymentReminderTemplateData\n | BirthdayTemplateData\n | PaymentReceiptTemplateData;\n\n/**\n * Template metadata interface\n */\nexport interface TemplateMetadata {\n code: TemplateCode;\n title: string;\n description: string;\n icon: string;\n variables: string[];\n exampleValues: Record<string, string>;\n}\n","export enum UserType {\n OWNER = 'owner',\n COLLABORATOR = 'collaborator',\n}\n\nexport enum SubscriptionStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n EXPIRED = 'expired',\n PAUSED = 'paused',\n PENDING_UPGRADE = 'pending_upgrade',\n}\n\nexport enum CollaboratorStatus {\n PENDING = 'pending',\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum InvitationStatus {\n PENDING = 'pending',\n ACCEPTED = 'accepted',\n CANCELLED = 'cancelled',\n EXPIRED = 'expired',\n}\n\nexport enum ClientStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n}\n\nexport enum PlanStatus {\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n ARCHIVED = 'archived',\n}\n\nexport enum ContractStatus {\n PENDING = 'pending',\n ACTIVE = 'active',\n EXPIRING_SOON = 'expiring_soon',\n EXPIRED = 'expired',\n CANCELLED = 'cancelled',\n FOR_RENEW = 'for_renew',\n}\n\nexport enum PaymentFrequency {\n MONTHLY = 'monthly',\n QUARTERLY = 'quarterly',\n ANNUAL = 'annual',\n}\n\nexport enum AssetStatus {\n ACTIVE = 'active',\n DELETED = 'deleted',\n}\n\nexport enum EvaluationType {\n INITIAL = 'initial',\n PROGRESS = 'progress',\n FINAL = 'final',\n}\n\nexport enum EvaluationStatus {\n OPEN = 'open',\n IN_PROGRESS = 'in_progress',\n COMPLETED = 'completed',\n CANCELLED = 'cancelled',\n}\n\nexport enum CommentType {\n PROGRESS_NOTE = 'progress_note',\n PHONE_CALL = 'phone_call',\n MEETING = 'meeting',\n REMINDER = 'reminder',\n OTHER = 'other',\n}\n\nexport enum AssetCategory {\n MEDICAL_DOCUMENT = 'medical_document',\n IDENTIFICATION = 'identification',\n INSURANCE = 'insurance',\n CONTRACT_COPY = 'contract_copy',\n OTHER = 'other',\n}\n\nexport enum ContractAssetType {\n PAYMENT_RECEIPT = 'payment_receipt',\n CONTRACT_DOCUMENT = 'contract_document',\n IDENTIFICATION = 'identification',\n OTHER = 'other',\n}\n\nexport enum EvaluationAssetStage {\n INITIAL = 'initial',\n PROGRESS = 'progress',\n FINAL = 'final',\n}\n\nexport enum EvaluationAssetCategory {\n BODY_PHOTO = 'body_photo',\n MEASUREMENT_PHOTO = 'measurement_photo',\n DOCUMENT = 'document',\n REPORT = 'report',\n OTHER = 'other',\n}\n\nexport enum LeadStatus {\n NEW = 'NEW',\n CONTACTED = 'CONTACTED',\n INTERESTED = 'INTERESTED',\n CONVERTED = 'CONVERTED',\n LOST = 'LOST',\n}\n","import { TemplateCode } from '../types/whatsapp-templates.types';\n\n/**\n * Template code constants\n */\nexport const TEMPLATE_CODES = {\n WELCOME: TemplateCode.WELCOME,\n MEMBERSHIP_PURCHASE: TemplateCode.MEMBERSHIP_PURCHASE,\n MEMBERSHIP_RENEWAL: TemplateCode.MEMBERSHIP_RENEWAL,\n MEMBERSHIP_EXPIRING: TemplateCode.MEMBERSHIP_EXPIRING,\n PAYMENT_REMINDER: TemplateCode.PAYMENT_REMINDER,\n BIRTHDAY: TemplateCode.BIRTHDAY,\n PAYMENT_RECEIPT: TemplateCode.PAYMENT_RECEIPT,\n} as const;\n\n/**\n * Event names for WhatsApp template events\n */\nexport const WHATSAPP_TEMPLATE_EVENTS = {\n SEND_TEMPLATE: 'whatsapp/template.send',\n TEMPLATE_SENT: 'whatsapp/template.sent',\n TEMPLATE_FAILED: 'whatsapp/template.failed',\n} as const;\n\n/**\n * Template metadata mapping\n */\nexport const TEMPLATE_METADATA = {\n [TemplateCode.WELCOME]: {\n code: TemplateCode.WELCOME,\n title: 'Mensaje de Bienvenida',\n description: 'Mensaje para nuevos clientes',\n icon: 'UserPlus',\n variables: ['clientName', 'gymName', 'registrationDate'],\n exampleValues: {\n clientName: 'Juan Pérez',\n gymName: 'GymSpace',\n registrationDate: '15/01/2024',\n },\n },\n [TemplateCode.MEMBERSHIP_PURCHASE]: {\n code: TemplateCode.MEMBERSHIP_PURCHASE,\n title: 'Compra de Membresía',\n description: 'Confirmación de nueva membresía',\n icon: 'ShoppingCart',\n variables: ['clientName', 'planName', 'startDate', 'endDate', 'amount', 'paymentFrequency'],\n exampleValues: {\n clientName: 'María López',\n planName: 'Premium',\n startDate: '01/02/2024',\n endDate: '01/03/2024',\n amount: '$50.00',\n paymentFrequency: 'mensual',\n },\n },\n [TemplateCode.MEMBERSHIP_RENEWAL]: {\n code: TemplateCode.MEMBERSHIP_RENEWAL,\n title: 'Renovación de Membresía',\n description: 'Confirmación de renovación',\n icon: 'RefreshCw',\n variables: ['clientName', 'planName', 'newEndDate', 'amount'],\n exampleValues: {\n clientName: 'Carlos Ruiz',\n planName: 'Básico',\n newEndDate: '15/04/2024',\n amount: '$30.00',\n },\n },\n [TemplateCode.MEMBERSHIP_EXPIRING]: {\n code: TemplateCode.MEMBERSHIP_EXPIRING,\n title: 'Membresía Por Vencer',\n description: 'Recordatorio de expiración próxima',\n icon: 'AlertCircle',\n variables: ['clientName', 'planName', 'expirationDate', 'daysRemaining'],\n exampleValues: {\n clientName: 'Ana García',\n planName: 'Premium',\n expirationDate: '20/02/2024',\n daysRemaining: '3',\n },\n },\n [TemplateCode.PAYMENT_REMINDER]: {\n code: TemplateCode.PAYMENT_REMINDER,\n title: 'Recordatorio de Pago',\n description: 'Recordatorio de pago pendiente',\n icon: 'DollarSign',\n variables: ['clientName', 'amount', 'dueDate', 'planName'],\n exampleValues: {\n clientName: 'Pedro Sánchez',\n amount: '$40.00',\n dueDate: '25/02/2024',\n planName: 'Estándar',\n },\n },\n [TemplateCode.BIRTHDAY]: {\n code: TemplateCode.BIRTHDAY,\n title: 'Cumpleaños',\n description: 'Felicitación de cumpleaños',\n icon: 'Cake',\n variables: ['clientName', 'gymName', 'age'],\n exampleValues: {\n clientName: 'Laura Martínez',\n gymName: 'GymSpace',\n age: '28',\n },\n },\n [TemplateCode.PAYMENT_RECEIPT]: {\n code: TemplateCode.PAYMENT_RECEIPT,\n title: 'Comprobante de Pago',\n description: 'Comprobante de venta pagada',\n icon: 'Receipt',\n variables: [\n 'gymName',\n 'receiptNumber',\n 'date',\n 'clientName',\n 'items',\n 'amount',\n 'paymentMethod',\n ],\n exampleValues: {\n gymName: 'GymSpace',\n receiptNumber: 'V-001',\n date: '15/01/2024',\n clientName: 'Juan Pérez',\n items: '• Proteína x2 = Q100.00\\n• Creatina x1 = Q50.00',\n amount: 'Q150.00',\n paymentMethod: 'Efectivo',\n },\n },\n} as const;\n","// Permission constants\nexport const PERMISSIONS = {\n // Organizations\n ORGANIZATIONS_CREATE: 'ORGANIZATIONS_CREATE',\n ORGANIZATIONS_READ: 'ORGANIZATIONS_READ',\n ORGANIZATIONS_UPDATE: 'ORGANIZATIONS_UPDATE',\n ORGANIZATIONS_DELETE: 'ORGANIZATIONS_DELETE',\n\n // Gyms\n GYMS_CREATE: 'GYMS_CREATE',\n GYMS_READ: 'GYMS_READ',\n GYMS_UPDATE: 'GYMS_UPDATE',\n GYMS_DELETE: 'GYMS_DELETE',\n\n // Collaborators\n COLLABORATORS_CREATE: 'COLLABORATORS_CREATE',\n COLLABORATORS_READ: 'COLLABORATORS_READ',\n COLLABORATORS_UPDATE: 'COLLABORATORS_UPDATE',\n COLLABORATORS_DELETE: 'COLLABORATORS_DELETE',\n\n // Clients\n CLIENTS_CREATE: 'CLIENTS_CREATE',\n CLIENTS_READ: 'CLIENTS_READ',\n CLIENTS_UPDATE: 'CLIENTS_UPDATE',\n CLIENTS_DELETE: 'CLIENTS_DELETE',\n\n // Contracts\n CONTRACTS_CREATE: 'CONTRACTS_CREATE',\n CONTRACTS_READ: 'CONTRACTS_READ',\n CONTRACTS_UPDATE: 'CONTRACTS_UPDATE',\n CONTRACTS_APPROVE: 'CONTRACTS_APPROVE',\n CONTRACTS_CANCEL: 'CONTRACTS_CANCEL',\n\n // Evaluations\n EVALUATIONS_CREATE: 'EVALUATIONS_CREATE',\n EVALUATIONS_READ: 'EVALUATIONS_READ',\n EVALUATIONS_UPDATE: 'EVALUATIONS_UPDATE',\n EVALUATIONS_DELETE: 'EVALUATIONS_DELETE',\n\n // Check-ins\n CHECKINS_CREATE: 'CHECKINS_CREATE',\n CHECKINS_READ: 'CHECKINS_READ',\n\n // Leads\n LEADS_CREATE: 'LEADS_CREATE',\n LEADS_READ: 'LEADS_READ',\n LEADS_UPDATE: 'LEADS_UPDATE',\n LEADS_DELETE: 'LEADS_DELETE',\n\n // Reports\n REPORTS_VIEW: 'REPORTS_VIEW',\n REPORTS_FINANCIAL: 'REPORTS_FINANCIAL',\n\n // Settings\n SETTINGS_UPDATE: 'SETTINGS_UPDATE',\n\n // Assets\n ASSETS_CREATE: 'ASSETS_CREATE',\n ASSETS_READ: 'ASSETS_READ',\n ASSETS_DELETE: 'ASSETS_DELETE',\n\n // Files\n FILES_CREATE: 'FILES_CREATE',\n FILES_READ: 'FILES_READ',\n FILES_DELETE: 'FILES_DELETE',\n\n // Products\n PRODUCTS_CREATE: 'PRODUCTS_CREATE',\n PRODUCTS_READ: 'PRODUCTS_READ',\n PRODUCTS_UPDATE: 'PRODUCTS_UPDATE',\n PRODUCTS_DELETE: 'PRODUCTS_DELETE',\n\n // Product Categories\n PRODUCT_CATEGORIES_CREATE: 'PRODUCT_CATEGORIES_CREATE',\n PRODUCT_CATEGORIES_READ: 'PRODUCT_CATEGORIES_READ',\n PRODUCT_CATEGORIES_UPDATE: 'PRODUCT_CATEGORIES_UPDATE',\n PRODUCT_CATEGORIES_DELETE: 'PRODUCT_CATEGORIES_DELETE',\n\n // Sales\n SALES_CREATE: 'SALES_CREATE',\n SALES_READ: 'SALES_READ',\n SALES_UPDATE: 'SALES_UPDATE',\n SALES_DELETE: 'SALES_DELETE',\n\n // Suppliers\n SUPPLIERS_CREATE: 'SUPPLIERS_CREATE',\n SUPPLIERS_READ: 'SUPPLIERS_READ',\n SUPPLIERS_UPDATE: 'SUPPLIERS_UPDATE',\n SUPPLIERS_DELETE: 'SUPPLIERS_DELETE',\n\n // Payment Methods\n PAYMENT_METHODS_CREATE: 'PAYMENT_METHODS_CREATE',\n PAYMENT_METHODS_READ: 'PAYMENT_METHODS_READ',\n PAYMENT_METHODS_UPDATE: 'PAYMENT_METHODS_UPDATE',\n PAYMENT_METHODS_DELETE: 'PAYMENT_METHODS_DELETE',\n\n // WhatsApp\n WHATSAPP_READ: 'WHATSAPP_READ',\n WHATSAPP_SEND: 'WHATSAPP_SEND',\n WHATSAPP_MANAGE: 'WHATSAPP_MANAGE',\n\n // Special permissions\n SUPER_ADMIN: 'SUPER_ADMIN',\n OWNER: 'OWNER',\n All: 'ALL',\n} as const;\n\n// Role definitions\nexport const ROLE_PERMISSIONS = {\n ADMIN: Object.values(PERMISSIONS),\n MANAGER: [\n PERMISSIONS.GYMS_READ,\n PERMISSIONS.COLLABORATORS_READ,\n PERMISSIONS.CLIENTS_CREATE,\n PERMISSIONS.CLIENTS_READ,\n PERMISSIONS.CLIENTS_UPDATE,\n PERMISSIONS.CONTRACTS_CREATE,\n PERMISSIONS.CONTRACTS_READ,\n PERMISSIONS.EVALUATIONS_CREATE,\n PERMISSIONS.EVALUATIONS_READ,\n PERMISSIONS.EVALUATIONS_UPDATE,\n PERMISSIONS.CHECKINS_CREATE,\n PERMISSIONS.CHECKINS_READ,\n PERMISSIONS.REPORTS_VIEW,\n PERMISSIONS.ASSETS_CREATE,\n PERMISSIONS.ASSETS_READ,\n PERMISSIONS.ASSETS_DELETE,\n PERMISSIONS.FILES_CREATE,\n PERMISSIONS.FILES_READ,\n PERMISSIONS.FILES_DELETE,\n PERMISSIONS.PRODUCTS_CREATE,\n PERMISSIONS.PRODUCTS_READ,\n PERMISSIONS.PRODUCTS_UPDATE,\n PERMISSIONS.PRODUCTS_DELETE,\n PERMISSIONS.PRODUCT_CATEGORIES_CREATE,\n PERMISSIONS.PRODUCT_CATEGORIES_READ,\n PERMISSIONS.PRODUCT_CATEGORIES_UPDATE,\n PERMISSIONS.PRODUCT_CATEGORIES_DELETE,\n PERMISSIONS.SALES_CREATE,\n PERMISSIONS.SALES_READ,\n PERMISSIONS.SALES_UPDATE,\n PERMISSIONS.SUPPLIERS_CREATE,\n PERMISSIONS.SUPPLIERS_READ,\n PERMISSIONS.SUPPLIERS_UPDATE,\n PERMISSIONS.SUPPLIERS_DELETE,\n PERMISSIONS.PAYMENT_METHODS_CREATE,\n PERMISSIONS.PAYMENT_METHODS_READ,\n PERMISSIONS.PAYMENT_METHODS_UPDATE,\n PERMISSIONS.PAYMENT_METHODS_DELETE,\n ],\n} as const;\n\n// Cache TTL values (in seconds)\nexport const CACHE_TTL = {\n USER_PERMISSIONS: 900, // 15 minutes\n GYM_DATA: 1800, // 30 minutes\n STATIC_DATA: 3600, // 60 minutes\n REPORTS: 300, // 5 minutes\n DASHBOARD: 180, // 3 minutes\n WHATSAPP_MESSAGE_STATUS: 300, // 5 minutes\n} as const;\n\n// File size limits (in bytes)\nexport const FILE_LIMITS = {\n MAX_FILE_SIZE: 10 * 1024 * 1024, // 10MB\n MAX_IMAGE_SIZE: 5 * 1024 * 1024, // 5MB\n MAX_DOCUMENT_SIZE: 10 * 1024 * 1024, // 10MB\n} as const;\n\n// Pagination defaults\nexport const PAGINATION_DEFAULTS = {\n PAGE: 1,\n LIMIT: 20,\n MAX_LIMIT: 100,\n} as const;\n\n// Date formats\nexport const DATE_FORMATS = {\n DATE_ONLY: 'YYYY-MM-DD',\n DATETIME: 'YYYY-MM-DD HH:mm:ss',\n TIME_ONLY: 'HH:mm:ss',\n} as const;\n\n// Headers\nexport const HEADERS = {\n GYM_ID: 'X-Gym-Id',\n REQUEST_ID: 'X-Request-Id',\n} as const;\n\n// Re-export template constants\nexport * from './constants/template-codes.constants';\n","export enum RoleNames {\n ADMIN = 'Admin',\n ENCARGADO = 'Encargado',\n OWNER = 'OWNER', // Pseudo-role for gym owners\n}\n\nexport const ROLE_NAMES = RoleNames;\n\nexport type RoleName = RoleNames;\n\nexport function isAdminRole(roleName: string | null | undefined): boolean {\n return roleName === RoleNames.ADMIN;\n}\n\nexport function isEncargadoRole(roleName: string | null | undefined): boolean {\n return roleName === RoleNames.ENCARGADO;\n}\n\nexport function canAccessFeature(\n userRole: string | null | undefined,\n allowedRoles: string[] | RoleNames[]\n): boolean {\n if (!userRole) return false;\n // OWNER pseudo-role has access to everything\n if (userRole === RoleNames.OWNER) return true;\n return allowedRoles.includes(userRole as any);\n}\n\nexport function getRoleDisplayName(roleName: string | null | undefined): string {\n if (!roleName) return '';\n\n switch (roleName) {\n case RoleNames.ADMIN:\n return 'Administrador';\n case RoleNames.ENCARGADO:\n return 'Encargado';\n case RoleNames.OWNER:\n return 'Propietario';\n default:\n return roleName;\n }\n}\n\nexport function getRoleDescription(roleName: string | null | undefined): string {\n if (!roleName) return '';\n\n switch (roleName) {\n case RoleNames.ADMIN:\n return 'Acceso completo a todas las funcionalidades del gimnasio, gestión de colaboradores y configuración';\n case RoleNames.ENCARGADO:\n return 'Gestión diaria del gimnasio: clientes, contratos, check-ins y reportes';\n case RoleNames.OWNER:\n return 'Acceso completo a todas las funcionalidades, organización y suscripción';\n default:\n return '';\n }\n}\n\nexport function getRoleCapabilities(roleName: string | null | undefined): string[] {\n if (!roleName) return [];\n\n switch (roleName) {\n case RoleNames.OWNER:\n return [\n 'Acceso completo a todas las funcionalidades',\n 'Gestión de organización',\n 'Gestión de suscripción y facturación',\n 'Gestión completa de clientes',\n 'Gestión completa de contratos',\n 'Gestión de colaboradores',\n 'Configuración del gimnasio',\n 'Gestión de planes',\n 'Gestión de proveedores',\n 'Gestión de métodos de pago',\n 'Reportes y estadísticas',\n 'Gestión de inventario',\n 'Check-ins',\n ];\n case RoleNames.ADMIN:\n return [\n 'Gestión completa de clientes',\n 'Gestión completa de contratos',\n 'Gestión de colaboradores',\n 'Configuración del gimnasio',\n 'Gestión de planes',\n 'Gestión de proveedores',\n 'Gestión de métodos de pago',\n 'Reportes y estadísticas',\n 'Gestión de inventario',\n 'Check-ins',\n ];\n case RoleNames.ENCARGADO:\n return [\n 'Gestión de clientes (ver, crear, editar)',\n 'Creación y renovación de contratos',\n 'Check-ins',\n 'Ver reportes',\n 'Gestión de inventario',\n 'Ventas',\n ];\n default:\n return [];\n }\n}","/**\n * Evento para enviar un mensaje de WhatsApp\n */\nexport interface WhatsAppMessageSendEventData {\n // Identificadores\n gymId: string;\n instanceName: string; // Nombre de la instancia de Evolution API\n\n // Destinatario\n phoneNumber: string;\n\n // Contenido\n content: string;\n\n // Metadata opcional\n clientId?: string;\n templateId?: string;\n variables?: Record<string, any>;\n\n // Usuario que generó el envío\n userId?: string;\n}\n\n/**\n * Nombres de eventos de WhatsApp\n */\nexport const WHATSAPP_EVENTS = {\n MESSAGE_SEND: 'whatsapp/message.send',\n MESSAGE_RECEIVED: 'whatsapp/message.received',\n CONNECTION_UPDATE: 'whatsapp/connection.update',\n} as const;\n","import { z } from 'zod';\n\nexport const templateGenerationRequestSchema = z.object({\n templateCode: z.string(),\n templateMetadata: z.object({\n title: z.string(),\n description: z.string(),\n variables: z.array(z.string()),\n exampleValues: z.record(z.string()),\n }),\n userPrompt: z.string().optional(),\n language: z.string().default('es'),\n});\n\nexport const aiGeneratedTemplateSchema = z.object({\n message: z.string().describe('Mensaje generado con variables en formato {{variable}}'),\n tone: z.enum(['professional', 'friendly', 'casual', 'urgent']).describe('Tono del mensaje'),\n usedVariables: z.array(z.string()).describe('Variables utilizadas en el mensaje'),\n suggestions: z.array(z.string()).optional().describe('Sugerencias adicionales'),\n});\n\nexport type TemplateGenerationRequest = z.infer<typeof templateGenerationRequestSchema>;\nexport type AIGeneratedTemplate = z.infer<typeof aiGeneratedTemplateSchema>;\n"]}
|