@gymspace/sdk 1.3.4 → 1.4.1

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.mjs CHANGED
@@ -2181,104 +2181,13 @@ var TemplateCode = {
2181
2181
  MEMBERSHIP_EXPIRING: "MEMBERSHIP_EXPIRING",
2182
2182
  PAYMENT_REMINDER: "PAYMENT_REMINDER",
2183
2183
  BIRTHDAY: "BIRTHDAY",
2184
- PAYMENT_RECEIPT: "PAYMENT_RECEIPT"
2184
+ PAYMENT_RECEIPT: "PAYMENT_RECEIPT",
2185
+ SHARE_CATALOG: "SHARE_CATALOG"
2185
2186
  };
2186
2187
  var TemplateType = {
2187
2188
  STATIC: "STATIC",
2188
2189
  PROMPT: "PROMPT"
2189
2190
  };
2190
- var UserType = /* @__PURE__ */ ((UserType2) => {
2191
- UserType2["OWNER"] = "owner";
2192
- UserType2["COLLABORATOR"] = "collaborator";
2193
- return UserType2;
2194
- })(UserType || {});
2195
- var SubscriptionStatus = /* @__PURE__ */ ((SubscriptionStatus2) => {
2196
- SubscriptionStatus2["ACTIVE"] = "active";
2197
- SubscriptionStatus2["INACTIVE"] = "inactive";
2198
- SubscriptionStatus2["EXPIRED"] = "expired";
2199
- SubscriptionStatus2["PAUSED"] = "paused";
2200
- SubscriptionStatus2["PENDING_UPGRADE"] = "pending_upgrade";
2201
- return SubscriptionStatus2;
2202
- })(SubscriptionStatus || {});
2203
- var CollaboratorStatus = /* @__PURE__ */ ((CollaboratorStatus2) => {
2204
- CollaboratorStatus2["PENDING"] = "pending";
2205
- CollaboratorStatus2["ACTIVE"] = "active";
2206
- CollaboratorStatus2["INACTIVE"] = "inactive";
2207
- return CollaboratorStatus2;
2208
- })(CollaboratorStatus || {});
2209
- var InvitationStatus = /* @__PURE__ */ ((InvitationStatus2) => {
2210
- InvitationStatus2["PENDING"] = "pending";
2211
- InvitationStatus2["ACCEPTED"] = "accepted";
2212
- InvitationStatus2["CANCELLED"] = "cancelled";
2213
- InvitationStatus2["EXPIRED"] = "expired";
2214
- return InvitationStatus2;
2215
- })(InvitationStatus || {});
2216
- var ClientStatus = /* @__PURE__ */ ((ClientStatus2) => {
2217
- ClientStatus2["ACTIVE"] = "active";
2218
- ClientStatus2["INACTIVE"] = "inactive";
2219
- return ClientStatus2;
2220
- })(ClientStatus || {});
2221
- var PlanStatus = /* @__PURE__ */ ((PlanStatus2) => {
2222
- PlanStatus2["ACTIVE"] = "active";
2223
- PlanStatus2["INACTIVE"] = "inactive";
2224
- PlanStatus2["ARCHIVED"] = "archived";
2225
- return PlanStatus2;
2226
- })(PlanStatus || {});
2227
- var ContractStatus = /* @__PURE__ */ ((ContractStatus2) => {
2228
- ContractStatus2["PENDING"] = "pending";
2229
- ContractStatus2["ACTIVE"] = "active";
2230
- ContractStatus2["EXPIRING_SOON"] = "expiring_soon";
2231
- ContractStatus2["EXPIRED"] = "expired";
2232
- ContractStatus2["CANCELLED"] = "cancelled";
2233
- ContractStatus2["FOR_RENEW"] = "for_renew";
2234
- ContractStatus2["SUSPENDED"] = "suspended";
2235
- ContractStatus2["GRACE_PERIOD"] = "grace_period";
2236
- ContractStatus2["TERMINATED"] = "terminated";
2237
- return ContractStatus2;
2238
- })(ContractStatus || {});
2239
- var CancellationReason = /* @__PURE__ */ ((CancellationReason2) => {
2240
- CancellationReason2["PRICE_TOO_HIGH"] = "PRICE_TOO_HIGH";
2241
- CancellationReason2["NOT_USING_SERVICE"] = "NOT_USING_SERVICE";
2242
- CancellationReason2["MOVING_LOCATION"] = "MOVING_LOCATION";
2243
- CancellationReason2["FINANCIAL_ISSUES"] = "FINANCIAL_ISSUES";
2244
- CancellationReason2["SERVICE_DISSATISFACTION"] = "SERVICE_DISSATISFACTION";
2245
- CancellationReason2["TEMPORARY_BREAK"] = "TEMPORARY_BREAK";
2246
- CancellationReason2["OTHER"] = "OTHER";
2247
- return CancellationReason2;
2248
- })(CancellationReason || {});
2249
- var SuspensionType = /* @__PURE__ */ ((SuspensionType2) => {
2250
- SuspensionType2["VACATION"] = "vacation";
2251
- SuspensionType2["MEDICAL"] = "medical";
2252
- SuspensionType2["FINANCIAL"] = "financial";
2253
- SuspensionType2["OTHER"] = "other";
2254
- return SuspensionType2;
2255
- })(SuspensionType || {});
2256
- var PaymentFrequency = /* @__PURE__ */ ((PaymentFrequency2) => {
2257
- PaymentFrequency2["MONTHLY"] = "monthly";
2258
- PaymentFrequency2["QUARTERLY"] = "quarterly";
2259
- PaymentFrequency2["ANNUAL"] = "annual";
2260
- return PaymentFrequency2;
2261
- })(PaymentFrequency || {});
2262
- var AssetStatus = /* @__PURE__ */ ((AssetStatus2) => {
2263
- AssetStatus2["ACTIVE"] = "active";
2264
- AssetStatus2["DELETED"] = "deleted";
2265
- return AssetStatus2;
2266
- })(AssetStatus || {});
2267
- var AssetCategory = /* @__PURE__ */ ((AssetCategory2) => {
2268
- AssetCategory2["MEDICAL_DOCUMENT"] = "medical_document";
2269
- AssetCategory2["IDENTIFICATION"] = "identification";
2270
- AssetCategory2["INSURANCE"] = "insurance";
2271
- AssetCategory2["CONTRACT_COPY"] = "contract_copy";
2272
- AssetCategory2["OTHER"] = "other";
2273
- return AssetCategory2;
2274
- })(AssetCategory || {});
2275
- var ContractAssetType = /* @__PURE__ */ ((ContractAssetType2) => {
2276
- ContractAssetType2["PAYMENT_RECEIPT"] = "payment_receipt";
2277
- ContractAssetType2["CONTRACT_DOCUMENT"] = "contract_document";
2278
- ContractAssetType2["IDENTIFICATION"] = "identification";
2279
- ContractAssetType2["OTHER"] = "other";
2280
- return ContractAssetType2;
2281
- })(ContractAssetType || {});
2282
2191
  var TEMPLATE_CODES = {
2283
2192
  WELCOME: TemplateCode.WELCOME,
2284
2193
  MEMBERSHIP_PURCHASE: TemplateCode.MEMBERSHIP_PURCHASE,
@@ -2286,7 +2195,8 @@ var TEMPLATE_CODES = {
2286
2195
  MEMBERSHIP_EXPIRING: TemplateCode.MEMBERSHIP_EXPIRING,
2287
2196
  PAYMENT_REMINDER: TemplateCode.PAYMENT_REMINDER,
2288
2197
  BIRTHDAY: TemplateCode.BIRTHDAY,
2289
- PAYMENT_RECEIPT: TemplateCode.PAYMENT_RECEIPT
2198
+ PAYMENT_RECEIPT: TemplateCode.PAYMENT_RECEIPT,
2199
+ SHARE_CATALOG: TemplateCode.SHARE_CATALOG
2290
2200
  };
2291
2201
  var WHATSAPP_TEMPLATE_EVENTS = {
2292
2202
  SEND_TEMPLATE: "whatsapp/template.send",
@@ -2395,6 +2305,18 @@ var TEMPLATE_METADATA = {
2395
2305
  amount: "Q150.00",
2396
2306
  paymentMethod: "Efectivo"
2397
2307
  }
2308
+ },
2309
+ [TemplateCode.SHARE_CATALOG]: {
2310
+ code: TemplateCode.SHARE_CATALOG,
2311
+ title: "Compartir Cat\xE1logo",
2312
+ description: "Mensaje para compartir cat\xE1logo de membres\xEDas",
2313
+ icon: "Share2",
2314
+ variables: ["clientName", "gymName", "urlCatalog"],
2315
+ exampleValues: {
2316
+ clientName: "Roberto G\xF3mez",
2317
+ gymName: "GymSpace",
2318
+ urlCatalog: "https://gymspace.app/catalog/gym-123"
2319
+ }
2398
2320
  }
2399
2321
  };
