@gymspace/sdk 1.2.15 → 1.2.18

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.js CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var axios = require('axios');
4
+ var zod = require('zod');
4
5
 
5
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
7
 
@@ -61,6 +62,23 @@ var ApiClient = class {
61
62
  headers: {
62
63
  "Content-Type": "application/json",
63
64
  ...config.headers
65
+ },
66
+ paramsSerializer: (params) => {
67
+ const parts = [];
68
+ Object.entries(params).forEach(([key, value]) => {
69
+ if (value === void 0 || value === null) {
70
+ return;
71
+ }
72
+ if (Array.isArray(value)) {
73
+ if (value.length > 0) {
74
+ const encodedValues = value.map((v) => encodeURIComponent(String(v))).join(",");
75
+ parts.push(`${encodeURIComponent(key)}=${encodedValues}`);
76
+ }
77
+ } else {
78
+ parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
79
+ }
80
+ });
81
+ return parts.join("&");
64
82
  }
65
83
  });
66
84
  this.setupInterceptors();
@@ -1706,6 +1724,224 @@ var TagsResource = class extends BaseResource {
1706
1724
  }
1707
1725
  };
1708
1726
 
1727
+ // src/resources/commission-config.ts
1728
+ var CommissionConfigResource = class extends BaseResource {
1729
+ constructor() {
1730
+ super(...arguments);
1731
+ this.basePath = "commissions/config";
1732
+ }
1733
+ async createConfig(data, options) {
1734
+ return this.client.post(this.basePath, data, options);
1735
+ }
1736
+ async getActiveConfig(options) {
1737
+ return this.client.get(`${this.basePath}/active`, void 0, options);
1738
+ }
1739
+ async getConfig(id, options) {
1740
+ return this.client.get(`${this.basePath}/${id}`, void 0, options);
1741
+ }
1742
+ async listConfigs(params, options) {
1743
+ return this.paginate(this.basePath, params, options);
1744
+ }
1745
+ async updateConfig(id, data, options) {
1746
+ return this.client.put(`${this.basePath}/${id}`, data, options);
1747
+ }
1748
+ async deactivateConfig(id, options) {
1749
+ return this.client.put(`${this.basePath}/${id}/deactivate`, {}, options);
1750
+ }
1751
+ async getConfigHistory(id, params, options) {
1752
+ return this.paginate(`${this.basePath}/${id}/history`, params, options);
1753
+ }
1754
+ async validateConfig(data, options) {
1755
+ return this.client.post(
1756
+ `${this.basePath}/validate`,
1757
+ data,
1758
+ options
1759
+ );
1760
+ }
1761
+ };
1762
+
1763
+ // src/resources/commission-rules.ts
1764
+ var CommissionRulesResource = class extends BaseResource {
1765
+ constructor() {
1766
+ super(...arguments);
1767
+ this.basePath = "commissions/rules";
1768
+ }
1769
+ async createRule(data, options) {
1770
+ return this.client.post(this.basePath, data, options);
1771
+ }
1772
+ async getRule(id, options) {
1773
+ return this.client.get(`${this.basePath}/${id}`, void 0, options);
1774
+ }
1775
+ async listRules(params, options) {
1776
+ return this.paginate(this.basePath, params, options);
1777
+ }
1778
+ async updateRule(id, data, options) {
1779
+ return this.client.put(`${this.basePath}/${id}`, data, options);
1780
+ }
1781
+ async deleteRule(id, options) {
1782
+ return this.client.delete(`${this.basePath}/${id}`, options);
1783
+ }
1784
+ async activateRule(id, options) {
1785
+ return this.client.put(`${this.basePath}/${id}/activate`, {}, options);
1786
+ }
1787
+ async deactivateRule(id, options) {
1788
+ return this.client.put(`${this.basePath}/${id}/deactivate`, {}, options);
1789
+ }
1790
+ async getRuleHistory(id, params, options) {
1791
+ return this.paginate(`${this.basePath}/${id}/history`, params, options);
1792
+ }
1793
+ async validateRule(data, options) {
1794
+ return this.client.post(
1795
+ `${this.basePath}/validate`,
1796
+ data,
1797
+ options
1798
+ );
1799
+ }
1800
+ async getMyRules(options) {
1801
+ return this.client.get(`${this.basePath}/me`, void 0, options);
1802
+ }
1803
+ async getApplicableRule(params, options) {
1804
+ return this.client.get(
1805
+ `${this.basePath}/applicable`,
1806
+ params,
1807
+ options
1808
+ );
1809
+ }
1810
+ async reorderRules(data, options) {
1811
+ return this.client.patch(`${this.basePath}/reorder`, data, options);
1812
+ }
1813
+ };
1814
+
1815
+ // src/resources/commission-calculations.ts
1816
+ var CommissionCalculationsResource = class extends BaseResource {
1817
+ constructor() {
1818
+ super(...arguments);
1819
+ this.basePath = "commissions/calculations";
1820
+ }
1821
+ async createCalculation(data, options) {
1822
+ return this.client.post(this.basePath, data, options);
1823
+ }
1824
+ async getCalculation(id, options) {
1825
+ return this.client.get(`${this.basePath}/${id}`, void 0, options);
1826
+ }
1827
+ async getCalculations(params, options) {
1828
+ return this.paginate(this.basePath, params, options);
1829
+ }
1830
+ async getCollaboratorCalculations(collaboratorId, params, options) {
1831
+ return this.paginate(
1832
+ `${this.basePath}/collaborator/${collaboratorId}`,
1833
+ params,
1834
+ options
1835
+ );
1836
+ }
1837
+ async confirmCalculation(id, data, options) {
1838
+ return this.client.put(
1839
+ `${this.basePath}/${id}/confirm`,
1840
+ data,
1841
+ options
1842
+ );
1843
+ }
1844
+ async reverseCalculation(id, data, options) {
1845
+ return this.client.put(
1846
+ `${this.basePath}/${id}/reverse`,
1847
+ data,
1848
+ options
1849
+ );
1850
+ }
1851
+ async markAsPaid(id, data, options) {
1852
+ return this.client.put(`${this.basePath}/${id}/paid`, data, options);
1853
+ }
1854
+ async simulate(data, options) {
1855
+ return this.client.post("commissions/simulator", data, options);
1856
+ }
1857
+ async getMyCommissions(params, options) {
1858
+ return this.paginate("commissions/me", params, options);
1859
+ }
1860
+ async getMyCommissionsSummary(options) {
1861
+ return this.client.get("commissions/me/summary", void 0, options);
1862
+ }
1863
+ };
1864
+
1865
+ // src/resources/commission-reports.ts
1866
+ var CommissionReportsResource = class extends BaseResource {
1867
+ constructor() {
1868
+ super(...arguments);
1869
+ this.basePath = "commissions/reports";
1870
+ }
1871
+ async getSummary(params, options) {
1872
+ return this.client.get(`${this.basePath}/summary`, params, options);
1873
+ }
1874
+ async getByRule(params, options) {
1875
+ return this.client.get(`${this.basePath}/by-rule`, params, options);
1876
+ }
1877
+ async getByCollaborator(params, options) {
1878
+ return this.client.get(
1879
+ `${this.basePath}/by-collaborator`,
1880
+ params,
1881
+ options
1882
+ );
1883
+ }
1884
+ async getPromotionAnalytics(params, options) {
1885
+ return this.client.get(`${this.basePath}/promotions`, params, options);
1886
+ }
1887
+ async exportToCSV(params, options) {
1888
+ return this.client.get(`${this.basePath}/export/csv`, params, options);
1889
+ }
1890
+ async getTrends(params, options) {
1891
+ return this.client.get(
1892
+ `${this.basePath}/trends`,
1893
+ params,
1894
+ options
1895
+ );
1896
+ }
1897
+ async getTopPerformers(params, options) {
1898
+ return this.client.get(
1899
+ `${this.basePath}/top-performers`,
1900
+ params,
1901
+ options
1902
+ );
1903
+ }
1904
+ };
1905
+
1906
+ // src/resources/commission-promotions.ts
1907
+ var CommissionPromotionsResource = class extends BaseResource {
1908
+ constructor() {
1909
+ super(...arguments);
1910
+ this.basePath = "commissions/promotions";
1911
+ }
1912
+ async createPromotion(data, options) {
1913
+ return this.client.post(this.basePath, data, options);
1914
+ }
1915
+ async getPromotion(id, options) {
1916
+ return this.client.get(`${this.basePath}/${id}`, void 0, options);
1917
+ }
1918
+ async listPromotions(params, options) {
1919
+ return this.paginate(this.basePath, params, options);
1920
+ }
1921
+ async updatePromotion(id, data, options) {
1922
+ return this.client.put(`${this.basePath}/${id}`, data, options);
1923
+ }
1924
+ async deletePromotion(id, options) {
1925
+ return this.client.delete(`${this.basePath}/${id}`, options);
1926
+ }
1927
+ async activatePromotion(id, options) {
1928
+ return this.client.put(`${this.basePath}/${id}/activate`, {}, options);
1929
+ }
1930
+ async deactivatePromotion(id, options) {
1931
+ return this.client.put(`${this.basePath}/${id}/deactivate`, {}, options);
1932
+ }
1933
+ async validatePromotion(data, options) {
1934
+ return this.client.post(
1935
+ `${this.basePath}/validate`,
1936
+ data,
1937
+ options
1938
+ );
1939
+ }
1940
+ async estimateImpact(id, options) {
1941
+ return this.client.get(`${this.basePath}/${id}/impact`, void 0, options);
1942
+ }
1943
+ };
1944
+
1709
1945
  // src/sdk.ts