2400
2322
  var BULK_MESSAGE_VARIABLES = [
@@ -2527,24 +2449,124 @@ var BULK_MESSAGE_VARIABLES = [
2527
2449
  category: "datetime",
2528
2450
  required: false,
2529
2451
  formatter: "text"
2452
+ }
2453
+ ];
2454
+ var ACTIVITY_MESSAGE_VARIABLES = [
2455
+ {
2456
+ name: "activityName",
2457
+ placeholder: "{{activityName}}",
2458
+ description: "Nombre de la actividad",
2459
+ example: "Yoga Matutino",
2460
+ category: "activity",
2461
+ required: false,
2462
+ formatter: "text"
2530
2463
  },
2531
- // Variables Personalizadas
2532
2464
  {
2533
- name: "customField",
2534
- placeholder: "{{customField}}",
2535
- description: "Campo personalizado del cliente",
2536
- example: "Valor personalizado",
2537
- category: "custom",
2465
+ name: "activityDescription",
2466
+ placeholder: "{{activityDescription}}",
2467
+ description: "Descripci\xF3n de la actividad",
2468
+ example: "Sesi\xF3n de yoga para principiantes",
2469
+ category: "activity",
2470
+ required: false,
2471
+ formatter: "text"
2472
+ },
2473
+ {
2474
+ name: "activityStartDate",
2475
+ placeholder: "{{activityStartDate}}",
2476
+ description: "Fecha de inicio de la actividad",
2477
+ example: "15/10/2024",
2478
+ category: "activity",
2479
+ required: false,
2480
+ formatter: "date"
2481
+ },
2482
+ {
2483
+ name: "activityStartTime",
2484
+ placeholder: "{{activityStartTime}}",
2485
+ description: "Hora de inicio de la actividad",
2486
+ example: "08:00",
2487
+ category: "activity",
2488
+ required: false,
2489
+ formatter: "text"
2490
+ },
2491
+ {
2492
+ name: "activityStartDateTime",
2493
+ placeholder: "{{activityStartDateTime}}",
2494
+ description: "Fecha y hora de inicio de la actividad",
2495
+ example: "15/10/2024 08:00",
2496
+ category: "activity",
2497
+ required: false,
2498
+ formatter: "datetime"
2499
+ },
2500
+ {
2501
+ name: "activityDuration",
2502
+ placeholder: "{{activityDuration}}",
2503
+ description: "Duraci\xF3n de la actividad en minutos",
2504
+ example: "60",
2505
+ category: "activity",
2506
+ required: false,
2507
+ formatter: "number"
2508
+ },
2509
+ {
2510
+ name: "activityMaxParticipants",
2511
+ placeholder: "{{activityMaxParticipants}}",
2512
+ description: "N\xFAmero m\xE1ximo de participantes",
2513
+ example: "20",
2514
+ category: "activity",
2515
+ required: false,
2516
+ formatter: "number"
2517
+ },
2518
+ {
2519
+ name: "activityLocation",
2520
+ placeholder: "{{activityLocation}}",
2521
+ description: "Ubicaci\xF3n de la actividad",
2522
+ example: "Av. Principal 123",
2523
+ category: "activity",
2524
+ required: false,
2525
+ formatter: "text"
2526
+ },
2527
+ {
2528
+ name: "timeUntilActivity",
2529
+ placeholder: "{{timeUntilActivity}}",
2530
+ description: "Tiempo restante hasta la actividad",
2531
+ example: "2 horas",
2532
+ category: "activity",
2538
2533
  required: false,
2539
2534
  formatter: "text"
2540
2535
  }
2541
2536
  ];
2537
+ var VARIABLE_CONTEXT_MAP = {
2538
+ bulk: BULK_MESSAGE_VARIABLES,
2539
+ activity: [...BULK_MESSAGE_VARIABLES, ...ACTIVITY_MESSAGE_VARIABLES],
2540
+ event: BULK_MESSAGE_VARIABLES,
2541
+ // Para futuros eventos
2542
+ reminder: BULK_MESSAGE_VARIABLES
2543
+ // Para futuros recordatorios
2544
+ };
2545
+ function getVariablesByContext(context) {
2546
+ return VARIABLE_CONTEXT_MAP[context] || BULK_MESSAGE_VARIABLES;
2547
+ }
2548
+ function validateVariablesInContext(message, context) {
2549
+ const variablePattern = /{{(\w+)}}/g;
2550
+ const matches = message.matchAll(variablePattern);
2551
+ const invalidVariables = [];
2552
+ const validVariables = getVariablesByContext(context).map((v) => v.name);
2553
+ for (const match of matches) {
2554
+ const variableName = match[1];
2555
+ if (!validVariables.includes(variableName)) {
2556
+ invalidVariables.push(variableName);
2557
+ }
2558
+ }
2559
+ return {
2560
+ valid: invalidVariables.length === 0,
2561
+ invalidVariables
2562
+ };
2563
+ }
2542
2564
  var BULK_MESSAGE_VARIABLE_CATEGORIES = {
2543
2565
  client: "Cliente",
2544
2566
  gym: "Gimnasio",
2545
2567
  membership: "Membres\xEDa",
2546
- datetime: "Fecha/Hora",
2547
- custom: "Personalizado"
2568
+ activity: "Actividad",
2569
+ datetime: "Fecha/Hora"
2548
2570
  };