1710
1946
  var GymSpaceSdk = class {
1711
1947
  constructor(config) {
@@ -1739,6 +1975,11 @@ var GymSpaceSdk = class {
1739
1975
  this.bulkMessaging = new BulkMessagingResource(this.client);
1740
1976
  this.activities = new ActivitiesResource(this.client);
1741
1977
  this.tags = new TagsResource(this.client);
1978
+ this.commissionConfig = new CommissionConfigResource(this.client);
1979
+ this.commissionRules = new CommissionRulesResource(this.client);
1980
+ this.commissionCalculations = new CommissionCalculationsResource(this.client);
1981
+ this.commissionReports = new CommissionReportsResource(this.client);
1982
+ this.commissionPromotions = new CommissionPromotionsResource(this.client);
1742
1983
  }
1743
1984
  /**
1744
1985
  * Set the authentication token
@@ -1798,8 +2039,19 @@ var GymSpaceSdk = class {
1798
2039
  return this.client;
1799
2040
  }
1800
2041
  };
1801
-
1802
- // node_modules/@gymspace/shared/dist/index.mjs
2042
+ var TemplateCode = {
2043
+ WELCOME: "WELCOME",
2044
+ MEMBERSHIP_PURCHASE: "MEMBERSHIP_PURCHASE",
2045
+ MEMBERSHIP_RENEWAL: "MEMBERSHIP_RENEWAL",
2046
+ MEMBERSHIP_EXPIRING: "MEMBERSHIP_EXPIRING",
2047
+ PAYMENT_REMINDER: "PAYMENT_REMINDER",
2048
+ BIRTHDAY: "BIRTHDAY",
2049
+ PAYMENT_RECEIPT: "PAYMENT_RECEIPT"
2050
+ };
2051
+ var TemplateType = {
2052
+ STATIC: "STATIC",
2053
+ PROMPT: "PROMPT"
2054
+ };
1803
2055
  var UserType = /* @__PURE__ */ ((UserType2) => {
1804
2056
  UserType2["OWNER"] = "owner";
1805
2057
  UserType2["COLLABORATOR"] = "collaborator";
@@ -1844,8 +2096,28 @@ var ContractStatus = /* @__PURE__ */ ((ContractStatus2) => {
1844
2096
  ContractStatus2["EXPIRED"] = "expired";
1845
2097
  ContractStatus2["CANCELLED"] = "cancelled";
1846
2098
  ContractStatus2["FOR_RENEW"] = "for_renew";
2099
+ ContractStatus2["SUSPENDED"] = "suspended";
2100
+ ContractStatus2["GRACE_PERIOD"] = "grace_period";
2101
+ ContractStatus2["TERMINATED"] = "terminated";
1847
2102
  return ContractStatus2;
1848
2103
  })(ContractStatus || {});
2104
+ var CancellationReason = /* @__PURE__ */ ((CancellationReason2) => {
2105
+ CancellationReason2["PRICE_TOO_HIGH"] = "PRICE_TOO_HIGH";
2106
+ CancellationReason2["NOT_USING_SERVICE"] = "NOT_USING_SERVICE";
2107
+ CancellationReason2["MOVING_LOCATION"] = "MOVING_LOCATION";
2108
+ CancellationReason2["FINANCIAL_ISSUES"] = "FINANCIAL_ISSUES";
2109
+ CancellationReason2["SERVICE_DISSATISFACTION"] = "SERVICE_DISSATISFACTION";
2110
+ CancellationReason2["TEMPORARY_BREAK"] = "TEMPORARY_BREAK";
2111
+ CancellationReason2["OTHER"] = "OTHER";
2112
+ return CancellationReason2;
2113
+ })(CancellationReason || {});
2114
+ var SuspensionType = /* @__PURE__ */ ((SuspensionType2) => {
2115
+ SuspensionType2["VACATION"] = "vacation";
2116
+ SuspensionType2["MEDICAL"] = "medical";
2117
+ SuspensionType2["FINANCIAL"] = "financial";
2118
+ SuspensionType2["OTHER"] = "other";
2119
+ return SuspensionType2;
2120
+ })(SuspensionType || {});
1849
2121
  var PaymentFrequency = /* @__PURE__ */ ((PaymentFrequency2) => {
1850
2122
  PaymentFrequency2["MONTHLY"] = "monthly";
1851
2123
  PaymentFrequency2["QUARTERLY"] = "quarterly";
@@ -1857,27 +2129,6 @@ var AssetStatus = /* @__PURE__ */ ((AssetStatus2) => {
1857
2129
  AssetStatus2["DELETED"] = "deleted";
1858
2130
  return AssetStatus2;
1859
2131
  })(AssetStatus || {});
1860
- var EvaluationType = /* @__PURE__ */ ((EvaluationType2) => {
1861
- EvaluationType2["INITIAL"] = "initial";
1862
- EvaluationType2["PROGRESS"] = "progress";
1863
- EvaluationType2["FINAL"] = "final";
1864
- return EvaluationType2;
1865
- })(EvaluationType || {});
1866
- var EvaluationStatus = /* @__PURE__ */ ((EvaluationStatus2) => {
1867
- EvaluationStatus2["OPEN"] = "open";
1868
- EvaluationStatus2["IN_PROGRESS"] = "in_progress";
1869
- EvaluationStatus2["COMPLETED"] = "completed";
1870
- EvaluationStatus2["CANCELLED"] = "cancelled";
1871
- return EvaluationStatus2;
1872
- })(EvaluationStatus || {});
1873
- var CommentType = /* @__PURE__ */ ((CommentType2) => {
1874
- CommentType2["PROGRESS_NOTE"] = "progress_note";
1875
- CommentType2["PHONE_CALL"] = "phone_call";
1876
- CommentType2["MEETING"] = "meeting";
1877
- CommentType2["REMINDER"] = "reminder";
1878
- CommentType2["OTHER"] = "other";
1879
- return CommentType2;
1880
- })(CommentType || {});
1881
2132
  var AssetCategory = /* @__PURE__ */ ((AssetCategory2) => {
1882
2133
  AssetCategory2["MEDICAL_DOCUMENT"] = "medical_document";
1883
2134
  AssetCategory2["IDENTIFICATION"] = "identification";
@@ -1893,28 +2144,273 @@ var ContractAssetType = /* @__PURE__ */ ((ContractAssetType2) => {
1893
2144
  ContractAssetType2["OTHER"] = "other";
1894
2145
  return ContractAssetType2;
1895
2146
  })(ContractAssetType || {});
1896
- var EvaluationAssetStage = /* @__PURE__ */ ((EvaluationAssetStage2) => {
1897
- EvaluationAssetStage2["INITIAL"] = "initial";
1898
- EvaluationAssetStage2["PROGRESS"] = "progress";
1899
- EvaluationAssetStage2["FINAL"] = "final";
1900
- return EvaluationAssetStage2;
1901
- })(EvaluationAssetStage || {});
1902
- var EvaluationAssetCategory = /* @__PURE__ */ ((EvaluationAssetCategory2) => {
1903
- EvaluationAssetCategory2["BODY_PHOTO"] = "body_photo";
1904
- EvaluationAssetCategory2["MEASUREMENT_PHOTO"] = "measurement_photo";
1905
- EvaluationAssetCategory2["DOCUMENT"] = "document";
1906
- EvaluationAssetCategory2["REPORT"] = "report";
1907
- EvaluationAssetCategory2["OTHER"] = "other";
1908
- return EvaluationAssetCategory2;
1909
- })(EvaluationAssetCategory || {});
1910
- var LeadStatus = /* @__PURE__ */ ((LeadStatus2) => {
1911
- LeadStatus2["NEW"] = "NEW";
1912
- LeadStatus2["CONTACTED"] = "CONTACTED";
1913
- LeadStatus2["INTERESTED"] = "INTERESTED";
1914
- LeadStatus2["CONVERTED"] = "CONVERTED";
1915
- LeadStatus2["LOST"] = "LOST";
1916
- return LeadStatus2;
1917
- })(LeadStatus || {});
2147
+ var TEMPLATE_CODES = {
2148
+ WELCOME: TemplateCode.WELCOME,
2149
+ MEMBERSHIP_PURCHASE: TemplateCode.MEMBERSHIP_PURCHASE,
2150
+ MEMBERSHIP_RENEWAL: TemplateCode.MEMBERSHIP_RENEWAL,
2151
+ MEMBERSHIP_EXPIRING: TemplateCode.MEMBERSHIP_EXPIRING,
2152
+ PAYMENT_REMINDER: TemplateCode.PAYMENT_REMINDER,
2153
+ BIRTHDAY: TemplateCode.BIRTHDAY,
2154
+ PAYMENT_RECEIPT: TemplateCode.PAYMENT_RECEIPT
2155
+ };
2156
+ var WHATSAPP_TEMPLATE_EVENTS = {
2157
+ SEND_TEMPLATE: "whatsapp/template.send",
2158
+ TEMPLATE_SENT: "whatsapp/template.sent",
2159
+ TEMPLATE_FAILED: "whatsapp/template.failed"
2160
+ };
2161
+ var TEMPLATE_METADATA = {
2162
+ [TemplateCode.WELCOME]: {
2163
+ code: TemplateCode.WELCOME,
2164
+ title: "Mensaje de Bienvenida",
2165
+ description: "Mensaje para nuevos clientes",
2166
+ icon: "UserPlus",
2167
+ variables: ["clientName", "gymName", "registrationDate"],
2168
+ exampleValues: {
2169
+ clientName: "Juan P\xE9rez",
2170
+ gymName: "GymSpace",
2171
+ registrationDate: "15/01/2024"
2172
+ }
2173
+ },
2174
+ [TemplateCode.MEMBERSHIP_PURCHASE]: {
2175
+ code: TemplateCode.MEMBERSHIP_PURCHASE,
2176
+ title: "Compra de Membres\xEDa",
2177
+ description: "Confirmaci\xF3n de nueva membres\xEDa",
2178
+ icon: "ShoppingCart",
2179
+ variables: ["clientName", "planName", "startDate", "endDate", "amount", "paymentFrequency"],
2180
+ exampleValues: {
2181
+ clientName: "Mar\xEDa L\xF3pez",
2182
+ planName: "Premium",
2183
+ startDate: "01/02/2024",
2184
+ endDate: "01/03/2024",
2185
+ amount: "$50.00",
2186
+ paymentFrequency: "mensual"
2187
+ }
2188
+ },
2189
+ [TemplateCode.MEMBERSHIP_RENEWAL]: {
2190
+ code: TemplateCode.MEMBERSHIP_RENEWAL,
2191
+ title: "Renovaci\xF3n de Membres\xEDa",
2192
+ description: "Confirmaci\xF3n de renovaci\xF3n",
2193
+ icon: "RefreshCw",
2194
+ variables: ["clientName", "planName", "newEndDate", "amount"],
2195
+ exampleValues: {
2196
+ clientName: "Carlos Ruiz",
2197
+ planName: "B\xE1sico",
2198
+ newEndDate: "15/04/2024",
2199
+ amount: "$30.00"
2200
+ }
2201
+ },
2202
+ [TemplateCode.MEMBERSHIP_EXPIRING]: {
2203
+ code: TemplateCode.MEMBERSHIP_EXPIRING,
2204
+ title: "Membres\xEDa Por Vencer",
2205
+ description: "Recordatorio de expiraci\xF3n pr\xF3xima",
2206
+ icon: "AlertCircle",
2207
+ variables: ["clientName", "planName", "expirationDate", "daysRemaining"],
2208
+ exampleValues: {
2209
+ clientName: "Ana Garc\xEDa",
2210
+ planName: "Premium",
2211
+ expirationDate: "20/02/2024",
2212
+ daysRemaining: "3"
2213
+ }
2214
+ },
2215
+ [TemplateCode.PAYMENT_REMINDER]: {
2216
+ code: TemplateCode.PAYMENT_REMINDER,
2217
+ title: "Recordatorio de Pago",
2218
+ description: "Recordatorio de pago pendiente",
2219
+ icon: "DollarSign",
2220
+ variables: ["clientName", "amount", "dueDate", "planName"],
2221
+ exampleValues: {
2222
+ clientName: "Pedro S\xE1nchez",
2223
+ amount: "$40.00",
2224
+ dueDate: "25/02/2024",
2225
+ planName: "Est\xE1ndar"
2226
+ }
2227
+ },
2228
+ [TemplateCode.BIRTHDAY]: {
2229
+ code: TemplateCode.BIRTHDAY,
2230
+ title: "Cumplea\xF1os",
2231
+ description: "Felicitaci\xF3n de cumplea\xF1os",
2232
+ icon: "Cake",
2233
+ variables: ["clientName", "gymName", "age"],
2234
+ exampleValues: {
2235
+ clientName: "Laura Mart\xEDnez",
2236
+ gymName: "GymSpace",
2237
+ age: "28"
2238
+ }
2239
+ },
2240
+ [TemplateCode.PAYMENT_RECEIPT]: {
2241
+ code: TemplateCode.PAYMENT_RECEIPT,
2242
+ title: "Comprobante de Pago",
2243
+ description: "Comprobante de venta pagada",
2244
+ icon: "Receipt",
2245
+ variables: [
2246
+ "gymName",
2247
+ "receiptNumber",
2248
+ "date",
2249
+ "clientName",
2250
+ "items",
2251
+ "amount",
2252
+ "paymentMethod"
2253
+ ],
2254
+ exampleValues: {
2255
+ gymName: "GymSpace",
2256
+ receiptNumber: "V-001",
2257
+ date: "15/01/2024",
2258
+ clientName: "Juan P\xE9rez",
2259
+ items: "\u2022 Prote\xEDna x2 = Q100.00\n\u2022 Creatina x1 = Q50.00",
2260
+ amount: "Q150.00",
2261
+ paymentMethod: "Efectivo"
2262
+ }
2263
+ }
2264
+ };
2265
+ var BULK_MESSAGE_VARIABLES = [
2266
+ // Variables de Cliente
2267
+ {
2268
+ name: "clientName",
2269
+ placeholder: "{{clientName}}",
2270
+ description: "Nombre completo del cliente",
2271
+ example: "Juan P\xE9rez",
2272
+ category: "client",
2273
+ required: false,
2274
+ formatter: "text"
2275
+ },
2276
+ {
2277
+ name: "clientEmail",
2278
+ placeholder: "{{clientEmail}}",
2279
+ description: "Email del cliente",
2280
+ example: "juan@example.com",
2281
+ category: "client",
2282
+ required: false,
2283
+ formatter: "text"
2284
+ },
2285
+ {
2286
+ name: "clientPhone",
2287
+ placeholder: "{{clientPhone}}",
2288
+ description: "Tel\xE9fono del cliente",
2289
+ example: "+51 999 999 999",
2290
+ category: "client",
2291
+ required: false,
2292
+ formatter: "text"
2293
+ },
2294
+ // Variables de Gimnasio
2295
+ {
2296
+ name: "gymName",
2297
+ placeholder: "{{gymName}}",
2298
+ description: "Nombre del gimnasio",
2299
+ example: "Gym Fitness",
2300
+ category: "gym",
2301
+ required: false,
2302
+ formatter: "text"
2303
+ },
2304
+ {
2305
+ name: "gymPhone",
2306
+ placeholder: "{{gymPhone}}",
2307
+ description: "Tel\xE9fono del gimnasio",
2308
+ example: "+51 999 888 777",
2309
+ category: "gym",
2310
+ required: false,
2311
+ formatter: "text"
2312
+ },
2313
+ {
2314
+ name: "gymAddress",
2315
+ placeholder: "{{gymAddress}}",
2316
+ description: "Direcci\xF3n del gimnasio",
2317
+ example: "Av. Principal 123",
2318
+ category: "gym",
2319
+ required: false,
2320
+ formatter: "text"
2321
+ },
2322
+ // Variables de Membresía
2323
+ {
2324
+ name: "planName",
2325
+ placeholder: "{{planName}}",
2326
+ description: "Nombre del plan de membres\xEDa",
2327
+ example: "Plan Premium",
2328
+ category: "membership",
2329
+ required: false,
2330
+ formatter: "text"
2331
+ },
2332
+ {
2333
+ name: "membershipStatus",
2334
+ placeholder: "{{membershipStatus}}",
2335
+ description: "Estado de la membres\xEDa",
2336
+ example: "Activa",
2337
+ category: "membership",
2338
+ required: false,
2339
+ formatter: "text"
2340
+ },
2341
+ {
2342
+ name: "daysUntilExpiration",
2343
+ placeholder: "{{daysUntilExpiration}}",
2344
+ description: "D\xEDas restantes hasta vencimiento",
2345
+ example: "15",
2346
+ category: "membership",
2347
+ required: false,
2348
+ formatter: "number"
2349
+ },
2350
+ {
2351
+ name: "expirationDate",
2352
+ placeholder: "{{expirationDate}}",
2353
+ description: "Fecha de vencimiento",
2354
+ example: "31/12/2024",
2355
+ category: "membership",
2356
+ required: false,
2357
+ formatter: "date"
2358
+ },
2359
+ {
2360
+ name: "amount",
2361
+ placeholder: "{{amount}}",
2362
+ description: "Monto con formato de moneda",
2363
+ example: "S/ 150.00",
2364
+ category: "membership",
2365
+ required: false,
2366
+ formatter: "currency"
2367
+ },
2368
+ // Variables de Fecha/Hora
2369
+ {
2370
+ name: "date",
2371
+ placeholder: "{{date}}",
2372
+ description: "Fecha actual",
2373
+ example: "15/10/2024",
2374
+ category: "datetime",
2375
+ required: false,
2376
+ formatter: "date"
2377
+ },
2378
+ {
2379
+ name: "time",
2380
+ placeholder: "{{time}}",
2381
+ description: "Hora actual",
2382
+ example: "14:30",
2383
+ category: "datetime",
2384
+ required: false,
2385
+ formatter: "text"
2386
+ },
2387
+ {
2388
+ name: "dayOfWeek",
2389
+ placeholder: "{{dayOfWeek}}",
2390
+ description: "D\xEDa de la semana",
2391
+ example: "Lunes",
2392
+ category: "datetime",
2393
+ required: false,
2394
+ formatter: "text"
2395
+ },
2396
+ // Variables Personalizadas
2397
+ {
2398
+ name: "customField",
2399
+ placeholder: "{{customField}}",
2400
+ description: "Campo personalizado del cliente",
2401
+ example: "Valor personalizado",
2402
+ category: "custom",
2403
+ required: false,
2404
+ formatter: "text"
2405
+ }
2406
+ ];
2407
+ var BULK_MESSAGE_VARIABLE_CATEGORIES = {
2408
+ client: "Cliente",
2409
+ gym: "Gimnasio",
2410
+ membership: "Membres\xEDa",
2411
+ datetime: "Fecha/Hora",
2412
+ custom: "Personalizado"
2413
+ };
1918
2414
  var PERMISSIONS = {
1919
2415
  // Organizations
1920
2416
  ORGANIZATIONS_CREATE: "ORGANIZATIONS_CREATE",
@@ -1942,19 +2438,9 @@ var PERMISSIONS = {
1942
2438
  CONTRACTS_UPDATE: "CONTRACTS_UPDATE",
1943
2439
  CONTRACTS_APPROVE: "CONTRACTS_APPROVE",
1944
2440
  CONTRACTS_CANCEL: "CONTRACTS_CANCEL",
1945
- // Evaluations
1946
- EVALUATIONS_CREATE: "EVALUATIONS_CREATE",
1947
- EVALUATIONS_READ: "EVALUATIONS_READ",
1948
- EVALUATIONS_UPDATE: "EVALUATIONS_UPDATE",
1949
- EVALUATIONS_DELETE: "EVALUATIONS_DELETE",
1950
2441
  // Check-ins
1951
2442
  CHECKINS_CREATE: "CHECKINS_CREATE",
1952
2443
  CHECKINS_READ: "CHECKINS_READ",
1953
- // Leads
1954
- LEADS_CREATE: "LEADS_CREATE",
1955
- LEADS_READ: "LEADS_READ",
1956
- LEADS_UPDATE: "LEADS_UPDATE",
1957
- LEADS_DELETE: "LEADS_DELETE",
1958
2444
  // Reports
1959
2445
  REPORTS_VIEW: "REPORTS_VIEW",
1960
2446
  REPORTS_FINANCIAL: "REPORTS_FINANCIAL",
@@ -1993,6 +2479,23 @@ var PERMISSIONS = {
1993
2479
  PAYMENT_METHODS_READ: "PAYMENT_METHODS_READ",
1994
2480
  PAYMENT_METHODS_UPDATE: "PAYMENT_METHODS_UPDATE",
1995
2481
  PAYMENT_METHODS_DELETE: "PAYMENT_METHODS_DELETE",
2482
+ // WhatsApp
2483
+ WHATSAPP_READ: "WHATSAPP_READ",
2484
+ WHATSAPP_SEND: "WHATSAPP_SEND",
2485
+ WHATSAPP_MANAGE: "WHATSAPP_MANAGE",
2486
+ WHATSAPP_BULK_SEND: "WHATSAPP_BULK_SEND",
2487
+ WHATSAPP_BULK_MANAGE: "WHATSAPP_BULK_MANAGE",
2488
+ // Activities
2489
+ ACTIVITIES_CREATE: "ACTIVITIES_CREATE",
2490
+ ACTIVITIES_READ: "ACTIVITIES_READ",
2491
+ ACTIVITIES_UPDATE: "ACTIVITIES_UPDATE",
2492
+ ACTIVITIES_DELETE: "ACTIVITIES_DELETE",
2493
+ ACTIVITIES_MANAGE_NOTIFICATIONS: "ACTIVITIES_MANAGE_NOTIFICATIONS",
2494
+ // Tags
2495
+ TAGS_CREATE: "TAGS_CREATE",
2496
+ TAGS_READ: "TAGS_READ",
2497
+ TAGS_UPDATE: "TAGS_UPDATE",
2498
+ TAGS_DELETE: "TAGS_DELETE",
1996
2499
  // Special permissions
1997
2500
  SUPER_ADMIN: "SUPER_ADMIN",
1998
2501
  OWNER: "OWNER",
@@ -2008,9 +2511,6 @@ var ROLE_PERMISSIONS = {
2008
2511
  PERMISSIONS.CLIENTS_UPDATE,
2009
2512
  PERMISSIONS.CONTRACTS_CREATE,
2010
2513
  PERMISSIONS.CONTRACTS_READ,
2011
- PERMISSIONS.EVALUATIONS_CREATE,
2012
- PERMISSIONS.EVALUATIONS_READ,
2013
- PERMISSIONS.EVALUATIONS_UPDATE,
2014
2514
  PERMISSIONS.CHECKINS_CREATE,
2015
2515
  PERMISSIONS.CHECKINS_READ,
2016
2516
  PERMISSIONS.REPORTS_VIEW,
@@ -2042,16 +2542,18 @@ var ROLE_PERMISSIONS = {
2042
2542
  ]
2043
2543
  };
2044
2544
  var CACHE_TTL = {
2045
- USER_PERMISSIONS: 900,
2545
+ USER_PERMISSIONS: 9e5,
2046
2546
  // 15 minutes
2047
- GYM_DATA: 1800,
2547
+ GYM_DATA: 18e5,
2048
2548
  // 30 minutes
2049
- STATIC_DATA: 3600,
2549
+ STATIC_DATA: 36e5,
2050
2550
  // 60 minutes
2051
- REPORTS: 300,
2551
+ REPORTS: 3e5,
2052
2552
  // 5 minutes
2053
- DASHBOARD: 180
2553
+ DASHBOARD: 18e4,
2054
2554
  // 3 minutes
2555
+ WHATSAPP_MESSAGE_STATUS: 3e5
2556
+ // 5 minutes
2055
2557
  };
2056
2558
  var FILE_LIMITS = {
2057
2559
  MAX_FILE_SIZE: 10 * 1024 * 1024,
@@ -2164,25 +2666,48 @@ function getRoleCapabilities(roleName) {
2164
2666
  return [];
2165
2667
  }
2166
2668
  }
2167
-
2168
- // src/models/contracts.ts
2169
- var CancellationReason = /* @__PURE__ */ ((CancellationReason2) => {
2170
- CancellationReason2["PRICE_TOO_HIGH"] = "PRICE_TOO_HIGH";
2171
- CancellationReason2["NOT_USING_SERVICE"] = "NOT_USING_SERVICE";
2172
- CancellationReason2["MOVING_LOCATION"] = "MOVING_LOCATION";
2173
- CancellationReason2["FINANCIAL_ISSUES"] = "FINANCIAL_ISSUES";
2174
- CancellationReason2["SERVICE_DISSATISFACTION"] = "SERVICE_DISSATISFACTION";
2175
- CancellationReason2["TEMPORARY_BREAK"] = "TEMPORARY_BREAK";
2176
- CancellationReason2["OTHER"] = "OTHER";
2177
- return CancellationReason2;
2178
- })(CancellationReason || {});
2179
- var SuspensionType = /* @__PURE__ */ ((SuspensionType2) => {
2180
- SuspensionType2["VACATION"] = "vacation";
2181
- SuspensionType2["MEDICAL"] = "medical";
2182
- SuspensionType2["FINANCIAL"] = "financial";
2183
- SuspensionType2["OTHER"] = "other";
2184
- return SuspensionType2;
2185
- })(SuspensionType || {});
2669
+ var WHATSAPP_EVENTS = {
2670
+ MESSAGE_SEND: "whatsapp/message.send",
2671
+ MESSAGE_RECEIVED: "whatsapp/message.received",
2672
+ CONNECTION_UPDATE: "whatsapp/connection.update"
2673
+ };
2674
+ var BULK_MESSAGING_EVENTS = {
2675
+ GENERATE_BULK_MESSAGE: "whatsapp/bulk-message.generate",
2676
+ SEND_BULK_MESSAGES: "whatsapp/bulk-messages.send"
2677
+ };
2678
+ var ACTIVITY_EVENTS = {
2679
+ SEND_ACTIVITY_NOTIFICATION: "activity/notification.send"
2680
+ };
2681
+ var templateGenerationRequestSchema = zod.z.object({
2682
+ templateCode: zod.z.string(),
2683
+ templateMetadata: zod.z.object({
2684
+ title: zod.z.string(),
2685
+ description: zod.z.string(),
2686
+ variables: zod.z.array(zod.z.string()),
2687
+ exampleValues: zod.z.record(zod.z.string())
2688
+ }),
2689
+ userPrompt: zod.z.string().optional(),
2690
+ language: zod.z.string().default("es")
2691
+ });
2692
+ var aiGeneratedTemplateSchema = zod.z.object({
2693
+ message: zod.z.string().describe("Mensaje generado con variables en formato {{variable}}"),
2694
+ tone: zod.z.enum(["professional", "friendly", "casual", "urgent"]).describe("Tono del mensaje"),
2695
+ usedVariables: zod.z.array(zod.z.string()).describe("Variables utilizadas en el mensaje"),
2696
+ suggestions: zod.z.array(zod.z.string()).optional().describe("Sugerencias adicionales")
2697
+ });
2698
+ var bulkMessageGenerationRequestSchema = zod.z.object({
2699
+ prompt: zod.z.string().describe("Prompt or context for message generation"),
2700
+ tone: zod.z.enum(["promotional", "informational", "reminder", "greeting", "friendly"]).optional().describe("Tone of the message"),
2701
+ includeVariables: zod.z.array(zod.z.string()).optional().describe("Variables to include in the message"),
2702
+ additionalRequirements: zod.z.string().optional().describe("Additional requirements for the message"),
2703
+ language: zod.z.string().default("es").describe("Language for generation")
2704
+ });
2705
+ var bulkMessageSchema = zod.z.object({
2706
+ message: zod.z.string().describe("Generated message with variables"),
2707
+ tone: zod.z.enum(["promotional", "informational", "reminder", "greeting", "friendly"]).describe("Tone of the message"),
2708
+ usedVariables: zod.z.array(zod.z.string()).describe("Variables used in the message"),
2709
+ suggestions: zod.z.array(zod.z.string()).optional().describe("Additional message suggestions")
2710
+ });
2186
2711
 
2187
2712
  // src/models/onboarding.ts
2188
2713
  var OnboardingStep = /* @__PURE__ */ ((OnboardingStep2) => {
@@ -2193,6 +2718,33 @@ var OnboardingStep = /* @__PURE__ */ ((OnboardingStep2) => {
2193
2718
  return OnboardingStep2;
2194
2719
  })(OnboardingStep || {});
2195
2720
 
2721
+ // src/models/commissions.ts
2722
+ var CommissionRuleType = /* @__PURE__ */ ((CommissionRuleType2) => {
2723
+ CommissionRuleType2["PLAN"] = "PLAN";
2724
+ CommissionRuleType2["AMOUNT"] = "AMOUNT";
2725
+ CommissionRuleType2["PROMOTION"] = "PROMOTION";
2726
+ return CommissionRuleType2;
2727
+ })(CommissionRuleType || {});
2728
+ var CommissionStatus = /* @__PURE__ */ ((CommissionStatus2) => {
2729
+ CommissionStatus2["PENDING"] = "PENDING";
2730
+ CommissionStatus2["CONFIRMED"] = "CONFIRMED";
2731
+ CommissionStatus2["PAID"] = "PAID";
2732
+ CommissionStatus2["REVERSED"] = "REVERSED";
2733
+ return CommissionStatus2;
2734
+ })(CommissionStatus || {});
2735
+ var CommissionChangeType = /* @__PURE__ */ ((CommissionChangeType2) => {
2736
+ CommissionChangeType2["CREATED"] = "CREATED";
2737
+ CommissionChangeType2["UPDATED"] = "UPDATED";
2738
+ CommissionChangeType2["DELETED"] = "DELETED";
2739
+ return CommissionChangeType2;
2740
+ })(CommissionChangeType || {});
2741
+ var CommissionEntityType = /* @__PURE__ */ ((CommissionEntityType2) => {
2742
+ CommissionEntityType2["CONFIG"] = "CONFIG";
2743
+ CommissionEntityType2["RULE"] = "RULE";
2744
+ return CommissionEntityType2;
2745
+ })(CommissionEntityType || {});
2746
+
2747
+ exports.ACTIVITY_EVENTS = ACTIVITY_EVENTS;
2196
2748
  exports.ActivitiesResource = ActivitiesResource;
2197
2749
  exports.AdminSubscriptionManagementResource = AdminSubscriptionManagementResource;
2198
2750
  exports.ApiClient = ApiClient;
@@ -2202,6 +2754,9 @@ exports.AssetsResource = AssetsResource;
2202
2754
  exports.AuthResource = AuthResource;
2203
2755
  exports.AuthenticationError = AuthenticationError;
2204
2756
  exports.AuthorizationError = AuthorizationError;
2757
+ exports.BULK_MESSAGE_VARIABLES = BULK_MESSAGE_VARIABLES;
2758
+ exports.BULK_MESSAGE_VARIABLE_CATEGORIES = BULK_MESSAGE_VARIABLE_CATEGORIES;
2759
+ exports.BULK_MESSAGING_EVENTS = BULK_MESSAGING_EVENTS;
2205
2760
  exports.BulkMessagingResource = BulkMessagingResource;
2206
2761
  exports.CACHE_TTL = CACHE_TTL;
2207
2762
  exports.CancellationReason = CancellationReason;
@@ -2210,16 +2765,20 @@ exports.ClientStatus = ClientStatus;
2210
2765
  exports.ClientsResource = ClientsResource;
2211
2766
  exports.CollaboratorStatus = CollaboratorStatus;
2212
2767
  exports.CollaboratorsResource = CollaboratorsResource;
2213
- exports.CommentType = CommentType;
2768
+ exports.CommissionCalculationsResource = CommissionCalculationsResource;
2769
+ exports.CommissionChangeType = CommissionChangeType;
2770
+ exports.CommissionConfigResource = CommissionConfigResource;
2771
+ exports.CommissionEntityType = CommissionEntityType;
2772
+ exports.CommissionPromotionsResource = CommissionPromotionsResource;
2773
+ exports.CommissionReportsResource = CommissionReportsResource;
2774
+ exports.CommissionRuleType = CommissionRuleType;
2775
+ exports.CommissionRulesResource = CommissionRulesResource;
2776
+ exports.CommissionStatus = CommissionStatus;
2214
2777
  exports.ContractAssetType = ContractAssetType;
2215
2778
  exports.ContractStatus = ContractStatus;
2216
2779
  exports.ContractsResource = ContractsResource;
2217
2780
  exports.DATE_FORMATS = DATE_FORMATS;
2218
2781
  exports.DashboardResource = DashboardResource;
2219
- exports.EvaluationAssetCategory = EvaluationAssetCategory;
2220
- exports.EvaluationAssetStage = EvaluationAssetStage;
2221
- exports.EvaluationStatus = EvaluationStatus;
2222
- exports.EvaluationType = EvaluationType;
2223
2782
  exports.FILE_LIMITS = FILE_LIMITS;
2224
2783
  exports.FilesResource = FilesResource;
2225
2784
  exports.GymSpaceError = GymSpaceError;
@@ -2229,7 +2788,6 @@ exports.HEADERS = HEADERS;
2229
2788
  exports.HealthResource = HealthResource;
2230
2789
  exports.InvitationStatus = InvitationStatus;
2231
2790
  exports.InvitationsResource = InvitationsResource;
2232
- exports.LeadStatus = LeadStatus;
2233
2791
  exports.MembershipPlansResource = MembershipPlansResource;
2234
2792
  exports.NetworkError = NetworkError;
2235
2793
  exports.NotFoundError = NotFoundError;
@@ -2253,17 +2811,27 @@ exports.SubscriptionStatus = SubscriptionStatus;
2253
2811
  exports.SubscriptionsResource = SubscriptionsResource;
2254
2812
  exports.SuppliersResource = SuppliersResource;
2255
2813
  exports.SuspensionType = SuspensionType;
2814
+ exports.TEMPLATE_CODES = TEMPLATE_CODES;
2815
+ exports.TEMPLATE_METADATA = TEMPLATE_METADATA;
2256
2816
  exports.TagsResource = TagsResource;
2817
+ exports.TemplateCode = TemplateCode;
2818
+ exports.TemplateType = TemplateType;
2257
2819
  exports.UserType = UserType;
2258
2820
  exports.UsersResource = UsersResource;
2259
2821
  exports.ValidationError = ValidationError;
2822
+ exports.WHATSAPP_EVENTS = WHATSAPP_EVENTS;
2823
+ exports.WHATSAPP_TEMPLATE_EVENTS = WHATSAPP_TEMPLATE_EVENTS;
2260
2824
  exports.WhatsAppResource = WhatsAppResource;
2261
2825
  exports.WhatsAppTemplatesResource = WhatsAppTemplatesResource;
2826
+ exports.aiGeneratedTemplateSchema = aiGeneratedTemplateSchema;
2827
+ exports.bulkMessageGenerationRequestSchema = bulkMessageGenerationRequestSchema;
2828
+ exports.bulkMessageSchema = bulkMessageSchema;
2262
2829
  exports.canAccessFeature = canAccessFeature;
2263
2830
  exports.getRoleCapabilities = getRoleCapabilities;
2264
2831
  exports.getRoleDescription = getRoleDescription;
2265
2832
  exports.getRoleDisplayName = getRoleDisplayName;
2266
2833
  exports.isAdminRole = isAdminRole;
2267
2834
  exports.isEncargadoRole = isEncargadoRole;
2835
+ exports.templateGenerationRequestSchema = templateGenerationRequestSchema;
2268
2836
  //# sourceMappingURL=index.js.map
2269
2837
  //# sourceMappingURL=index.js.map