2549
2571
  var PERMISSIONS = {
2550
2572
  // Organizations
@@ -2631,6 +2653,20 @@ var PERMISSIONS = {
2631
2653
  TAGS_READ: "TAGS_READ",
2632
2654
  TAGS_UPDATE: "TAGS_UPDATE",
2633
2655
  TAGS_DELETE: "TAGS_DELETE",
2656
+ // Commissions
2657
+ COMMISSIONS_CONFIG_CREATE: "COMMISSIONS_CONFIG_CREATE",
2658
+ COMMISSIONS_CONFIG_READ: "COMMISSIONS_CONFIG_READ",
2659
+ COMMISSIONS_CONFIG_UPDATE: "COMMISSIONS_CONFIG_UPDATE",
2660
+ COMMISSIONS_RULES_CREATE: "COMMISSIONS_RULES_CREATE",
2661
+ COMMISSIONS_RULES_READ: "COMMISSIONS_RULES_READ",
2662
+ COMMISSIONS_RULES_UPDATE: "COMMISSIONS_RULES_UPDATE",
2663
+ COMMISSIONS_RULES_DELETE: "COMMISSIONS_RULES_DELETE",
2664
+ COMMISSIONS_CALCULATIONS_READ: "COMMISSIONS_CALCULATIONS_READ",
2665
+ COMMISSIONS_REPORTS_VIEW: "COMMISSIONS_REPORTS_VIEW",
2666
+ // Catalog
2667
+ CATALOG_READ: "CATALOG_READ",
2668
+ CATALOG_UPDATE: "CATALOG_UPDATE",
2669
+ CATALOG_MANAGE: "CATALOG_MANAGE",
2634
2670
  // Special permissions
2635
2671
  SUPER_ADMIN: "SUPER_ADMIN",
2636
2672
  OWNER: "OWNER",
@@ -2673,7 +2709,9 @@ var ROLE_PERMISSIONS = {
2673
2709
  PERMISSIONS.PAYMENT_METHODS_CREATE,
2674
2710
  PERMISSIONS.PAYMENT_METHODS_READ,
2675
2711
  PERMISSIONS.PAYMENT_METHODS_UPDATE,
2676
- PERMISSIONS.PAYMENT_METHODS_DELETE
2712
+ PERMISSIONS.PAYMENT_METHODS_DELETE,
2713
+ PERMISSIONS.COMMISSIONS_RULES_READ,
2714
+ PERMISSIONS.COMMISSIONS_CALCULATIONS_READ
2677
2715
  ]
2678
2716
  };
2679
2717
  var CACHE_TTL = {
@@ -2687,7 +2725,11 @@ var CACHE_TTL = {
2687
2725
  // 5 minutes
2688
2726
  DASHBOARD: 18e4,
2689
2727
  // 3 minutes
2690
- WHATSAPP_MESSAGE_STATUS: 3e5
2728
+ WHATSAPP_MESSAGE_STATUS: 3e5,
2729
+ // 5 minutes
2730
+ ONBOARDING_STATUS: 36e5,
2731
+ // 1 hour
2732
+ ONBOARDING_LOCK: 3e5
2691
2733
  // 5 minutes
2692
2734
  };
2693
2735
  var FILE_LIMITS = {
@@ -2712,6 +2754,155 @@ var HEADERS = {
2712
2754
  GYM_ID: "X-Gym-Id",
2713
2755
  REQUEST_ID: "X-Request-Id"
2714
2756
  };
2757
+ var UserType = /* @__PURE__ */ ((UserType2) => {
2758
+ UserType2["OWNER"] = "owner";
2759
+ UserType2["COLLABORATOR"] = "collaborator";
2760
+ return UserType2;
2761
+ })(UserType || {});
2762
+ var SubscriptionStatus = /* @__PURE__ */ ((SubscriptionStatus2) => {
2763
+ SubscriptionStatus2["ACTIVE"] = "active";
2764
+ SubscriptionStatus2["INACTIVE"] = "inactive";
2765
+ SubscriptionStatus2["EXPIRED"] = "expired";
2766
+ SubscriptionStatus2["PAUSED"] = "paused";
2767
+ SubscriptionStatus2["PENDING_UPGRADE"] = "pending_upgrade";
2768
+ return SubscriptionStatus2;
2769
+ })(SubscriptionStatus || {});
2770
+ var CollaboratorStatus = /* @__PURE__ */ ((CollaboratorStatus2) => {
2771
+ CollaboratorStatus2["PENDING"] = "pending";
2772
+ CollaboratorStatus2["ACTIVE"] = "active";
2773
+ CollaboratorStatus2["INACTIVE"] = "inactive";
2774
+ return CollaboratorStatus2;
2775
+ })(CollaboratorStatus || {});
2776
+ var InvitationStatus = /* @__PURE__ */ ((InvitationStatus2) => {
2777
+ InvitationStatus2["PENDING"] = "pending";
2778
+ InvitationStatus2["ACCEPTED"] = "accepted";
2779
+ InvitationStatus2["CANCELLED"] = "cancelled";
2780
+ InvitationStatus2["EXPIRED"] = "expired";
2781
+ return InvitationStatus2;
2782
+ })(InvitationStatus || {});
2783
+ var ClientStatus = /* @__PURE__ */ ((ClientStatus2) => {
2784
+ ClientStatus2["ACTIVE"] = "active";
2785
+ ClientStatus2["INACTIVE"] = "inactive";
2786
+ return ClientStatus2;
2787
+ })(ClientStatus || {});
2788
+ var PlanStatus = /* @__PURE__ */ ((PlanStatus2) => {
2789
+ PlanStatus2["ACTIVE"] = "active";
2790
+ PlanStatus2["INACTIVE"] = "inactive";
2791
+ PlanStatus2["ARCHIVED"] = "archived";
2792
+ return PlanStatus2;
2793
+ })(PlanStatus || {});
2794
+ var PlanType = /* @__PURE__ */ ((PlanType2) => {
2795
+ PlanType2["BASIC"] = "BASIC";
2796
+ PlanType2["PREMIUM"] = "PREMIUM";
2797
+ PlanType2["ENTERPRISE"] = "ENTERPRISE";
2798
+ return PlanType2;
2799
+ })(PlanType || {});
2800
+ var ContractStatus = /* @__PURE__ */ ((ContractStatus2) => {
2801
+ ContractStatus2["PENDING"] = "pending";
2802
+ ContractStatus2["ACTIVE"] = "active";
2803
+ ContractStatus2["EXPIRING_SOON"] = "expiring_soon";
2804
+ ContractStatus2["EXPIRED"] = "expired";
2805
+ ContractStatus2["CANCELLED"] = "cancelled";
2806
+ ContractStatus2["FOR_RENEW"] = "for_renew";
2807
+ ContractStatus2["SUSPENDED"] = "suspended";
2808
+ ContractStatus2["GRACE_PERIOD"] = "grace_period";
2809
+ ContractStatus2["TERMINATED"] = "terminated";
2810
+ return ContractStatus2;
2811
+ })(ContractStatus || {});
2812
+ var CancellationReason = /* @__PURE__ */ ((CancellationReason2) => {
2813
+ CancellationReason2["PRICE_TOO_HIGH"] = "PRICE_TOO_HIGH";
2814
+ CancellationReason2["NOT_USING_SERVICE"] = "NOT_USING_SERVICE";
2815
+ CancellationReason2["MOVING_LOCATION"] = "MOVING_LOCATION";
2816
+ CancellationReason2["FINANCIAL_ISSUES"] = "FINANCIAL_ISSUES";
2817
+ CancellationReason2["SERVICE_DISSATISFACTION"] = "SERVICE_DISSATISFACTION";
2818
+ CancellationReason2["TEMPORARY_BREAK"] = "TEMPORARY_BREAK";
2819
+ CancellationReason2["OTHER"] = "OTHER";
2820
+ return CancellationReason2;
2821
+ })(CancellationReason || {});
2822
+ var SuspensionType = /* @__PURE__ */ ((SuspensionType2) => {
2823
+ SuspensionType2["VACATION"] = "vacation";
2824
+ SuspensionType2["MEDICAL"] = "medical";
2825
+ SuspensionType2["FINANCIAL"] = "financial";
2826
+ SuspensionType2["OTHER"] = "other";
2827
+ return SuspensionType2;
2828
+ })(SuspensionType || {});
2829
+ var PaymentFrequency = /* @__PURE__ */ ((PaymentFrequency2) => {
2830
+ PaymentFrequency2["MONTHLY"] = "monthly";
2831
+ PaymentFrequency2["QUARTERLY"] = "quarterly";
2832
+ PaymentFrequency2["ANNUAL"] = "annual";
2833
+ return PaymentFrequency2;
2834
+ })(PaymentFrequency || {});
2835
+ var AssetStatus = /* @__PURE__ */ ((AssetStatus2) => {
2836
+ AssetStatus2["ACTIVE"] = "active";
2837
+ AssetStatus2["DELETED"] = "deleted";
2838
+ return AssetStatus2;
2839
+ })(AssetStatus || {});
2840
+ var AssetCategory = /* @__PURE__ */ ((AssetCategory2) => {
2841
+ AssetCategory2["MEDICAL_DOCUMENT"] = "medical_document";
2842
+ AssetCategory2["IDENTIFICATION"] = "identification";
2843
+ AssetCategory2["INSURANCE"] = "insurance";
2844
+ AssetCategory2["CONTRACT_COPY"] = "contract_copy";
2845
+ AssetCategory2["OTHER"] = "other";
2846
+ return AssetCategory2;
2847
+ })(AssetCategory || {});
2848
+ var ContractAssetType = /* @__PURE__ */ ((ContractAssetType2) => {
2849
+ ContractAssetType2["PAYMENT_RECEIPT"] = "payment_receipt";
2850
+ ContractAssetType2["CONTRACT_DOCUMENT"] = "contract_document";
2851
+ ContractAssetType2["IDENTIFICATION"] = "identification";
2852
+ ContractAssetType2["OTHER"] = "other";
2853
+ return ContractAssetType2;
2854
+ })(ContractAssetType || {});
2855
+ var WHATSAPP_EVENTS = {
2856
+ MESSAGE_SEND: "whatsapp/message.send",
2857
+ MESSAGE_RECEIVED: "whatsapp/message.received",
2858
+ CONNECTION_UPDATE: "whatsapp/connection.update"
2859
+ };
2860
+ var BULK_MESSAGING_EVENTS = {
2861
+ SEND_BULK_MESSAGES: "whatsapp/bulk-messages.send"
2862
+ };
2863
+ var ACTIVITY_EVENTS = {
2864
+ SEND_ACTIVITY_NOTIFICATION: "activity/notification.send"
2865
+ };
2866
+ var templateGenerationRequestSchema = z.object({
2867
+ templateCode: z.string(),
2868
+ templateMetadata: z.object({
2869
+ title: z.string(),
2870
+ description: z.string(),
2871
+ variables: z.array(z.string()),
2872
+ exampleValues: z.record(z.string())
2873
+ }),
2874
+ userPrompt: z.string().optional(),
2875
+ language: z.string().default("es")
2876
+ });
2877
+ var aiGeneratedTemplateSchema = z.object({
2878
+ message: z.string().describe("Mensaje generado con variables en formato {{variable}}"),
2879
+ tone: z.enum(["professional", "friendly", "casual", "urgent"]).describe("Tono del mensaje"),
2880
+ usedVariables: z.array(z.string()).describe("Variables utilizadas en el mensaje"),
2881
+ suggestions: z.array(z.string()).optional().describe("Sugerencias adicionales")
2882
+ });
2883
+ var bulkMessageGenerationRequestSchema = z.object({
2884
+ prompt: z.string().describe("Prompt or context for message generation"),
2885
+ tone: z.enum(["promotional", "informational", "reminder", "greeting", "friendly"]).optional().describe("Tone of the message"),
2886
+ includeVariables: z.array(z.string()).optional().describe("Variables to include in the message"),
2887
+ additionalRequirements: z.string().optional().describe("Additional requirements for the message"),
2888
+ language: z.string().default("es").describe("Language for generation")
2889
+ });
2890
+ var bulkMessageSchema = z.object({
2891
+ message: z.string().describe("Generated message with variables"),
2892
+ tone: z.enum(["promotional", "informational", "reminder", "greeting", "friendly"]).describe("Tone of the message"),
2893
+ usedVariables: z.array(z.string()).describe("Variables used in the message"),
2894
+ suggestions: z.array(z.string()).optional().describe("Additional message suggestions")
2895
+ });
2896
+ var activityNotificationGenerationRequestSchema = z.object({
2897
+ prompt: z.string().describe("Prompt or context for notification generation"),
2898
+ tone: z.enum(["friendly", "formal", "urgent", "motivational", "reminder"]).optional().describe("Tone of the notification"),
2899
+ currentMessage: z.string().optional().describe("Current message to improve or use as reference"),
2900
+ additionalRequirements: z.string().optional().describe("Additional requirements for the notification"),
2901
+ language: z.string().default("es").describe("Language for generation")
2902
+ });
2903
+ var activityNotificationSchema = z.object({
2904
+ message: z.string().describe("Generated notification message with activity variables")
2905
+ });
2715
2906
  var RoleNames = /* @__PURE__ */ ((RoleNames2) => {
2716
2907
  RoleNames2["ADMIN"] = "Admin";
2717
2908
  RoleNames2["ENCARGADO"] = "Encargado";
@@ -2801,48 +2992,36 @@ function getRoleCapabilities(roleName) {
2801
2992
  return [];
2802
2993
  }
2803
2994
  }
2804
- var WHATSAPP_EVENTS = {
2805
- MESSAGE_SEND: "whatsapp/message.send",
2806
- MESSAGE_RECEIVED: "whatsapp/message.received",
2807
- CONNECTION_UPDATE: "whatsapp/connection.update"
2808
- };
2809
- var BULK_MESSAGING_EVENTS = {
2810
- GENERATE_BULK_MESSAGE: "whatsapp/bulk-message.generate",
2811
- SEND_BULK_MESSAGES: "whatsapp/bulk-messages.send"
2812
- };
2813
- var ACTIVITY_EVENTS = {
2814
- SEND_ACTIVITY_NOTIFICATION: "activity/notification.send"
2815
- };
2816
- var templateGenerationRequestSchema = z.object({
2817
- templateCode: z.string(),
2818
- templateMetadata: z.object({
2819
- title: z.string(),
2820
- description: z.string(),
2821
- variables: z.array(z.string()),
2822
- exampleValues: z.record(z.string())
2823
- }),
2824
- userPrompt: z.string().optional(),
2825
- language: z.string().default("es")
2826
- });
2827
- var aiGeneratedTemplateSchema = z.object({
2828
- message: z.string().describe("Mensaje generado con variables en formato {{variable}}"),
2829
- tone: z.enum(["professional", "friendly", "casual", "urgent"]).describe("Tono del mensaje"),
2830
- usedVariables: z.array(z.string()).describe("Variables utilizadas en el mensaje"),
2831
- suggestions: z.array(z.string()).optional().describe("Sugerencias adicionales")
2832
- });
2833
- var bulkMessageGenerationRequestSchema = z.object({
2834
- prompt: z.string().describe("Prompt or context for message generation"),
2835
- tone: z.enum(["promotional", "informational", "reminder", "greeting", "friendly"]).optional().describe("Tone of the message"),
2836
- includeVariables: z.array(z.string()).optional().describe("Variables to include in the message"),
2837
- additionalRequirements: z.string().optional().describe("Additional requirements for the message"),
2838
- language: z.string().default("es").describe("Language for generation")
2839
- });
2840
- var bulkMessageSchema = z.object({
2841
- message: z.string().describe("Generated message with variables"),
2842
- tone: z.enum(["promotional", "informational", "reminder", "greeting", "friendly"]).describe("Tone of the message"),
2843
- usedVariables: z.array(z.string()).describe("Variables used in the message"),
2844
- suggestions: z.array(z.string()).optional().describe("Additional message suggestions")
2845
- });
2995
+ function normalizePhoneForEvolution(phoneNumber) {
2996
+ if (!phoneNumber) {
2997
+ throw new Error("Phone number is required");
2998
+ }
2999
+ let cleaned = phoneNumber.replace(/[^\d+]/g, "");
3000
+ if (cleaned.startsWith("+")) {
3001
+ cleaned = cleaned.substring(1);
3002
+ }
3003
+ if (cleaned.length === 9) {
3004
+ return `+51${cleaned}`;
3005
+ }
3006
+ if (cleaned.length === 11 && cleaned.startsWith("51")) {
3007
+ return `+${cleaned}`;
3008
+ }
3009
+ if (cleaned.length === 12 && cleaned.startsWith("051")) {
3010
+ return `+${cleaned.substring(1)}`;
3011
+ }
3012
+ if (!cleaned.startsWith("+")) {
3013
+ return `+${cleaned}`;
3014
+ }
3015
+ return cleaned;
3016
+ }
3017
+ function isValidPeruvianPhone(phoneNumber) {
3018
+ try {
3019
+ const normalized = normalizePhoneForEvolution(phoneNumber);
3020
+ return /^\+51[9]\d{8}$/.test(normalized);
3021
+ } catch {
3022
+ return false;
3023
+ }
3024
+ }
2846
3025
 
2847
3026
  // src/models/commissions.ts
2848
3027
  var CommissionRuleType = /* @__PURE__ */ ((CommissionRuleType2) => {
@@ -2878,6 +3057,6 @@ var LeadGender = /* @__PURE__ */ ((LeadGender2) => {
2878
3057
  return LeadGender2;
2879
3058
  })(LeadGender || {});
2880
3059
 
2881
- export { ACTIVITY_EVENTS, ActivitiesResource, AdminCatalogResource, AdminSubscriptionManagementResource, ApiClient, AssetCategory, AssetStatus, AssetsResource, AuthResource, AuthenticationError, AuthorizationError, BULK_MESSAGE_VARIABLES, BULK_MESSAGE_VARIABLE_CATEGORIES, BULK_MESSAGING_EVENTS, BulkMessagingResource, CACHE_TTL, CancellationReason, CheckInsResource, ClientStatus, ClientsResource, CollaboratorStatus, CollaboratorsResource, CommissionCalculationsResource, CommissionChangeType, CommissionConfigResource, CommissionEntityType, CommissionPromotionsResource, CommissionReportsResource, CommissionRuleType, CommissionRulesResource, CommissionStatus, ContractAssetType, ContractStatus, ContractsResource, DATE_FORMATS, DashboardResource, FILE_LIMITS, FilesResource, GymSpaceError, GymSpaceSdk, GymsResource, HEADERS, HealthResource, InvitationStatus, InvitationsResource, LeadGender, MembershipPlansResource, NetworkError, NotFoundError, OnboardingCacheStatus, OnboardingResource, OnboardingStep, OrganizationsResource, PAGINATION_DEFAULTS, PERMISSIONS, PaymentFrequency, PaymentMethodsResource, PlanStatus, ProductsResource, PublicCatalogResource, ROLE_NAMES, ROLE_PERMISSIONS, RoleNames, RolesResource, SalesResource, SubscriptionPlansResource, SubscriptionStatus, SubscriptionsResource, SuppliersResource, SuspensionType, TEMPLATE_CODES, TEMPLATE_METADATA, TagsResource, TemplateCode, TemplateType, UserType, UsersResource, ValidationError, WHATSAPP_EVENTS, WHATSAPP_TEMPLATE_EVENTS, WhatsAppResource, WhatsAppTemplatesResource, aiGeneratedTemplateSchema, bulkMessageGenerationRequestSchema, bulkMessageSchema, canAccessFeature, getRoleCapabilities, getRoleDescription, getRoleDisplayName, isAdminRole, isEncargadoRole, templateGenerationRequestSchema };
3060
+ export { ACTIVITY_EVENTS, ACTIVITY_MESSAGE_VARIABLES, ActivitiesResource, AdminCatalogResource, AdminSubscriptionManagementResource, ApiClient, AssetCategory, AssetStatus, AssetsResource, AuthResource, AuthenticationError, AuthorizationError, BULK_MESSAGE_VARIABLES, BULK_MESSAGE_VARIABLE_CATEGORIES, BULK_MESSAGING_EVENTS, BulkMessagingResource, CACHE_TTL, CancellationReason, CheckInsResource, ClientStatus, ClientsResource, CollaboratorStatus, CollaboratorsResource, CommissionCalculationsResource, CommissionChangeType, CommissionConfigResource, CommissionEntityType, CommissionPromotionsResource, CommissionReportsResource, CommissionRuleType, CommissionRulesResource, CommissionStatus, ContractAssetType, ContractStatus, ContractsResource, DATE_FORMATS, DashboardResource, FILE_LIMITS, FilesResource, GymSpaceError, GymSpaceSdk, GymsResource, HEADERS, HealthResource, InvitationStatus, InvitationsResource, LeadGender, MembershipPlansResource, NetworkError, NotFoundError, OnboardingCacheStatus, OnboardingResource, OnboardingStep, OrganizationsResource, PAGINATION_DEFAULTS, PERMISSIONS, PaymentFrequency, PaymentMethodsResource, PlanStatus, PlanType, ProductsResource, PublicCatalogResource, ROLE_NAMES, ROLE_PERMISSIONS, RoleNames, RolesResource, SalesResource, SubscriptionPlansResource, SubscriptionStatus, SubscriptionsResource, SuppliersResource, SuspensionType, TEMPLATE_CODES, TEMPLATE_METADATA, TagsResource, TemplateCode, TemplateType, UserType, UsersResource, VARIABLE_CONTEXT_MAP, ValidationError, WHATSAPP_EVENTS, WHATSAPP_TEMPLATE_EVENTS, WhatsAppResource, WhatsAppTemplatesResource, activityNotificationGenerationRequestSchema, activityNotificationSchema, aiGeneratedTemplateSchema, bulkMessageGenerationRequestSchema, bulkMessageSchema, canAccessFeature, getRoleCapabilities, getRoleDescription, getRoleDisplayName, getVariablesByContext, isAdminRole, isEncargadoRole, isValidPeruvianPhone, normalizePhoneForEvolution, templateGenerationRequestSchema, validateVariablesInContext };
2882
3061
  //# sourceMappingURL=index.mjs.map
2883
3062
  //# sourceMappingURL=index.mjs.map