@gymspace/sdk 1.2.8 → 1.2.11

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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/utils/agent-fetch.ts","../src/resources/base.ts","../src/resources/auth.ts","../src/resources/organizations.ts","../src/resources/gyms.ts","../src/resources/collaborators.ts","../src/resources/roles.ts","../src/resources/clients.ts","../src/resources/membership-plans.ts","../src/resources/contracts.ts","../src/resources/dashboard.ts","../src/resources/evaluations.ts","../src/resources/check-ins.ts","../src/resources/invitations.ts","../src/resources/leads.ts","../src/resources/assets.ts","../src/resources/files.ts","../src/resources/public-catalog.ts","../src/resources/health.ts","../src/resources/onboarding.ts","../src/resources/products.ts","../src/resources/sales.ts","../src/resources/suppliers.ts","../src/resources/users.ts","../src/resources/subscriptions.ts","../src/resources/subscription-plans.ts","../src/resources/admin-subscription-management.ts","../src/resources/payment-methods.ts","../src/resources/whatsapp.ts","../src/resources/whatsapp-templates.ts","../src/sdk.ts","../node_modules/@gymspace/shared/src/enums.ts","../node_modules/@gymspace/shared/src/constants.ts","../node_modules/@gymspace/shared/src/utils/roleHelpers.ts","../src/models/onboarding.ts"],"names":["axios","UserType","SubscriptionStatus","CollaboratorStatus","InvitationStatus","ClientStatus","PlanStatus","ContractStatus","PaymentFrequency","AssetStatus","EvaluationType","EvaluationStatus","CommentType","AssetCategory","ContractAssetType","EvaluationAssetStage","EvaluationAssetCategory","LeadStatus","RoleNames","OnboardingStep"],"mappings":";;;;;;;;;;;AAAO,IAAM,aAAA,GAAN,cAA4B,KAAA,CAAM;AAAA,EACvC,WAAA,CACE,OAAA,EACO,UAAA,EACA,IAAA,EACA,OAAA,EACP;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAJN,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAGP,IAAA,IAAA,CAAK,IAAA,GAAO,eAAA;AAAA,EACd;AACF;AAEO,IAAM,mBAAA,GAAN,cAAkC,aAAA,CAAc;AAAA,EACrD,WAAA,CAAY,UAAU,uBAAA,EAAyB;AAC7C,IAAA,KAAA,CAAM,OAAA,EAAS,KAAK,sBAAsB,CAAA;AAC1C,IAAA,IAAA,CAAK,IAAA,GAAO,qBAAA;AAAA,EACd;AACF;AAEO,IAAM,kBAAA,GAAN,cAAiC,aAAA,CAAc;AAAA,EACpD,WAAA,CAAY,UAAU,eAAA,EAAiB;AACrC,IAAA,KAAA,CAAM,OAAA,EAAS,KAAK,qBAAqB,CAAA;AACzC,IAAA,IAAA,CAAK,IAAA,GAAO,oBAAA;AAAA,EACd;AACF;AAEO,IAAM,aAAA,GAAN,cAA4B,aAAA,CAAc;AAAA,EAC/C,WAAA,CAAY,UAAkB,EAAA,EAAa;AACzC,IAAA,MAAM,OAAA,GAAU,KACZ,CAAA,EAAG,QAAQ,YAAY,EAAE,CAAA,UAAA,CAAA,GACzB,GAAG,QAAQ,CAAA,UAAA,CAAA;AACf,IAAA,KAAA,CAAM,OAAA,EAAS,KAAK,WAAW,CAAA;AAC/B,IAAA,IAAA,CAAK,IAAA,GAAO,eAAA;AAAA,EACd;AACF;AAEO,IAAM,eAAA,GAAN,cAA8B,aAAA,CAAc;AAAA,EACjD,WAAA,CAAY,SAAiB,MAAA,EAAc;AACzC,IAAA,KAAA,CAAM,OAAA,EAAS,GAAA,EAAK,kBAAA,EAAoB,MAAM,CAAA;AAC9C,IAAA,IAAA,CAAK,IAAA,GAAO,iBAAA;AAAA,EACd;AACF;AAEO,IAAM,YAAA,GAAN,cAA2B,aAAA,CAAc;AAAA,EAC9C,WAAA,CAAY,UAAU,wBAAA,EAA0B;AAC9C,IAAA,KAAA,CAAM,OAAA,EAAS,GAAG,eAAe,CAAA;AACjC,IAAA,IAAA,CAAK,IAAA,GAAO,cAAA;AAAA,EACd;AACF;;;AC/BO,IAAM,YAAN,MAAgB;AAAA,EASrB,YAAY,MAAA,EAAwB;AANpC,IAAA,IAAA,CAAQ,YAAA,GAA8B,IAAA;AAOpC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAEd,IAAA,IAAA,CAAK,aAAA,GAAgBA,uBAAM,MAAA,CAAO;AAAA,MAChC,SAAS,MAAA,CAAO,OAAA;AAAA,MAChB,OAAA,EAAS,OAAO,OAAA,IAAW,GAAA;AAAA,MAC3B,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB,kBAAA;AAAA,QAChB,GAAG,MAAA,CAAO;AAAA;AACZ,KACD,CAAA;AAED,IAAA,IAAA,CAAK,iBAAA,EAAkB;AAAA,EACzB;AAAA,EAjBO,cAAA,GAAgC;AACrC,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,IAAU,IAAA;AAAA,EAC/B;AAAA,EAiBQ,iBAAA,GAA0B;AAEhC,IAAA,IAAA,CAAK,aAAA,CAAc,aAAa,OAAA,CAAQ,GAAA;AAAA,MACtC,CAAC,MAAA,KAAuC;AAEtC,QAAA,IAAI,IAAA,CAAK,MAAA,CAAO,MAAA,IAAU,MAAA,CAAO,OAAA,EAAS;AACxC,UAAA,MAAA,CAAO,QAAQ,eAAe,CAAA,GAAI,CAAA,OAAA,EAAU,IAAA,CAAK,OAAO,MAAM,CAAA,CAAA;AAAA,QAChE;AAGA,QAAA,IAAI,IAAA,CAAK,gBAAgB,MAAA,CAAO,GAAA,EAAK,SAAS,iBAAiB,CAAA,IAAK,OAAO,OAAA,EAAS;AAClF,UAAA,MAAA,CAAO,OAAA,CAAQ,iBAAiB,CAAA,GAAI,IAAA,CAAK,YAAA;AAAA,QAC3C;AAEA,QAAA,OAAO,MAAA;AAAA,MACT,CAAA;AAAA,MACA,CAAC,KAAA,KAAU;AACT,QAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,MAC7B;AAAA,KACF;AAGA,IAAA,IAAA,CAAK,aAAA,CAAc,aAAa,QAAA,CAAS,GAAA;AAAA,MACvC,CAAC,QAAA,KAAa;AACZ,QAAA,OAAO,QAAA;AAAA,MACT,CAAA;AAAA,MACA,OAAO,KAAA,KAAsB;AAE3B,QAAA,MAAM,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,MAC9B;AAAA,KACF;AAAA,EACF;AAAA,EAEQ,YAAY,KAAA,EAAkC;AACpD,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,EAAQ,GAAA,IAAO,SAAA;AACzC,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,MAAA,EAAQ,MAAA,EAAQ,aAAY,IAAK,SAAA;AAEtD,IAAA,IAAI,CAAC,MAAM,QAAA,EAAU;AACnB,MAAA,OAAA,CAAQ,MAAM,gBAAA,EAAkB;AAAA,QAC9B,MAAA;AAAA,QACA,IAAA,EAAM,WAAA;AAAA,QACN,OAAO,KAAA,CAAM;AAAA,OACd,CAAA;AACD,MAAA,OAAO,IAAI,YAAA,CAAa,KAAA,CAAM,OAAO,CAAA;AAAA,IACvC;AAEA,IAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAK,GAAI,KAAA,CAAM,QAAA;AAC/B,IAAA,MAAM,SAAA,GAAY,IAAA;AAClB,IAAA,MAAM,QAAA,GAAW,WAAW,QAAA,IAAY,SAAA;AAExC,IAAA,OAAA,CAAQ,MAAM,aAAA,EAAe;AAAA,MAC3B,MAAA;AAAA,MACA,IAAA,EAAM,WAAA;AAAA,MACN,MAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA,EAAS,SAAA,EAAW,OAAA,IAAW,KAAA,CAAM,OAAA;AAAA,MACrC,WAAW,SAAA,EAAW,IAAA;AAAA,MACtB,OAAA,EAAS;AAAA,KACV,CAAA;AAED,IAAA,QAAQ,MAAA;AAAQ,MACd,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,mBAAA,CAAoB,SAAA,EAAW,OAAA,IAAW,uBAAuB,CAAA;AAAA,MAC9E,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,kBAAA,CAAmB,SAAA,EAAW,OAAA,IAAW,eAAe,CAAA;AAAA,MACrE,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,aAAA,CAAc,SAAA,EAAW,QAAA,IAAY,UAAA,EAAY,WAAW,EAAE,CAAA;AAAA,MAC3E,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,eAAA,CAAgB,SAAA,EAAW,OAAA,IAAW,mBAAA,EAAqB,WAAW,MAAM,CAAA;AAAA,MACzF;AACE,QAAA,OAAO,IAAI,aAAA;AAAA,UACT,SAAA,EAAW,WAAW,KAAA,CAAM,OAAA;AAAA,UAC5B,MAAA;AAAA,UACA,SAAA,EAAW,IAAA;AAAA,UACX;AAAA,SACF;AAAA;AACJ,EACF;AAAA,EAEQ,aAAa,OAAA,EAA8C;AACjE,IAAA,MAAM,OAAA,GAAkC,EAAE,GAAG,OAAA,EAAS,OAAA,EAAQ;AAE9D,IAAA,IAAI,SAAS,KAAA,EAAO;AAClB,MAAA,OAAA,CAAQ,UAAU,IAAI,OAAA,CAAQ,KAAA;AAAA,IAChC;AAEA,IAAA,OAAO,EAAE,OAAA,EAAQ;AAAA,EACnB;AAAA,EAEA,MAAM,OAAA,CACJ,MAAA,EACA,IAAA,EACA,MACA,OAAA,EACY;AACZ,IAAA,MAAM,EAAE,OAAA,EAAS,GAAG,WAAA,EAAY,GAAI,WAAW,EAAC;AAEhD,IAAA,MAAM,MAAA,GAA6B;AAAA,MACjC,MAAA;AAAA,MACA,GAAA,EAAK,IAAA;AAAA,MACL,GAAG,IAAA,CAAK,YAAA,CAAa,EAAE,SAAS,CAAA;AAAA,MAChC,GAAG;AAAA,KACL;AAEA,IAAA,IAAI,IAAA,IAAQ,CAAC,MAAA,EAAQ,KAAA,EAAO,OAAO,EAAE,QAAA,CAAS,MAAA,CAAO,WAAA,EAAa,CAAA,EAAG;AACnE,MAAA,MAAA,CAAO,IAAA,GAAO,IAAA;AAAA,IAChB,CAAA,MAAA,IAAW,IAAA,IAAQ,MAAA,CAAO,WAAA,OAAkB,KAAA,EAAO;AACjD,MAAA,MAAA,CAAO,MAAA,GAAS,IAAA;AAAA,IAClB;AAEA,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,aAAA,CAAc,QAAW,MAAM,CAAA;AAC3D,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,GAAA,CAAO,IAAA,EAAc,MAAA,EAAc,OAAA,EAAsC;AACvE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAW,KAAA,EAAO,IAAA,EAAM,QAAQ,OAAO,CAAA;AAAA,EACrD;AAAA,EAEA,IAAA,CAAQ,IAAA,EAAc,IAAA,EAAY,OAAA,EAAsC;AACtE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAW,MAAA,EAAQ,IAAA,EAAM,MAAM,OAAO,CAAA;AAAA,EACpD;AAAA,EAEA,GAAA,CAAO,IAAA,EAAc,IAAA,EAAY,OAAA,EAAsC;AACrE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAW,KAAA,EAAO,IAAA,EAAM,MAAM,OAAO,CAAA;AAAA,EACnD;AAAA,EAEA,KAAA,CAAS,IAAA,EAAc,IAAA,EAAY,OAAA,EAAsC;AACvE,IAAA,OAAO,IAAA,CAAK,OAAA,CAAW,OAAA,EAAS,IAAA,EAAM,MAAM,OAAO,CAAA;AAAA,EACrD;AAAA,EAEA,MAAA,CAAU,MAAc,OAAA,EAAsC;AAC5D,IAAA,OAAO,IAAA,CAAK,OAAA,CAAW,QAAA,EAAU,IAAA,EAAM,QAAW,OAAO,CAAA;AAAA,EAC3D;AAAA,EAEA,aAAa,KAAA,EAAqB;AAChC,IAAA,IAAA,CAAK,OAAO,MAAA,GAAS,KAAA;AAAA,EACvB;AAAA,EAEA,gBAAgB,KAAA,EAA4B;AAC1C,IAAA,IAAA,CAAK,YAAA,GAAe,KAAA;AAAA,EACtB;AAAA,EAEA,eAAA,GAAiC;AAC/B,IAAA,OAAO,IAAA,CAAK,YAAA;AAAA,EACd;AAAA,EAEA,SAAS,KAAA,EAAqB;AAC5B,IAAA,IAAA,CAAK,aAAA,CAAc,QAAA,CAAS,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,GAAI,KAAA;AAAA,EAC3D;AAAA,EAEA,SAAA,GAAkB;AAChB,IAAA,OAAO,KAAK,MAAA,CAAO,MAAA;AACnB,IAAA,IAAA,CAAK,YAAA,GAAe,IAAA;AACpB,IAAA,OAAO,IAAA,CAAK,aAAA,CAAc,QAAA,CAAS,OAAA,CAAQ,OAAO,eAAe,CAAA;AACjE,IAAA,OAAO,IAAA,CAAK,aAAA,CAAc,QAAA,CAAS,OAAA,CAAQ,OAAO,UAAU,CAAA;AAAA,EAC9D;AAAA,EAEA,UAAA,GAAqB;AACnB,IAAA,OAAO,KAAK,MAAA,CAAO,OAAA;AAAA,EACrB;AACF;;;ACvMO,SAAS,gBAAA,CAAiB,WAAsB,WAAA,EAAuC;AAC5F,EAAA,MAAM,UAAU,WAAA,IAAe,KAAA;AAE/B,EAAA,OAAO,OAAO,MAAc,OAAA,KAA0B;AACpD,IAAA,MAAM,UAAU,CAAA,EAAG,SAAA,CAAU,UAAA,EAAY,SAAS,IAAI,CAAA,CAAA;AAGtD,IAAA,MAAM,gBAAiB,SAAA,CAAkB,aAAA;AACzC,IAAA,MAAM,KAAA,GAAQ,aAAA,EAAe,QAAA,EAAU,OAAA,EAAS,SAAS,UAAU,CAAA;AAEnE,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,cAAA,EAAgB,kBAAA;AAAA,MAChB,GAAI,SAAA,CAAU,cAAA,EAAe,IAAK,EAAE,eAAe,CAAA,OAAA,EAAU,SAAA,CAAU,cAAA,EAAgB,CAAA,CAAA,EAAG;AAAA,MAC1F,GAAI,KAAA,IAAS,EAAE,UAAA,EAAY,KAAA,EAAM;AAAA,MACjC,GAAI,OAAA,EAAS,OAAA,IAAW;AAAC,KAC3B;AAEA,IAAA,OAAO,QAAQ,OAAA,EAAS;AAAA,MACtB,GAAG,OAAA;AAAA,MACH;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AACF;;;ACrBO,IAAe,eAAf,MAA4B;AAAA,EACjC,YAAsB,MAAA,EAAmB;AAAnB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAoB;AAAA,EAE1C,MAAgB,OAAA,CACd,IAAA,EACA,OAAA,EAKY;AACZ,IAAA,MAAM,OAAO,OAAA,CAAQ,IAAA,GAAO,KAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,MAAA;AAEvD,IAAA,QAAQ,QAAQ,MAAA;AAAQ,MACtB,KAAK,KAAA;AACH,QAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAO,IAAA,EAAM,MAAM,EAAE,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAS,CAAA;AAAA,MACpE,KAAK,MAAA;AACH,QAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAQ,IAAA,EAAM,MAAM,EAAE,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAS,CAAA;AAAA,MACrE,KAAK,KAAA;AACH,QAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAO,IAAA,EAAM,MAAM,EAAE,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAS,CAAA;AAAA,MACpE,KAAK,OAAA;AACH,QAAA,OAAO,IAAA,CAAK,OAAO,KAAA,CAAS,IAAA,EAAM,MAAM,EAAE,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAS,CAAA;AAAA,MACtE,KAAK,QAAA;AACH,QAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAU,IAAA,EAAM,EAAE,OAAA,EAAS,OAAA,CAAQ,SAAS,CAAA;AAAA,MACjE;AACE,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,yBAAA,EAA4B,OAAA,CAAQ,MAAM,CAAA,CAAE,CAAA;AAAA;AAChE,EACF;AAAA,EAEU,SAAA,CAAU,SAAiB,QAAA,EAA0C;AAC7E,IAAA,MAAM,KAAA,GAAQ,CAAC,IAAI,CAAA;AACnB,IAAA,KAAA,MAAW,WAAW,QAAA,EAAU;AAC9B,MAAA,IAAI,YAAY,MAAA,EAAW;AACzB,QAAA,KAAA,CAAM,KAAK,OAAO,CAAA;AAAA,MACpB;AAAA,IACF;AACA,IAAA,OAAO,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA,EACvB;AAAA,EAEA,MAAgB,QAAA,CACd,IAAA,EACA,MAAA,EACA,OAAA,EACkC;AAClC,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAA6B,IAAA,EAAM,QAAQ,OAAO,CAAA;AAAA,EACvE;AACF,CAAA;;;ACzBO,IAAM,YAAA,GAAN,cAA2B,YAAA,CAAa;AAAA,EAAxC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,MAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,aAAA,CAAc,IAAA,EAAwB,OAAA,EAAyC;AACnF,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAK,CAAA,EAAG,KAAK,QAAQ,CAAA,eAAA,CAAA,EAAmB,MAAM,OAAO,CAAA;AAAA,EAC1E;AAAA,EAEA,MAAM,KAAA,CAAM,IAAA,EAAgB,OAAA,EAAqD;AAC/E,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAuB,CAAA,EAAG,KAAK,QAAQ,CAAA,MAAA,CAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EACnF;AAAA,EAEA,MAAM,YAAA,CAAa,YAAA,EAAsB,OAAA,EAAqD;AAC5F,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAuB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,QAAA,CAAA,EAAY,EAAE,aAAA,EAAe,YAAA,EAAa,EAAG,OAAO,CAAA;AAAA,EAChH;AAAA,EAEA,MAAM,WAAA,CACJ,IAAA,EACA,OAAA,EACgD;AAChD,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAK,CAAA,EAAG,KAAK,QAAQ,CAAA,aAAA,CAAA,EAAiB,MAAM,OAAO,CAAA;AAAA,EACxE;AAAA,EAEA,MAAM,kBAAA,CACJ,IAAA,EACA,OAAA,EACgD;AAChD,IAAA,OAAA,CAAQ,GAAA,CAAI,UAAA,EAAY,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,oBAAA,CAAsB,CAAA;AAE9D,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAK,CAAA,EAAG,KAAK,QAAQ,CAAA,oBAAA,CAAA,EAAwB,MAAM,OAAO,CAAA;AAAA,EAC/E;AAAA,EAGA,MAAM,qBAAqB,OAAA,EAAiE;AAC1F,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAI,GAAG,IAAA,CAAK,QAAQ,uBAAuB,OAAO,CAAA;AAAA,EACvE;AAAA,EAEA,MAAM,kBAAA,CACJ,KAAA,EACA,OAAA,EACuC;AACvC,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAI,CAAA,EAAG,KAAK,QAAQ,CAAA,YAAA,EAAe,KAAK,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACxE;AAAA,EAEA,MAAM,oBAAA,CACJ,IAAA,EACA,OAAA,EAC2B;AAC3B,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,sBAAA,CAAA;AAAA,MAChB,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,kBAAkB,OAAA,EAA2D;AACjF,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA4B,GAAG,IAAA,CAAK,QAAQ,oBAAoB,OAAO,CAAA;AAAA,EAC5F;AAAA,EAEA,MAAM,cAAA,CACJ,IAAA,EACA,OAAA,EACoC;AACpC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,gBAAA,CAAA;AAAA,MAChB,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,oBAAA,CACJ,IAAA,EACA,OAAA,EAC0C;AAC1C,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,uBAAA,CAAA;AAAA,MAChB,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,eAAA,CACJ,IAAA,EACA,OAAA,EACqC;AACrC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,2BAAA,CAAA;AAAA,MAChB,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,aAAA,CACJ,IAAA,EACA,OAAA,EACmC;AACnC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,qBAAA,CAAA;AAAA,MAChB,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,eAAA,CACJ,IAAA,EACA,OAAA,EACqC;AACrC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,2BAAA,CAAA;AAAA,MAChB,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;ACpIO,IAAM,qBAAA,GAAN,cAAoC,YAAA,CAAa;AAAA,EAAjD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,eAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,eAAA,CAAgB,EAAA,EAAY,OAAA,EAAiD;AACjF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAkB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EACnF;AAAA,EAEA,MAAM,kBAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACuB;AACvB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAkB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EAC9E;AAAA,EAEA,MAAM,oBAAA,CAAqB,EAAA,EAAY,OAAA,EAAsD;AAC3F,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAuB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,MAAA,CAAA,EAAU,MAAA,EAAW,OAAO,CAAA;AAAA,EAC9F;AAAA,EAEA,MAAM,kBAAkB,OAAA,EAA8D;AACpF,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA+B,CAAA,EAAG,KAAK,QAAQ,CAAA,KAAA,CAAA,EAAS,QAAW,OAAO,CAAA;AAAA,EAC/F;AAAA,EAEA,MAAM,uBAAA,CAAwB,EAAA,EAAY,OAAA,EAA6D;AACrG,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAA8B,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,OAAA,EAAU,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EACrG;AACF;;;AC1BO,IAAM,YAAA,GAAN,cAA2B,YAAA,CAAa;AAAA,EAAxC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,MAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,SAAA,CACJ,IAAA,EACA,OAAA,EACc;AACd,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,IAAA,CAAK,QAAA;AAAA,MACL,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,oBACJ,OAAA,EACgB;AAChB,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,IAAA,CAAK,QAAA;AAAA,MACL,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,MAAA,CAAO,EAAA,EAAY,OAAA,EAAwC;AAC/D,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAS,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC1E;AAAA,EAEA,MAAM,SAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACc;AACd,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAS,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EACrE;AAAA,EAEA,MAAM,WAAA,CAAY,EAAA,EAAY,OAAA,EAA6C;AACzE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAc,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,MAAA,CAAA,EAAU,MAAA,EAAW,OAAO,CAAA;AAAA,EACrF;AAAA,EAEA,MAAM,eAAA,CAAgB,EAAA,EAAY,OAAA,EAAwC;AACxE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAS,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,cAAA,CAAA,EAAkB,MAAA,EAAW,OAAO,CAAA;AAAA,EACxF;AAAA,EAEA,MAAM,gBAAA,CACJ,IAAA,EAOA,OAAA,EACc;AACd,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAS,CAAA,EAAG,KAAK,QAAQ,CAAA,QAAA,CAAA,EAAY,MAAM,OAAO,CAAA;AAAA,EACvE;AAAA,EAEA,MAAM,iBAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACc;AACd,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAS,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,SAAA,CAAA,EAAa,IAAA,EAAM,OAAO,CAAA;AAAA,EAC9E;AAAA,EAEA,MAAM,oBAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACc;AACd,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAS,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,aAAA,CAAA,EAAiB,IAAA,EAAM,OAAO,CAAA;AAAA,EAClF;AACF;;;AC9DO,IAAM,qBAAA,GAAN,cAAoC,YAAA,CAAa;AAAA,EAAjD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,eAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,IAAA,CACJ,MAAA,EACA,OAAA,EAC6C;AAC7C,IAAA,OAAO,IAAA,CAAK,QAAA,CAAuB,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,GAAA,CAAI,EAAA,EAAY,OAAA,EAAiD;AACrE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAkB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EACnF;AAAA,EAEA,MAAM,MAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACuB;AACvB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAoB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EAChF;AAAA,EAEA,MAAM,UAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACuB;AACvB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAoB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,KAAA,CAAA,EAAS,IAAA,EAAM,OAAO,CAAA;AAAA,EACrF;AAAA,EAEA,MAAM,YAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACuB;AACvB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAoB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,OAAA,CAAA,EAAW,IAAA,EAAM,OAAO,CAAA;AAAA,EACvF;AAAA,EAEA,MAAM,WAAA,CACJ,EAAA,EACA,MAAA,EACA,OAAA,EACyB;AACzB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAoB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,SAAA,CAAA,EAAa,MAAA,EAAQ,OAAO,CAAA;AAAA,EAC3F;AAAA,EAEA,MAAM,QAAA,CACJ,EAAA,EACA,MAAA,EACA,OAAA,EAC4B;AAC5B,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAuB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,MAAA,CAAA,EAAU,MAAA,EAAQ,OAAO,CAAA;AAAA,EAC3F;AACF;;;AC9DO,IAAM,aAAA,GAAN,cAA4B,YAAA,CAAa;AAAA,EAAzC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,OAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,MAAM,SAAS,OAAA,EAA2C;AACxD,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAY,IAAA,CAAK,QAAA,EAAU,QAAW,OAAO,CAAA;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAA,CAAQ,EAAA,EAAY,OAAA,EAAyC;AACjE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAU,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC3E;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,wBAAwB,OAAA,EAAqD;AACjF,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAsB,CAAA,EAAG,KAAK,QAAQ,CAAA,YAAA,CAAA,EAAgB,QAAW,OAAO,CAAA;AAAA,EAC7F;AACF;;;ACjBO,IAAM,eAAA,GAAN,cAA8B,YAAA,CAAa;AAAA,EAA3C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,SAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,YAAA,CAAa,IAAA,EAAuB,OAAA,EAA2C;AACnF,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAa,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAC9D;AAAA,EAEA,MAAM,aAAA,CAAc,MAAA,EAA8B,OAAA,EAA6C;AAC7F,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAc,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EACjE;AAAA,EAEA,MAAM,SAAA,CAAU,EAAA,EAAY,OAAA,EAA2C;AACrE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAY,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC7E;AAAA,EAEA,MAAM,YAAA,CAAa,EAAA,EAAY,IAAA,EAAuB,OAAA,EAA2C;AAC/F,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAY,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EACxE;AAAA,EAEA,MAAM,kBAAA,CAAmB,EAAA,EAAY,OAAA,EAA2C;AAC9E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAY,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,cAAA,CAAA,EAAkB,MAAA,EAAW,OAAO,CAAA;AAAA,EAC3F;AAAA,EAEA,MAAM,cAAA,CAAe,EAAA,EAAY,OAAA,EAAgD;AAC/E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAiB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,MAAA,CAAA,EAAU,MAAA,EAAW,OAAO,CAAA;AAAA,EACxF;AAAA,EAEA,MAAM,aAAA,CAAc,EAAA,EAAY,OAAA,EAAiB,OAAA,EAA+C;AAC9F,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,GAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,UAAU,OAAO,CAAA,CAAA;AAAA,MACvC,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,wBAAA,CACJ,EAAA,EACA,QAAA,EACA,OAAA,EACuB;AACvB,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,GAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,mBAAmB,QAAQ,CAAA,CAAA;AAAA,MACjD,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,kBAAkB,OAAA,EAAiD;AACvE,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAkB,CAAA,EAAG,KAAK,QAAQ,CAAA,gBAAA,CAAA,EAAoB,QAAW,OAAO,CAAA;AAAA,EAC7F;AAAA,EAEA,MAAM,uBAAA,CACJ,MAAA,EACA,OAAA,EACmB;AAEnB,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAc,CAAA,EAAG,KAAK,QAAQ,CAAA,gBAAA,CAAA,EAAoB,QAAQ,OAAO,CAAA;AAAA,EACtF;AACF;;;AC3DO,IAAM,uBAAA,GAAN,cAAsC,YAAA,CAAa;AAAA,EAAnD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,kBAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,oBAAA,CACJ,IAAA,EACA,OAAA,EACyB;AACzB,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAqB,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EACtE;AAAA,EAEA,MAAM,qBAAA,CACJ,MAAA,EACA,OAAA,EAC2B;AAC3B,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAsB,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EACzE;AAAA,EAEA,MAAM,iBAAA,CAAkB,EAAA,EAAY,OAAA,EAAmD;AACrF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAoB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EACrF;AAAA,EAEA,MAAM,oBAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACyB;AACzB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAoB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EAChF;AAAA,EAEA,MAAM,oBAAA,CAAqB,EAAA,EAAY,OAAA,EAAyC;AAC9E,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,sBAAA,CACJ,EAAA,EACA,OAAA,EAC8B;AAC9B,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,MAAA,CAAA;AAAA,MACtB,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;AC3CO,IAAM,iBAAA,GAAN,cAAgC,YAAA,CAAa;AAAA,EAA7C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,WAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,cAAA,CAAe,IAAA,EAAyB,OAAA,EAA6C;AACzF,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAe,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAChE;AAAA,EAEA,MAAM,eAAA,CACJ,MAAA,EACA,OAAA,EACyC;AACzC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAmB,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EAC/D;AAAA,EAEA,MAAM,WAAA,CAAY,EAAA,EAAY,OAAA,EAA6C;AACzE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAc,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC/E;AAAA,EAEA,MAAM,kBAAA,CAAmB,QAAA,EAAkB,OAAA,EAA+C;AACxF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAgB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,QAAA,EAAW,QAAQ,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC9F;AAAA,EAEA,MAAM,aAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACmB;AACnB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAe,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,MAAA,CAAA,EAAU,IAAA,EAAM,OAAO,CAAA;AAAA,EACjF;AAAA,EAEA,MAAM,cAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACmB;AACnB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAe,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,OAAA,CAAA,EAAW,IAAA,EAAM,OAAO,CAAA;AAAA,EAClF;AAAA,EAEA,MAAM,cAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACmB;AACnB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAc,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,OAAA,CAAA,EAAW,IAAA,EAAM,OAAO,CAAA;AAAA,EACjF;AAAA,EAEA,MAAM,0BAAA,CACJ,UAAA,EACA,OAAA,EACgD;AAChD,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,UAAU,CAAA,gBAAA,CAAA;AAAA,MAC9B,EAAC;AAAA,MACD;AAAA,KACF;AAAA,EACF;AACF;;;ACtDO,IAAM,iBAAA,GAAN,cAAgC,YAAA,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlD,MAAM,QAAA,GAAoC;AACxC,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAoB,kBAAkB,CAAA;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,oBAAoB,MAAA,EAAqD;AAC7E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAsB,8BAAA,EAAgC,MAAM,CAAA;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,gBAAgB,MAAA,EAAiD;AACrE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAkB,0BAAA,EAA4B,MAAM,CAAA;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAS,MAAA,EAA0C;AACvD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAW,kBAAA,EAAoB,MAAM,CAAA;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,YAAY,MAAA,EAA6C;AAC7D,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAc,sBAAA,EAAwB,MAAM,CAAA;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAc,MAAA,EAA+C;AACjE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAgB,wBAAA,EAA0B,MAAM,CAAA;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,oBAAA,CACJ,KAAA,GAAgB,EAAA,EAChB,MAAA,EAC6B;AAC7B,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAwB,+BAAA,EAAiC;AAAA,MAC1E,KAAA;AAAA,MACA,GAAG;AAAA,KACJ,CAAA;AAAA,EACH;AACF;;;ACvEO,IAAM,mBAAA,GAAN,cAAkC,YAAA,CAAa;AAAA,EAA/C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,aAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,gBAAA,CACJ,IAAA,EACA,OAAA,EACqB;AACrB,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAiB,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAClE;AAAA,EAEA,MAAM,aAAA,CAAc,EAAA,EAAY,OAAA,EAA+C;AAC7E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAgB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EACjF;AAAA,EAEA,MAAM,gBAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACqB;AACrB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAgB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EAC5E;AAAA,EAEA,MAAM,gBAAA,CAAiB,EAAA,EAAY,OAAA,EAAyC;AAC1E,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,oBAAA,CACJ,QAAA,EACA,MAAA,EACA,OAAA,EAC2C;AAC3C,IAAA,OAAO,IAAA,CAAK,QAAA;AAAA,MACV,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,QAAA,EAAW,QAAQ,CAAA,CAAA;AAAA,MACnC,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,sBAAsB,OAAA,EAAwC;AAClE,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAI,CAAA,EAAG,KAAK,QAAQ,CAAA,UAAA,CAAA,EAAc,QAAW,OAAO,CAAA;AAAA,EACzE;AAAA,EAEA,MAAM,wBAAA,CACJ,EAAA,EACA,OAAA,EAC2B;AAC3B,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,OAAA,CAAA;AAAA,MACtB,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;AChDO,IAAM,gBAAA,GAAN,cAA+B,YAAA,CAAa;AAAA,EAA5C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,WAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,aAAA,CAAc,IAAA,EAAwB,OAAA,EAA4C;AACtF,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAc,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAC/D;AAAA,EAEA,MAAM,cAAA,CACJ,MAAA,EACA,OAAA,EAC8B;AAC9B,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAyB,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EAC5E;AAAA,EAEA,MAAM,kBAAkB,OAAA,EAA2D;AACjF,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA4B,CAAA,EAAG,KAAK,QAAQ,CAAA,QAAA,CAAA,EAAY,QAAW,OAAO,CAAA;AAAA,EAC/F;AAAA,EAEA,MAAM,UAAA,CAAW,EAAA,EAAY,OAAA,EAA4C;AACvE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAa,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC9E;AAAA,EAEA,MAAM,aAAA,CAAc,EAAA,EAAY,OAAA,EAAyC;AACvE,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,kBAAA,CACJ,MAAA,EACA,OAAA,EACuB;AACvB,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,OAAA,EAAU,OAAO,MAAM,CAAA,CAAA;AAAA,MACvC,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,uBAAA,CACJ,QAAA,EACA,MAAA,EACA,OAAA,EAC+B;AAC/B,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,QAAA,EAAW,QAAQ,CAAA,QAAA,CAAA;AAAA,MACnC,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;ACjDO,IAAM,mBAAA,GAAN,cAAkC,YAAA,CAAa;AAAA,EAA/C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,aAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,gBAAA,CAAiB,IAAA,EAA2B,OAAA,EAA+C;AAC/F,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAiB,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAClE;AAAA,EAEA,MAAM,iBAAA,CACJ,MAAA,EACA,OAAA,EACuB;AACvB,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAkB,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EACrE;AAAA,EAEA,MAAM,cAAA,CACJ,IAAA,EACA,OAAA,EAC8E;AAC9E,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAK,CAAA,EAAG,KAAK,QAAQ,CAAA,iBAAA,CAAA,EAAqB,MAAM,OAAO,CAAA;AAAA,EAC5E;AAAA,EAEA,MAAM,gBAAA,CAAiB,IAAA,EAA2B,OAAA,EAAyC;AACzF,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAW,CAAA,EAAG,KAAK,QAAQ,CAAA,OAAA,CAAA,EAAW,MAAM,OAAO,CAAA;AAAA,EACxE;AAAA,EAEA,MAAM,gBAAA,CAAiB,EAAA,EAAY,OAAA,EAAyC;AAC1E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAU,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,OAAA,CAAA,EAAW,MAAA,EAAW,OAAO,CAAA;AAAA,EAClF;AACF;;;AC/BO,IAAM,aAAA,GAAN,cAA4B,YAAA,CAAa;AAAA,EAAzC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,OAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,UAAA,CAAW,IAAA,EAAqB,OAAA,EAAyC;AAC7E,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAW,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAC5D;AAAA,EAEA,MAAM,WAAA,CACJ,MAAA,EACA,OAAA,EACqC;AACrC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAe,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EAC3D;AAAA,EAEA,MAAM,OAAA,CAAQ,EAAA,EAAY,OAAA,EAAyC;AACjE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAU,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC3E;AAAA,EAEA,MAAM,UAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACe;AACf,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAU,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EACtE;AAAA,EAEA,MAAM,aAAa,OAAA,EAA8C;AAC/D,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAe,CAAA,EAAG,KAAK,QAAQ,CAAA,UAAA,CAAA,EAAc,QAAW,OAAO,CAAA;AAAA,EACpF;AAAA,EAEA,MAAM,WAAA,CAAY,EAAA,EAAY,OAAA,EAAyD;AACrF,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,QAAA,CAAA;AAAA,MACtB,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;AC5CO,IAAM,cAAA,GAAN,cAA6B,YAAA,CAAa;AAAA;AAAA;AAAA;AAAA,EAI/C,MAAM,OAAO,IAAA,EAIiB;AAC5B,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAS;AAC9B,IAAA,QAAA,CAAS,MAAA,CAAO,MAAA,EAAQ,IAAA,CAAK,IAAI,CAAA;AAEjC,IAAA,IAAI,KAAK,WAAA,EAAa;AACpB,MAAA,QAAA,CAAS,MAAA,CAAO,aAAA,EAAe,IAAA,CAAK,WAAW,CAAA;AAAA,IACjD;AAEA,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,QAAA,CAAS,OAAO,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,QAAQ,CAAC,CAAA;AAAA,IAC3D;AAEA,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA,CAAuB,kBAAkB,QAAA,EAAU;AAAA,MAC1E,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB;AAAA;AAClB,KACD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ,EAAA,EAAuC;AACnD,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA,CAAsB,CAAA,QAAA,EAAW,EAAE,CAAA,CAAE,CAAA;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAU,GAAA,EAA4C;AAC1D,IAAA,IAAI,CAAC,GAAA,IAAO,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG;AAC5B,MAAA,OAAO,EAAC;AAAA,IACV;AAGA,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA,CAAwB,gBAAA,EAAkB;AAAA,MACjE,GAAA,EAAK,GAAA,CAAI,IAAA,CAAK,GAAG;AAAA,KAClB,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAA,GAAuC;AAC3C,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA,CAAwB,SAAS,CAAA;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,EAAA,EAA2B;AACtC,IAAA,MAAM,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,CAAA,QAAA,EAAW,EAAE,CAAA,CAAE,CAAA;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,eAAe,EAAA,EAAwD;AAC3E,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA,CAAuC,CAAA,QAAA,EAAW,EAAE,CAAA,aAAA,CAAe,CAAA;AAAA,EAC9F;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,EAAA,EAA2B;AACxC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,OAAO,GAAA,CAAiB,CAAA,QAAA,EAAW,EAAE,CAAA,SAAA,CAAA,EAAa;AAAA,MAC5E,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,OAAO,IAAI,IAAA,CAAK,CAAC,QAAQ,CAAC,CAAA;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,EAAA,EAAoB;AAC/B,IAAA,OAAO,GAAG,IAAA,CAAK,MAAA,CAAO,UAAA,EAAY,WAAW,EAAE,CAAA,OAAA,CAAA;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,EAAA,EAA2B;AACtC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,OAAO,GAAA,CAAiB,CAAA,QAAA,EAAW,EAAE,CAAA,OAAA,CAAA,EAAW;AAAA,MAC1E,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,OAAO,IAAI,IAAA,CAAK,CAAC,QAAQ,CAAC,CAAA;AAAA,EAC5B;AACF;;;AClGO,IAAM,aAAA,GAAN,cAA4B,YAAA,CAAa;AAAA;AAAA;AAAA;AAAA,EAI9C,MAAM,OAAO,IAAA,EAIgB;AAC3B,IAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAS;AAC9B,IAAA,QAAA,CAAS,MAAA,CAAO,MAAA,EAAQ,IAAA,CAAK,IAAI,CAAA;AAEjC,IAAA,IAAI,KAAK,WAAA,EAAa;AACpB,MAAA,QAAA,CAAS,MAAA,CAAO,aAAA,EAAe,IAAA,CAAK,WAAW,CAAA;AAAA,IACjD;AAEA,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,QAAA,CAAS,OAAO,UAAA,EAAY,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,QAAQ,CAAC,CAAA;AAAA,IAC3D;AAEA,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA,CAAsB,iBAAiB,QAAA,EAAU;AAAA,MACxE,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB;AAAA;AAClB,KACD,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAA,GAAsC;AAC1C,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA,CAAuB,QAAQ,CAAA;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ,EAAA,EAAsC;AAClD,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA,CAAqB,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAA;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAU,GAAA,EAA2C;AACzD,IAAA,IAAI,CAAC,GAAA,IAAO,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG;AAC5B,MAAA,OAAO,EAAC;AAAA,IACV;AAGA,IAAA,OAAO,MAAM,IAAA,CAAK,MAAA,CAAO,GAAA,CAAuB,eAAA,EAAiB;AAAA,MAC/D,GAAA,EAAK,GAAA,CAAI,IAAA,CAAK,GAAG;AAAA,KAClB,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,EAAA,EAA2B;AACtC,IAAA,MAAM,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAA;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,EAAA,EAA2B;AACxC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,OAAO,GAAA,CAAiB,CAAA,OAAA,EAAU,EAAE,CAAA,SAAA,CAAA,EAAa;AAAA,MAC3E,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,OAAO,IAAI,IAAA,CAAK,CAAC,QAAQ,CAAC,CAAA;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,EAAA,EAAoB;AAC/B,IAAA,OAAO,GAAG,IAAA,CAAK,MAAA,CAAO,UAAA,EAAY,UAAU,EAAE,CAAA,OAAA,CAAA;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,EAAA,EAA2B;AACtC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,OAAO,GAAA,CAAiB,CAAA,OAAA,EAAU,EAAE,CAAA,OAAA,CAAA,EAAW;AAAA,MACzE,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,OAAO,IAAI,IAAA,CAAK,CAAC,QAAQ,CAAC,CAAA;AAAA,EAC5B;AACF;;;AC1DO,IAAM,qBAAA,GAAN,cAAoC,YAAA,CAAa;AAAA,EAAjD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,SAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,aAAA,CACJ,MAAA,EACA,OAAA,EAC2C;AAC3C,IAAA,OAAO,KAAK,QAAA,CAAqB,CAAA,EAAG,KAAK,QAAQ,CAAA,OAAA,CAAA,EAAW,QAAQ,OAAO,CAAA;AAAA,EAC7E;AAAA,EAEA,MAAM,eAAA,CACJ,MAAA,EACA,OAAA,EACuB;AACvB,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAkB,CAAA,EAAG,KAAK,QAAQ,CAAA,SAAA,CAAA,EAAa,QAAQ,OAAO,CAAA;AAAA,EACnF;AAAA,EAEA,MAAM,kBAAkB,OAAA,EAAmD;AACzE,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAoB,CAAA,EAAG,KAAK,QAAQ,CAAA,OAAA,CAAA,EAAW,QAAW,OAAO,CAAA;AAAA,EACtF;AAAA,EAEA,MAAM,YAAA,CAAa,IAAA,EAAc,OAAA,EAA+C;AAC9E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAgB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EACnF;AACF;;;AC3CO,IAAM,cAAA,GAAN,cAA6B,YAAA,CAAa;AAAA,EAA1C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,QAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,OAAO,OAAA,EAAmD;AAC9D,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAoB,IAAA,CAAK,QAAA,EAAU,QAAW,OAAO,CAAA;AAAA,EAC1E;AAAA,EAEA,MAAM,MAAM,OAAA,EAAkD;AAC5D,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAmB,CAAA,EAAG,KAAK,QAAQ,CAAA,MAAA,CAAA,EAAU,QAAW,OAAO,CAAA;AAAA,EACpF;AACF;;;AChBO,IAAM,kBAAA,GAAN,cAAiC,YAAA,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKnD,MAAM,MAAM,IAAA,EAA6D;AACvE,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,MAAA,CAAO,IAAA,CAA8B,qBAAqB,IAAI,CAAA;AAG1F,IAAA,IAAI,SAAS,YAAA,EAAc;AACzB,MAAA,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,QAAA,CAAS,YAAY,CAAA;AAAA,IAChD;AAEA,IAAA,OAAO,QAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,kBAAkB,IAAA,EAA0D;AAChF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAwB,0BAAA,EAA4B,IAAI,CAAA;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,kBAAkB,IAAA,EAA0D;AAChF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAwB,gCAAA,EAAkC,IAAI,CAAA;AAAA,EACnF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc,IAAA,EAA4D;AAC9E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAyB,sBAAA,EAAwB,IAAI,CAAA;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,UAAU,KAAA,EAA0C;AACxD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAsB,CAAA,mBAAA,EAAsB,KAAK,CAAA,CAAE,CAAA;AAAA,EACxE;AACF;;;AC1CO,IAAM,gBAAA,GAAN,cAA+B,YAAA,CAAa;AAAA,EAA5C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,UAAA;AAAA,EAAA;AAAA;AAAA,EAGnB,MAAM,cAAA,CACJ,IAAA,EACA,OAAA,EAC0B;AAC1B,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAsB,CAAA,EAAG,KAAK,QAAQ,CAAA,WAAA,CAAA,EAAe,MAAM,OAAO,CAAA;AAAA,EACvF;AAAA,EAEA,MAAM,cAAc,OAAA,EAAsD;AACxE,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAuB,CAAA,EAAG,KAAK,QAAQ,CAAA,WAAA,CAAA,EAAe,QAAW,OAAO,CAAA;AAAA,EAC7F;AAAA,EAEA,MAAM,cAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EAC0B;AAC1B,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAqB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,YAAA,EAAe,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EAC5F;AAAA,EAEA,MAAM,cAAA,CAAe,EAAA,EAAY,OAAA,EAAyC;AACxE,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,YAAA,EAAe,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EAC9E;AAAA;AAAA,EAGA,MAAM,aAAA,CAAc,IAAA,EAAwB,OAAA,EAA4C;AACtF,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAc,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAC/D;AAAA,EAEA,MAAM,aAAA,CAAc,IAAA,EAAwB,OAAA,EAA4C;AACtF,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAc,CAAA,EAAG,KAAK,QAAQ,CAAA,SAAA,CAAA,EAAa,MAAM,OAAO,CAAA;AAAA,EAC7E;AAAA,EAEA,MAAM,cAAA,CACJ,MAAA,EACA,OAAA,EACwC;AACxC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAkB,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EAC9D;AAAA,EAEA,MAAM,UAAA,CAAW,EAAA,EAAY,OAAA,EAA4C;AACvE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAa,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC9E;AAAA,EAEA,MAAM,aAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACkB;AAClB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAa,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EACzE;AAAA,EAEA,MAAM,aAAA,CAAc,EAAA,EAAY,OAAA,EAAyC;AACvE,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,mBAAA,CAAoB,EAAA,EAAY,OAAA,EAA4C;AAChF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAe,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,cAAA,CAAA,EAAkB,MAAA,EAAW,OAAO,CAAA;AAAA,EAC9F;AAAA,EAEA,MAAM,WAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACkB;AAClB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAe,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,MAAA,CAAA,EAAU,IAAA,EAAM,OAAO,CAAA;AAAA,EACjF;AAAA,EAEA,MAAM,mBAAA,CACJ,SAAA,GAAoB,EAAA,EACpB,OAAA,EACoB;AACpB,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,UAAA,CAAA;AAAA,MAChB,EAAE,SAAA,EAAU;AAAA,MACZ;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,wBAAA,CACJ,EAAA,EACA,OAAA,EAC0B;AAC1B,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAqB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,gBAAA,CAAA,EAAoB,MAAA,EAAW,OAAO,CAAA;AAAA,EACtG;AACF;;;ACzFO,IAAM,aAAA,GAAN,cAA4B,YAAA,CAAa;AAAA,EAAzC,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,OAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,UAAA,CAAW,IAAA,EAAqB,OAAA,EAAyC;AAC7E,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAW,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAC5D;AAAA,EAEA,MAAM,WAAA,CACJ,MAAA,EACA,OAAA,EACqC;AACrC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAe,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EAC3D;AAAA,EAEA,MAAM,OAAA,CAAQ,EAAA,EAAY,OAAA,EAAyC;AACjE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAU,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC3E;AAAA,EAEA,MAAM,UAAA,CAAW,EAAA,EAAY,IAAA,EAAqB,OAAA,EAAyC;AACzF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAU,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EACtE;AAAA,EAEA,MAAM,mBAAA,CACJ,EAAA,EACA,aAAA,EACA,OAAA,EACe;AACf,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,eAAA,CAAA;AAAA,MACtB,EAAE,aAAA,EAAc;AAAA,MAChB;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,OAAA,CAAQ,EAAA,EAAY,IAAA,EAAkB,OAAA,EAAyC;AACnF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,IAAA,CAAW,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,QAAA,CAAA,EAAY,IAAA,EAAM,OAAO,CAAA;AAAA,EAC/E;AAAA,EAEA,MAAM,UAAA,CAAW,EAAA,EAAY,OAAA,EAAyC;AACpE,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,aAAA,CACJ,SAAA,EACA,OAAA,EACA,OAAA,EACqB;AACrB,IAAA,MAAM,SAAiC,EAAC;AACxC,IAAA,IAAI,SAAA,SAAkB,SAAA,GAAY,SAAA;AAClC,IAAA,IAAI,OAAA,SAAgB,OAAA,GAAU,OAAA;AAE9B,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,MAAA,CAAA;AAAA,MAChB,OAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA,GAAS,IAAI,MAAA,GAAS,MAAA;AAAA,MAC1C;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,qBAAA,CACJ,KAAA,GAAgB,EAAA,EAChB,SAAA,EACA,SACA,OAAA,EAC8B;AAC9B,IAAA,MAAM,MAAA,GAA0C,EAAE,KAAA,EAAM;AACxD,IAAA,IAAI,SAAA,SAAkB,SAAA,GAAY,SAAA;AAClC,IAAA,IAAI,OAAA,SAAgB,OAAA,GAAU,OAAA;AAE9B,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAyB,CAAA,EAAG,KAAK,QAAQ,CAAA,aAAA,CAAA,EAAiB,QAAQ,OAAO,CAAA;AAAA,EAC9F;AAAA,EAEA,MAAM,kBAAA,CACJ,SAAA,EACA,OAAA,EACA,OAAA,EAC8B;AAC9B,IAAA,MAAM,SAAiC,EAAC;AACxC,IAAA,IAAI,SAAA,SAAkB,SAAA,GAAY,SAAA;AAClC,IAAA,IAAI,OAAA,SAAgB,OAAA,GAAU,OAAA;AAE9B,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,oBAAA,CAAA;AAAA,MAChB,OAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA,GAAS,IAAI,MAAA,GAAS,MAAA;AAAA,MAC1C;AAAA,KACF;AAAA,EACF;AAAA,EAEA,MAAM,0BAAA,CACJ,MAAA,EACA,OAAA,EACgD;AAChD,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,MAAM,CAAA,gBAAA,CAAA;AAAA,MAC1B,EAAC;AAAA,MACD;AAAA,KACF;AAAA,EACF;AACF;;;ACrGO,IAAM,iBAAA,GAAN,cAAgC,YAAA,CAAa;AAAA,EAA7C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,WAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,cAAA,CAAe,IAAA,EAAyB,OAAA,EAA6C;AACzF,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAe,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EAChE;AAAA,EAEA,MAAM,eAAA,CACJ,MAAA,EACA,OAAA,EACyC;AACzC,IAAA,OAAO,IAAA,CAAK,QAAA,CAAmB,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EAC/D;AAAA,EAEA,MAAM,WAAA,CAAY,EAAA,EAAY,OAAA,EAA6C;AACzE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAc,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC/E;AAAA,EAEA,MAAM,cAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACmB;AACnB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAc,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EAC1E;AAAA,EAEA,MAAM,cAAA,CAAe,EAAA,EAAY,OAAA,EAAyC;AACxE,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,kBAAkB,OAAA,EAAmD;AACzE,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAoB,CAAA,EAAG,KAAK,QAAQ,CAAA,MAAA,CAAA,EAAU,QAAW,OAAO,CAAA;AAAA,EACrF;AACF;;;ACvCO,IAAM,aAAA,GAAN,cAA4B,YAAA,CAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9C,MAAM,WAAW,OAAA,EAAmD;AAClE,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAoB,gBAAA,EAAkB,QAAW,OAAO,CAAA;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,aAAA,CACJ,IAAA,EACA,OAAA,EACyB;AACzB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAoB,gBAAA,EAAkB,MAAM,OAAO,CAAA;AAAA,EACxE;AACF;;;ACjBO,IAAM,qBAAA,GAAN,cAAoC,YAAA,CAAa;AAAA,EAAjD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,eAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,MAAM,kBAAkB,OAAA,EAAuD;AAC7E,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAwB,CAAA,EAAG,KAAK,QAAQ,CAAA,MAAA,CAAA,EAAU,QAAW,OAAO,CAAA;AAAA,EACzF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,qBAAA,CACJ,cAAA,EACA,OAAA,EACgC;AAChC,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,eAAA,EAAkB,cAAc,CAAA,OAAA,CAAA;AAAA,MAChD,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,qBAAA,CACJ,cAAA,EACA,IAAA,EACA,OAAA,EACgC;AAChC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,eAAA,EAAkB,cAAc,CAAA,UAAA,CAAA;AAAA,MAChD,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAA,CACJ,cAAA,EACA,SAAA,EACA,OAAA,EAC6B;AAC7B,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,GAAG,IAAA,CAAK,QAAQ,CAAA,eAAA,EAAkB,cAAc,WAAW,SAAS,CAAA,CAAA;AAAA,MACpE,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;ACCO,IAAM,yBAAA,GAAN,cAAwC,YAAA,CAAa;AAAA,EAArD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,0BAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,MAAM,UAAU,OAAA,EAA0D;AACxE,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA2B,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,QAAW,OAAO,CAAA;AAAA,EACtF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAA,CACJ,IAAA,EACA,OAAA,EAC8B;AAC9B,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAA0B,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,MAAM,OAAO,CAAA;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAA,CAAQ,EAAA,EAAY,OAAA,EAAwD;AAChF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAyB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC1F;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EAC8B;AAC9B,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAyB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EACrF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAA,CAAW,EAAA,EAAY,OAAA,EAAyD;AACpF,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAA6B,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnF;AACF;;;ACvDO,IAAM,mCAAA,GAAN,cAAkD,YAAA,CAAa;AAAA,EAA/D,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,qBAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,MAAM,eAAA,CACJ,cAAA,EACA,IAAA,EACA,OAAA,EACqC;AACrC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,cAAc,CAAA,+BAAA,CAAA;AAAA,MAClC,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAA,CACJ,cAAA,EACA,IAAA,EACA,OAAA,EACqC;AACrC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,cAAc,CAAA,qBAAA,CAAA;AAAA,MAClC,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAA,CACJ,cAAA,EACA,IAAA,EACA,OAAA,EACqC;AACrC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,cAAc,CAAA,sBAAA,CAAA;AAAA,MAClC,IAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,sBAAA,CACJ,cAAA,EACA,OAAA,EACmC;AACnC,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,cAAc,CAAA,sBAAA,CAAA;AAAA,MAClC,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;ACzGO,IAAM,sBAAA,GAAN,cAAqC,YAAA,CAAa;AAAA,EAAlD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,iBAAA;AAAA,EAAA;AAAA,EAEnB,MAAM,mBAAA,CAAoB,IAAA,EAA8B,OAAA,EAAkD;AACxG,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAoB,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EACrE;AAAA,EAEA,MAAM,oBAAA,CACJ,MAAA,EACA,OAAA,EAC8C;AAC9C,IAAA,OAAO,IAAA,CAAK,QAAA,CAAwB,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EACpE;AAAA,EAEA,MAAM,gBAAA,CAAiB,EAAA,EAAY,OAAA,EAAkD;AACnF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAmB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EACpF;AAAA,EAEA,MAAM,mBAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EACwB;AACxB,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAmB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EAC/E;AAAA,EAEA,MAAM,mBAAA,CAAoB,EAAA,EAAY,OAAA,EAAyC;AAC7E,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnE;AAAA,EAEA,MAAM,mBAAA,CAAoB,EAAA,EAAY,OAAA,EAAkD;AACtF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAmB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,OAAA,CAAA,EAAW,MAAA,EAAW,OAAO,CAAA;AAAA,EAC3F;AAAA,EAEA,MAAM,sBAAsB,OAAA,EAAuD;AACjF,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAwB,CAAA,EAAG,KAAK,QAAQ,CAAA,MAAA,CAAA,EAAU,QAAW,OAAO,CAAA;AAAA,EACzF;AACF;;;AChCO,IAAM,gBAAA,GAAN,cAA+B,YAAA,CAAa;AAAA,EAA5C,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,UAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,MAAM,UAAU,OAAA,EAAmD;AACjE,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAoB,CAAA,EAAG,KAAK,QAAQ,CAAA,OAAA,CAAA,EAAW,QAAW,OAAO,CAAA;AAAA,EACtF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,qBAAqB,OAAA,EAAiE;AAC1F,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,WAAA,CAAA;AAAA,MAChB,EAAC;AAAA,MACD;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAAA,CACJ,IAAA,EACA,OAAA,EACyB;AACzB,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAoB,CAAA,EAAG,KAAK,QAAQ,CAAA,OAAA,CAAA,EAAW,MAAM,OAAO,CAAA;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,oBAAoB,OAAA,EAA6D;AACrF,IAAA,OAAO,KAAK,MAAA,CAAO,GAAA;AAAA,MACjB,CAAA,EAAG,KAAK,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAChB,MAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAA,CACJ,IAAA,EACA,OAAA,EAC0B;AAC1B,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAsB,CAAA,EAAG,KAAK,QAAQ,CAAA,aAAA,CAAA,EAAiB,MAAM,OAAO,CAAA;AAAA,EACzF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAA,CACJ,MAAA,EACA,OAAA,EACgD;AAChD,IAAA,OAAO,KAAK,QAAA,CAA0B,CAAA,EAAG,KAAK,QAAQ,CAAA,SAAA,CAAA,EAAa,QAAQ,OAAO,CAAA;AAAA,EACpF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAA,CAAW,EAAA,EAAY,OAAA,EAAoD;AAC/E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAqB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,UAAA,EAAa,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC/F;AAAA,EAEA,MAAM,aAAa,OAAA,EAA8C;AAC/D,IAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAe,CAAA,EAAG,KAAK,QAAQ,CAAA,SAAA,CAAA,EAAa,QAAW,OAAO,CAAA;AAAA,EACnF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WAAW,OAAA,EAAuD;AACtE,IAAA,OAAO,IAAA,CAAK,OAAO,IAAA,CAAyB,CAAA,EAAG,KAAK,QAAQ,CAAA,WAAA,CAAA,EAAe,EAAC,EAAG,OAAO,CAAA;AAAA,EACxF;AACF;;;ACnFO,IAAM,yBAAA,GAAN,cAAwC,YAAA,CAAa;AAAA,EAArD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,QAAA,GAAW,oBAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKnB,MAAM,MAAA,CAAO,IAAA,EAAyB,OAAA,EAAqD;AACzF,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA,CAAuB,IAAA,CAAK,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAA,CACJ,MAAA,EACA,OAAA,EACiD;AACjD,IAAA,OAAO,IAAA,CAAK,QAAA,CAA2B,IAAA,CAAK,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAA,CAAQ,EAAA,EAAY,OAAA,EAAqD;AAC7E,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAsB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EACvF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAA,CAAW,IAAA,EAAoB,OAAA,EAAqD;AACxF,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAsB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,EAAI,MAAA,EAAW,OAAO,CAAA;AAAA,EAC9F;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,MAAA,CACJ,EAAA,EACA,IAAA,EACA,OAAA,EAC2B;AAC3B,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,GAAA,CAAsB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,OAAO,CAAA;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,MAAA,CAAO,EAAA,EAAY,OAAA,EAAyC;AAChE,IAAA,OAAO,IAAA,CAAK,OAAO,MAAA,CAAa,CAAA,EAAG,KAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAA,CACJ,EAAA,EACA,SAAA,EACA,OAAA,EACkC;AAClC,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,MACjB,CAAA,EAAG,IAAA,CAAK,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,QAAA,CAAA;AAAA,MACtB,SAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;;;AC7CO,IAAM,cAAN,MAAkB;AAAA,EAkCvB,YAAY,MAAA,EAAwB;AAClC,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,SAAA,CAAU,MAAM,CAAA;AAGlC,IAAA,IAAA,CAAK,IAAA,GAAO,IAAI,YAAA,CAAa,IAAA,CAAK,MAAM,CAAA;AACxC,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAI,qBAAA,CAAsB,IAAA,CAAK,MAAM,CAAA;AAC1D,IAAA,IAAA,CAAK,IAAA,GAAO,IAAI,YAAA,CAAa,IAAA,CAAK,MAAM,CAAA;AACxC,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAI,qBAAA,CAAsB,IAAA,CAAK,MAAM,CAAA;AAC1D,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC1C,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,eAAA,CAAgB,IAAA,CAAK,MAAM,CAAA;AAC9C,IAAA,IAAA,CAAK,eAAA,GAAkB,IAAI,uBAAA,CAAwB,IAAA,CAAK,MAAM,CAAA;AAC9D,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,iBAAA,CAAkB,IAAA,CAAK,MAAM,CAAA;AAClD,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,iBAAA,CAAkB,IAAA,CAAK,MAAM,CAAA;AAClD,IAAA,IAAA,CAAK,WAAA,GAAc,IAAI,mBAAA,CAAoB,IAAA,CAAK,MAAM,CAAA;AACtD,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,gBAAA,CAAiB,IAAA,CAAK,MAAM,CAAA;AAChD,IAAA,IAAA,CAAK,WAAA,GAAc,IAAI,mBAAA,CAAoB,IAAA,CAAK,MAAM,CAAA;AACtD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC1C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,cAAA,CAAe,IAAA,CAAK,MAAM,CAAA;AAC5C,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC1C,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAI,qBAAA,CAAsB,IAAA,CAAK,MAAM,CAAA;AAC1D,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,cAAA,CAAe,IAAA,CAAK,MAAM,CAAA;AAC5C,IAAA,IAAA,CAAK,UAAA,GAAa,IAAI,kBAAA,CAAmB,IAAA,CAAK,MAAM,CAAA;AACpD,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,gBAAA,CAAiB,IAAA,CAAK,MAAM,CAAA;AAChD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC1C,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,iBAAA,CAAkB,IAAA,CAAK,MAAM,CAAA;AAClD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC1C,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAI,qBAAA,CAAsB,IAAA,CAAK,MAAM,CAAA;AAC1D,IAAA,IAAA,CAAK,iBAAA,GAAoB,IAAI,yBAAA,CAA0B,IAAA,CAAK,MAAM,CAAA;AAClE,IAAA,IAAA,CAAK,2BAAA,GAA8B,IAAI,mCAAA,CAAoC,IAAA,CAAK,MAAM,CAAA;AACtF,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAI,sBAAA,CAAuB,IAAA,CAAK,MAAM,CAAA;AAC5D,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,gBAAA,CAAiB,IAAA,CAAK,MAAM,CAAA;AAChD,IAAA,IAAA,CAAK,iBAAA,GAAoB,IAAI,yBAAA,CAA0B,IAAA,CAAK,MAAM,CAAA;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,KAAA,EAAqB;AAChC,IAAA,IAAA,CAAK,MAAA,CAAO,aAAa,KAAK,CAAA;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,KAAA,EAA4B;AAC1C,IAAA,IAAA,CAAK,MAAA,CAAO,gBAAgB,KAAK,CAAA;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,eAAA,GAAiC;AAC/B,IAAA,OAAO,IAAA,CAAK,OAAO,eAAA,EAAgB;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,KAAA,EAAqB;AAC5B,IAAA,IAAA,CAAK,MAAA,CAAO,SAAS,KAAK,CAAA;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA,GAAkB;AAChB,IAAA,IAAA,CAAK,OAAO,SAAA,EAAU;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,OAAA,EAAwC;AACnD,IAAA,IAAA,CAAK,SAAA,GAAY,OAAA;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,gBAAA,GAAmB;AACjB,IAAA,OAAO,gBAAA,CAAiB,IAAA,CAAK,MAAA,EAAQ,IAAA,CAAK,SAAS,CAAA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA,GAAuB;AACrB,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,EACd;AACF;;;AChKO,IAAK,QAAA,qBAAAC,SAAAA,KAAL;AACLA,EAAAA,SAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AACRA,EAAAA,SAAAA,CAAA,cAAA,CAAA,GAAe,cAAA;AAFL,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA;AAKL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACLA,EAAAA,mBAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AACTA,EAAAA,mBAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AACXA,EAAAA,mBAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,mBAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AACTA,EAAAA,mBAAAA,CAAA,iBAAA,CAAA,GAAkB,iBAAA;AALR,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AAQL,IAAK,kBAAA,qBAAAC,mBAAAA,KAAL;AACLA,EAAAA,mBAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,mBAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AACTA,EAAAA,mBAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AAHD,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA;AAML,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACLA,EAAAA,iBAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,iBAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AACXA,EAAAA,iBAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AACZA,EAAAA,iBAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AAJA,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAOL,IAAK,YAAA,qBAAAC,aAAAA,KAAL;AACLA,EAAAA,aAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AACTA,EAAAA,aAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AAFD,EAAA,OAAAA,aAAAA;AAAA,CAAA,EAAA,YAAA,IAAA,EAAA;AAKL,IAAK,UAAA,qBAAAC,WAAAA,KAAL;AACLA,EAAAA,WAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AACTA,EAAAA,WAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AACXA,EAAAA,WAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AAHD,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AAML,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACLA,EAAAA,eAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,eAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AACTA,EAAAA,eAAAA,CAAA,eAAA,CAAA,GAAgB,eAAA;AAChBA,EAAAA,eAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,eAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AACZA,EAAAA,eAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AANF,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AASL,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACLA,EAAAA,iBAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,iBAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AACZA,EAAAA,iBAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AAHC,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAML,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACLA,EAAAA,YAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AACTA,EAAAA,YAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AAFA,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AAKL,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACLA,EAAAA,eAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,eAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AACXA,EAAAA,eAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AAHE,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA;AAML,IAAK,gBAAA,qBAAAC,iBAAAA,KAAL;AACLA,EAAAA,iBAAAA,CAAA,MAAA,CAAA,GAAO,MAAA;AACPA,EAAAA,iBAAAA,CAAA,aAAA,CAAA,GAAc,aAAA;AACdA,EAAAA,iBAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AACZA,EAAAA,iBAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AAJF,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAOL,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACLA,EAAAA,YAAAA,CAAA,eAAA,CAAA,GAAgB,eAAA;AAChBA,EAAAA,YAAAA,CAAA,YAAA,CAAA,GAAa,YAAA;AACbA,EAAAA,YAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,YAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AACXA,EAAAA,YAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AALE,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;AAQL,IAAK,aAAA,qBAAAC,cAAAA,KAAL;AACLA,EAAAA,cAAAA,CAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnBA,EAAAA,cAAAA,CAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjBA,EAAAA,cAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AACZA,EAAAA,cAAAA,CAAA,eAAA,CAAA,GAAgB,eAAA;AAChBA,EAAAA,cAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AALE,EAAA,OAAAA,cAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;AAQL,IAAK,iBAAA,qBAAAC,kBAAAA,KAAL;AACLA,EAAAA,kBAAAA,CAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClBA,EAAAA,kBAAAA,CAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpBA,EAAAA,kBAAAA,CAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjBA,EAAAA,kBAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AAJE,EAAA,OAAAA,kBAAAA;AAAA,CAAA,EAAA,iBAAA,IAAA,EAAA;AAOL,IAAK,oBAAA,qBAAAC,qBAAAA,KAAL;AACLA,EAAAA,qBAAAA,CAAA,SAAA,CAAA,GAAU,SAAA;AACVA,EAAAA,qBAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AACXA,EAAAA,qBAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AAHE,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAML,IAAK,uBAAA,qBAAAC,wBAAAA,KAAL;AACLA,EAAAA,wBAAAA,CAAA,YAAA,CAAA,GAAa,YAAA;AACbA,EAAAA,wBAAAA,CAAA,mBAAA,CAAA,GAAoB,mBAAA;AACpBA,EAAAA,wBAAAA,CAAA,UAAA,CAAA,GAAW,UAAA;AACXA,EAAAA,wBAAAA,CAAA,QAAA,CAAA,GAAS,QAAA;AACTA,EAAAA,wBAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AALE,EAAA,OAAAA,wBAAAA;AAAA,CAAA,EAAA,uBAAA,IAAA,EAAA;AAQL,IAAK,UAAA,qBAAAC,WAAAA,KAAL;AACLA,EAAAA,WAAAA,CAAA,KAAA,CAAA,GAAM,KAAA;AACNA,EAAAA,WAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AACZA,EAAAA,WAAAA,CAAA,YAAA,CAAA,GAAa,YAAA;AACbA,EAAAA,WAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AACZA,EAAAA,WAAAA,CAAA,MAAA,CAAA,GAAO,MAAA;AALG,EAAA,OAAAA,WAAAA;AAAA,CAAA,EAAA,UAAA,IAAA,EAAA;AC1GL,IAAM,WAAA,GAAc;;EAEzB,oBAAA,EAAsB,sBAAA;EACtB,kBAAA,EAAoB,oBAAA;EACpB,oBAAA,EAAsB,sBAAA;EACtB,oBAAA,EAAsB,sBAAA;;EAGtB,WAAA,EAAa,aAAA;EACb,SAAA,EAAW,WAAA;EACX,WAAA,EAAa,aAAA;EACb,WAAA,EAAa,aAAA;;EAGb,oBAAA,EAAsB,sBAAA;EACtB,kBAAA,EAAoB,oBAAA;EACpB,oBAAA,EAAsB,sBAAA;EACtB,oBAAA,EAAsB,sBAAA;;EAGtB,cAAA,EAAgB,gBAAA;EAChB,YAAA,EAAc,cAAA;EACd,cAAA,EAAgB,gBAAA;EAChB,cAAA,EAAgB,gBAAA;;EAGhB,gBAAA,EAAkB,kBAAA;EAClB,cAAA,EAAgB,gBAAA;EAChB,gBAAA,EAAkB,kBAAA;EAClB,iBAAA,EAAmB,mBAAA;EACnB,gBAAA,EAAkB,kBAAA;;EAGlB,kBAAA,EAAoB,oBAAA;EACpB,gBAAA,EAAkB,kBAAA;EAClB,kBAAA,EAAoB,oBAAA;EACpB,kBAAA,EAAoB,oBAAA;;EAGpB,eAAA,EAAiB,iBAAA;EACjB,aAAA,EAAe,eAAA;;EAGf,YAAA,EAAc,cAAA;EACd,UAAA,EAAY,YAAA;EACZ,YAAA,EAAc,cAAA;EACd,YAAA,EAAc,cAAA;;EAGd,YAAA,EAAc,cAAA;EACd,iBAAA,EAAmB,mBAAA;;EAGnB,eAAA,EAAiB,iBAAA;;EAGjB,aAAA,EAAe,eAAA;EACf,WAAA,EAAa,aAAA;EACb,aAAA,EAAe,eAAA;;EAGf,YAAA,EAAc,cAAA;EACd,UAAA,EAAY,YAAA;EACZ,YAAA,EAAc,cAAA;;EAGd,eAAA,EAAiB,iBAAA;EACjB,aAAA,EAAe,eAAA;EACf,eAAA,EAAiB,iBAAA;EACjB,eAAA,EAAiB,iBAAA;;EAGjB,yBAAA,EAA2B,2BAAA;EAC3B,uBAAA,EAAyB,yBAAA;EACzB,yBAAA,EAA2B,2BAAA;EAC3B,yBAAA,EAA2B,2BAAA;;EAG3B,YAAA,EAAc,cAAA;EACd,UAAA,EAAY,YAAA;EACZ,YAAA,EAAc,cAAA;EACd,YAAA,EAAc,cAAA;;EAGd,gBAAA,EAAkB,kBAAA;EAClB,cAAA,EAAgB,gBAAA;EAChB,gBAAA,EAAkB,kBAAA;EAClB,gBAAA,EAAkB,kBAAA;;EAGlB,sBAAA,EAAwB,wBAAA;EACxB,oBAAA,EAAsB,sBAAA;EACtB,sBAAA,EAAwB,wBAAA;EACxB,sBAAA,EAAwB,wBAAA;;EAGxB,WAAA,EAAa,aAAA;EACb,KAAA,EAAO,OAAA;EACP,GAAA,EAAK;AACP;AAGO,IAAM,gBAAA,GAAmB;EAC9B,KAAA,EAAO,MAAA,CAAO,OAAO,WAAW,CAAA;EAChC,OAAA,EAAS;IACP,WAAA,CAAY,SAAA;IACZ,WAAA,CAAY,kBAAA;IACZ,WAAA,CAAY,cAAA;IACZ,WAAA,CAAY,YAAA;IACZ,WAAA,CAAY,cAAA;IACZ,WAAA,CAAY,gBAAA;IACZ,WAAA,CAAY,cAAA;IACZ,WAAA,CAAY,kBAAA;IACZ,WAAA,CAAY,gBAAA;IACZ,WAAA,CAAY,kBAAA;IACZ,WAAA,CAAY,eAAA;IACZ,WAAA,CAAY,aAAA;IACZ,WAAA,CAAY,YAAA;IACZ,WAAA,CAAY,aAAA;IACZ,WAAA,CAAY,WAAA;IACZ,WAAA,CAAY,aAAA;IACZ,WAAA,CAAY,YAAA;IACZ,WAAA,CAAY,UAAA;IACZ,WAAA,CAAY,YAAA;IACZ,WAAA,CAAY,eAAA;IACZ,WAAA,CAAY,aAAA;IACZ,WAAA,CAAY,eAAA;IACZ,WAAA,CAAY,eAAA;IACZ,WAAA,CAAY,yBAAA;IACZ,WAAA,CAAY,uBAAA;IACZ,WAAA,CAAY,yBAAA;IACZ,WAAA,CAAY,yBAAA;IACZ,WAAA,CAAY,YAAA;IACZ,WAAA,CAAY,UAAA;IACZ,WAAA,CAAY,YAAA;IACZ,WAAA,CAAY,gBAAA;IACZ,WAAA,CAAY,cAAA;IACZ,WAAA,CAAY,gBAAA;IACZ,WAAA,CAAY,gBAAA;IACZ,WAAA,CAAY,sBAAA;IACZ,WAAA,CAAY,oBAAA;IACZ,WAAA,CAAY,sBAAA;IACZ,WAAA,CAAY;AAAA;AAEhB;AAGO,IAAM,SAAA,GAAY;EACvB,gBAAA,EAAkB,GAAA;;EAClB,QAAA,EAAU,IAAA;;EACV,WAAA,EAAa,IAAA;;EACb,OAAA,EAAS,GAAA;;EACT,SAAA,EAAW;;AACb;AAGO,IAAM,WAAA,GAAc;AACzB,EAAA,aAAA,EAAe,KAAK,IAAA,GAAO,IAAA;;AAC3B,EAAA,cAAA,EAAgB,IAAI,IAAA,GAAO,IAAA;;AAC3B,EAAA,iBAAA,EAAmB,KAAK,IAAA,GAAO;;AACjC;AAGO,IAAM,mBAAA,GAAsB;EACjC,IAAA,EAAM,CAAA;EACN,KAAA,EAAO,EAAA;EACP,SAAA,EAAW;AACb;AAGO,IAAM,YAAA,GAAe;EAC1B,SAAA,EAAW,YAAA;EACX,QAAA,EAAU,qBAAA;EACV,SAAA,EAAW;AACb;AAGO,IAAM,OAAA,GAAU;EACrB,MAAA,EAAQ,UAAA;EACR,UAAA,EAAY;AACd;ACrLO,IAAK,SAAA,qBAAAC,UAAAA,KAAL;AACLA,EAAAA,UAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AACRA,EAAAA,UAAAA,CAAA,WAAA,CAAA,GAAY,WAAA;AACZA,EAAAA,UAAAA,CAAA,OAAA,CAAA,GAAQ,OAAA;AAHE,EAAA,OAAAA,UAAAA;AAAA,CAAA,EAAA,SAAA,IAAA,EAAA;AAML,IAAM,UAAA,GAAa;AAInB,SAAS,YAAY,QAAA,EAA8C;AACxE,EAAA,OAAO,QAAA,KAAa,OAAA;AACtB;AAEO,SAAS,gBAAgB,QAAA,EAA8C;AAC5E,EAAA,OAAO,QAAA,KAAa,WAAA;AACtB;AAEO,SAAS,gBAAA,CACd,UACA,YAAA,EACS;AACT,EAAA,IAAI,CAAC,UAAU,OAAO,KAAA;AAEtB,EAAA,IAAI,QAAA,KAAa,SAAiB,OAAO,IAAA;AACzC,EAAA,OAAO,YAAA,CAAa,SAAS,QAAe,CAAA;AAC9C;AAEO,SAAS,mBAAmB,QAAA,EAA6C;AAC9E,EAAA,IAAI,CAAC,UAAU,OAAO,EAAA;AAEtB,EAAA,QAAQ,QAAA;IACN,KAAK,OAAA;AACH,MAAA,OAAO,eAAA;IACT,KAAK,WAAA;AACH,MAAA,OAAO,WAAA;IACT,KAAK,OAAA;AACH,MAAA,OAAO,aAAA;AACT,IAAA;AACE,MAAA,OAAO,QAAA;AAAA;AAEb;AAEO,SAAS,mBAAmB,QAAA,EAA6C;AAC9E,EAAA,IAAI,CAAC,UAAU,OAAO,EAAA;AAEtB,EAAA,QAAQ,QAAA;IACN,KAAK,OAAA;AACH,MAAA,OAAO,0GAAA;IACT,KAAK,WAAA;AACH,MAAA,OAAO,2EAAA;IACT,KAAK,OAAA;AACH,MAAA,OAAO,+EAAA;AACT,IAAA;AACE,MAAA,OAAO,EAAA;AAAA;AAEb;AAEO,SAAS,oBAAoB,QAAA,EAA+C;AACjF,EAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAA;AAEtB,EAAA,QAAQ,QAAA;IACN,KAAK,OAAA;AACH,MAAA,OAAO;AACL,QAAA,6CAAA;AACA,QAAA,+BAAA;AACA,QAAA,+CAAA;AACA,QAAA,iCAAA;AACA,QAAA,kCAAA;AACA,QAAA,6BAAA;AACA,QAAA,+BAAA;AACA,QAAA,sBAAA;AACA,QAAA,2BAAA;AACA,QAAA,kCAAA;AACA,QAAA,4BAAA;AACA,QAAA,0BAAA;AACA,QAAA;AAAA,OAAA;IAEJ,KAAK,OAAA;AACH,MAAA,OAAO;AACL,QAAA,iCAAA;AACA,QAAA,kCAAA;AACA,QAAA,6BAAA;AACA,QAAA,+BAAA;AACA,QAAA,sBAAA;AACA,QAAA,2BAAA;AACA,QAAA,kCAAA;AACA,QAAA,4BAAA;AACA,QAAA,0BAAA;AACA,QAAA;AAAA,OAAA;IAEJ,KAAK,WAAA;AACH,MAAA,OAAO;AACL,QAAA,6CAAA;AACA,QAAA,0CAAA;AACA,QAAA,WAAA;AACA,QAAA,cAAA;AACA,QAAA,0BAAA;AACA,QAAA;AAAA,OAAA;AAEJ,IAAA;AACE,MAAA,OAAO,EAAA;AAAC;AAEd;;;AC2CO,IAAK,cAAA,qBAAAC,eAAAA,KAAL;AACL,EAAAA,gBAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,gBAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,gBAAA,qBAAA,CAAA,GAAsB,qBAAA;AACtB,EAAAA,gBAAA,WAAA,CAAA,GAAY,WAAA;AAJF,EAAA,OAAAA,eAAAA;AAAA,CAAA,EAAA,cAAA,IAAA,EAAA","file":"index.js","sourcesContent":["export class GymSpaceError extends Error {\n constructor(\n message: string,\n public statusCode?: number,\n public code?: string,\n public details?: any\n ) {\n super(message);\n this.name = 'GymSpaceError';\n }\n}\n\nexport class AuthenticationError extends GymSpaceError {\n constructor(message = 'Authentication failed') {\n super(message, 401, 'AUTHENTICATION_ERROR');\n this.name = 'AuthenticationError';\n }\n}\n\nexport class AuthorizationError extends GymSpaceError {\n constructor(message = 'Access denied') {\n super(message, 403, 'AUTHORIZATION_ERROR');\n this.name = 'AuthorizationError';\n }\n}\n\nexport class NotFoundError extends GymSpaceError {\n constructor(resource: string, id?: string) {\n const message = id \n ? `${resource} with id ${id} not found`\n : `${resource} not found`;\n super(message, 404, 'NOT_FOUND');\n this.name = 'NotFoundError';\n }\n}\n\nexport class ValidationError extends GymSpaceError {\n constructor(message: string, errors?: any) {\n super(message, 400, 'VALIDATION_ERROR', errors);\n this.name = 'ValidationError';\n }\n}\n\nexport class NetworkError extends GymSpaceError {\n constructor(message = 'Network request failed') {\n super(message, 0, 'NETWORK_ERROR');\n this.name = 'NetworkError';\n }\n}","import axios, {\n AxiosInstance,\n AxiosRequestConfig,\n AxiosError,\n InternalAxiosRequestConfig,\n AxiosRequestHeaders,\n} from 'axios';\nimport { GymSpaceConfig, RequestOptions } from './types';\nimport {\n GymSpaceError,\n AuthenticationError,\n AuthorizationError,\n NotFoundError,\n ValidationError,\n NetworkError,\n} from './errors';\n\nexport class ApiClient {\n private axiosInstance: AxiosInstance;\n private config: GymSpaceConfig;\n private refreshToken: string | null = null;\n\n public getAccessToken(): string | null {\n return this.config.apiKey || null;\n }\n\n constructor(config: GymSpaceConfig) {\n this.config = config;\n\n this.axiosInstance = axios.create({\n baseURL: config.baseURL,\n timeout: config.timeout || 30000,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n this.setupInterceptors();\n }\n\n private setupInterceptors(): void {\n // Request interceptor\n this.axiosInstance.interceptors.request.use(\n (config: InternalAxiosRequestConfig) => {\n // Add Authorization header if auth token is configured\n if (this.config.apiKey && config.headers) {\n config.headers['Authorization'] = `Bearer ${this.config.apiKey}`;\n }\n\n // Add refresh token header for current-session endpoint\n if (this.refreshToken && config.url?.includes('current-session') && config.headers) {\n config.headers['X-Refresh-Token'] = this.refreshToken;\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n },\n );\n\n // Response interceptor - simplified without automatic token refresh\n this.axiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n async (error: AxiosError) => {\n // Simply throw the error - no automatic refresh attempts\n throw this.handleError(error);\n },\n );\n }\n\n private handleError(error: AxiosError): GymSpaceError {\n const requestPath = error.config?.url || 'unknown';\n const method = error.config?.method?.toUpperCase() || 'unknown';\n\n if (!error.response) {\n console.error('Network Error:', {\n method,\n path: requestPath,\n error: error.message,\n });\n return new NetworkError(error.message);\n }\n\n const { status, data } = error.response;\n const errorData = data as any;\n const resource = errorData?.resource || 'unknown';\n\n console.error('HTTP Error:', {\n method,\n path: requestPath,\n status,\n resource,\n message: errorData?.message || error.message,\n errorCode: errorData?.code,\n details: errorData,\n });\n\n switch (status) {\n case 401:\n return new AuthenticationError(errorData?.message || 'Authentication failed');\n case 403:\n return new AuthorizationError(errorData?.message || 'Access denied');\n case 404:\n return new NotFoundError(errorData?.resource || 'Resource', errorData?.id);\n case 400:\n return new ValidationError(errorData?.message || 'Validation failed', errorData?.errors);\n default:\n return new GymSpaceError(\n errorData?.message || error.message,\n status,\n errorData?.code,\n errorData,\n );\n }\n }\n\n private mergeOptions(options?: RequestOptions): AxiosRequestConfig {\n const headers: Record<string, string> = { ...options?.headers };\n\n if (options?.gymId) {\n headers['X-Gym-Id'] = options.gymId;\n }\n\n return { headers };\n }\n\n async request<T>(\n method: string,\n path: string,\n data?: any,\n options?: RequestOptions & AxiosRequestConfig,\n ): Promise<T> {\n const { headers, ...axiosConfig } = options || {};\n\n const config: AxiosRequestConfig = {\n method,\n url: path,\n ...this.mergeOptions({ headers }),\n ...axiosConfig,\n };\n\n if (data && ['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {\n config.data = data;\n } else if (data && method.toUpperCase() === 'GET') {\n config.params = data;\n }\n\n const response = await this.axiosInstance.request<T>(config);\n return response.data;\n }\n\n get<T>(path: string, params?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('GET', path, params, options);\n }\n\n post<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('POST', path, data, options);\n }\n\n put<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('PUT', path, data, options);\n }\n\n patch<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('PATCH', path, data, options);\n }\n\n delete<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>('DELETE', path, undefined, options);\n }\n\n setAuthToken(token: string): void {\n this.config.apiKey = token;\n }\n\n setRefreshToken(token: string | null): void {\n this.refreshToken = token;\n }\n\n getRefreshToken(): string | null {\n return this.refreshToken;\n }\n\n setGymId(gymId: string): void {\n this.axiosInstance.defaults.headers.common['X-Gym-Id'] = gymId;\n }\n\n clearAuth(): void {\n delete this.config.apiKey;\n this.refreshToken = null;\n delete this.axiosInstance.defaults.headers.common['Authorization'];\n delete this.axiosInstance.defaults.headers.common['X-Gym-Id'];\n }\n\n getBaseUrl(): string {\n return this.config.baseURL;\n }\n}\n","import { ApiClient } from '../client';\n\nexport function createAgentFetch(apiClient: ApiClient, customFetch?: typeof globalThis.fetch) {\n const fetchFn = customFetch || fetch;\n\n return async (path: string, options?: RequestInit) => {\n const fullUrl = `${apiClient.getBaseUrl()}/agent${path}`;\n\n // Get gymId from axios instance headers\n const axiosInstance = (apiClient as any).axiosInstance;\n const gymId = axiosInstance?.defaults?.headers?.common?.['X-Gym-Id'];\n\n const headers = {\n 'Content-Type': 'application/json',\n ...(apiClient.getAccessToken() && { Authorization: `Bearer ${apiClient.getAccessToken()}` }),\n ...(gymId && { 'X-Gym-Id': gymId }),\n ...(options?.headers || {}),\n };\n\n return fetchFn(fullUrl, {\n ...options,\n headers,\n });\n };\n}\n","import { ApiClient } from '../client';\nimport { RequestOptions, PaginatedResponseDto, PaginationQueryDto } from '../types';\n\nexport abstract class BaseResource {\n constructor(protected client: ApiClient) {}\n\n protected async request<T>(\n path: string,\n options: {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n body?: string;\n headers?: Record<string, string>;\n }\n ): Promise<T> {\n const data = options.body ? JSON.parse(options.body) : undefined;\n \n switch (options.method) {\n case 'GET':\n return this.client.get<T>(path, data, { headers: options.headers });\n case 'POST':\n return this.client.post<T>(path, data, { headers: options.headers });\n case 'PUT':\n return this.client.put<T>(path, data, { headers: options.headers });\n case 'PATCH':\n return this.client.patch<T>(path, data, { headers: options.headers });\n case 'DELETE':\n return this.client.delete<T>(path, { headers: options.headers });\n default:\n throw new Error(`Unsupported HTTP method: ${options.method}`);\n }\n }\n\n protected buildPath(base: string, ...segments: (string | undefined)[]): string {\n const parts = [base];\n for (const segment of segments) {\n if (segment !== undefined) {\n parts.push(segment);\n }\n }\n return parts.join('/');\n }\n\n protected async paginate<T>(\n path: string,\n params?: PaginationQueryDto & Record<string, any>,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<T>> {\n return this.client.get<PaginatedResponseDto<T>>(path, params, options);\n }\n}","import {\n CurrentSessionResponse,\n InvitationValidationResponse,\n LoginDto,\n LoginResponseDto,\n RegisterCollaboratorDto,\n RegisterOwnerDto,\n ResendVerificationDto,\n VerifyEmailDto,\n ChangePasswordDto,\n ChangePasswordResponseDto,\n RequestPasswordResetDto,\n RequestPasswordResetResponseDto,\n VerifyResetCodeDto,\n VerifyResetCodeResponseDto,\n ResetPasswordDto,\n ResetPasswordResponseDto,\n ResendResetCodeDto,\n ResendResetCodeResponseDto,\n} from '../models/auth';\nimport { SubscriptionPlan } from '../models/subscriptions';\nimport { RequestOptions } from '../types';\nimport { BaseResource } from './base';\n\nexport class AuthResource extends BaseResource {\n private basePath = 'auth';\n\n async registerOwner(data: RegisterOwnerDto, options?: RequestOptions): Promise<void> {\n return this.client.post(`${this.basePath}/register/owner`, data, options);\n }\n\n async login(data: LoginDto, options?: RequestOptions): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(`${this.basePath}/login`, data, options);\n }\n\n async refreshToken(refreshToken: string, options?: RequestOptions): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(`${this.basePath}/refresh`, { refresh_token: refreshToken }, options);\n }\n\n async verifyEmail(\n data: VerifyEmailDto,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n return this.client.post(`${this.basePath}/verify-email`, data, options);\n }\n\n async resendVerification(\n data: ResendVerificationDto,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n console.log('the path', `${this.basePath}/resend-verification`);\n\n return this.client.post(`${this.basePath}/resend-verification`, data, options);\n }\n\n\n async getSubscriptionPlans(options?: RequestOptions): Promise<{ data: SubscriptionPlan[] }> {\n return this.client.get(`${this.basePath}/subscription-plans`, options);\n }\n\n async validateInvitation(\n token: string,\n options?: RequestOptions,\n ): Promise<InvitationValidationResponse> {\n return this.client.get(`${this.basePath}/invitation/${token}`, options);\n }\n\n async registerCollaborator(\n data: RegisterCollaboratorDto,\n options?: RequestOptions,\n ): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(\n `${this.basePath}/register/collaborator`,\n data,\n options,\n );\n }\n\n async getCurrentSession(options?: RequestOptions): Promise<CurrentSessionResponse> {\n return this.client.get<CurrentSessionResponse>(`${this.basePath}/current-session`, options);\n }\n\n async changePassword(\n data: ChangePasswordDto,\n options?: RequestOptions,\n ): Promise<ChangePasswordResponseDto> {\n return this.client.post<ChangePasswordResponseDto>(\n `${this.basePath}/change-password`,\n data,\n options,\n );\n }\n\n async requestPasswordReset(\n data: RequestPasswordResetDto,\n options?: RequestOptions,\n ): Promise<RequestPasswordResetResponseDto> {\n return this.client.post<RequestPasswordResetResponseDto>(\n `${this.basePath}/password-reset/request`,\n data,\n options,\n );\n }\n\n async verifyResetCode(\n data: VerifyResetCodeDto,\n options?: RequestOptions,\n ): Promise<VerifyResetCodeResponseDto> {\n return this.client.post<VerifyResetCodeResponseDto>(\n `${this.basePath}/password-reset/verify-code`,\n data,\n options,\n );\n }\n\n async resetPassword(\n data: ResetPasswordDto,\n options?: RequestOptions,\n ): Promise<ResetPasswordResponseDto> {\n return this.client.post<ResetPasswordResponseDto>(\n `${this.basePath}/password-reset/reset`,\n data,\n options,\n );\n }\n\n async resendResetCode(\n data: ResendResetCodeDto,\n options?: RequestOptions,\n ): Promise<ResendResetCodeResponseDto> {\n return this.client.post<ResendResetCodeResponseDto>(\n `${this.basePath}/password-reset/resend-code`,\n data,\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport { Organization, UpdateOrganizationDto, OrganizationStats, OrganizationWithDetails, OrganizationAdminDetails } from '../models/organizations';\nimport { RequestOptions } from '../types';\n\nexport class OrganizationsResource extends BaseResource {\n private basePath = 'organizations';\n\n async getOrganization(id: string, options?: RequestOptions): Promise<Organization> {\n return this.client.get<Organization>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateOrganization(\n id: string, \n data: UpdateOrganizationDto, \n options?: RequestOptions\n ): Promise<Organization> {\n return this.client.put<Organization>(`${this.basePath}/${id}`, data, options);\n }\n\n async getOrganizationStats(id: string, options?: RequestOptions): Promise<OrganizationStats> {\n return this.client.get<OrganizationStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async listOrganizations(options?: RequestOptions): Promise<OrganizationWithDetails[]> {\n return this.client.get<OrganizationWithDetails[]>(`${this.basePath}/list`, undefined, options);\n }\n\n async getOrganizationForAdmin(id: string, options?: RequestOptions): Promise<OrganizationAdminDetails> {\n return this.client.get<OrganizationAdminDetails>(`${this.basePath}/admin/${id}`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { Gym, CreateGymDto, UpdateGymDto, GymStats, UpdateGymScheduleDto, UpdateGymSocialMediaDto } from '../models/gyms';\nimport { RequestOptions } from '../types';\n\nexport class GymsResource extends BaseResource {\n private basePath = 'gyms';\n\n async createGym(\n data: CreateGymDto, \n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.post<Gym>(\n this.basePath, \n data, \n options\n );\n }\n\n async getOrganizationGyms(\n options?: RequestOptions\n ): Promise<Gym[]> {\n return this.client.get<Gym[]>(\n this.basePath,\n undefined,\n options\n );\n }\n\n async getGym(id: string, options?: RequestOptions): Promise<Gym> {\n return this.client.get<Gym>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateGym(\n id: string,\n data: UpdateGymDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}`, data, options);\n }\n\n async getGymStats(id: string, options?: RequestOptions): Promise<GymStats> {\n return this.client.get<GymStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async toggleGymStatus(id: string, options?: RequestOptions): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async updateCurrentGym(\n data: Partial<{\n name?: string;\n address?: string;\n phone?: string;\n email?: string;\n assetId?: string;\n }>,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/current`, data, options);\n }\n\n async updateGymSchedule(\n id: string,\n data: UpdateGymScheduleDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/schedule`, data, options);\n }\n\n async updateGymSocialMedia(\n id: string,\n data: UpdateGymSocialMediaDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/social-media`, data, options);\n }\n}","import { BaseResource } from './base';\nimport type {\n Collaborator,\n ListCollaboratorsParams,\n UpdateCollaboratorDto,\n UpdateCollaboratorStatusDto,\n UpdateCollaboratorRoleDto,\n ActivityQueryParams,\n StatsQueryParams,\n CollaboratorStats,\n ActivityItem,\n} from '@gymspace/shared';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class CollaboratorsResource extends BaseResource {\n private basePath = 'collaborators';\n\n async list(\n params?: ListCollaboratorsParams,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<Collaborator>> {\n return this.paginate<Collaborator>(this.basePath, params, options);\n }\n\n async get(id: string, options?: RequestOptions): Promise<Collaborator> {\n return this.client.get<Collaborator>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async update(\n id: string,\n data: UpdateCollaboratorDto,\n options?: RequestOptions,\n ): Promise<Collaborator> {\n return this.client.patch<Collaborator>(`${this.basePath}/${id}`, data, options);\n }\n\n async updateRole(\n id: string,\n data: UpdateCollaboratorRoleDto,\n options?: RequestOptions,\n ): Promise<Collaborator> {\n return this.client.patch<Collaborator>(`${this.basePath}/${id}/role`, data, options);\n }\n\n async updateStatus(\n id: string,\n data: UpdateCollaboratorStatusDto,\n options?: RequestOptions,\n ): Promise<Collaborator> {\n return this.client.patch<Collaborator>(`${this.basePath}/${id}/status`, data, options);\n }\n\n async getActivity(\n id: string,\n params?: ActivityQueryParams,\n options?: RequestOptions,\n ): Promise<ActivityItem[]> {\n return this.client.get<ActivityItem[]>(`${this.basePath}/${id}/activity`, params, options);\n }\n\n async getStats(\n id: string,\n params?: StatsQueryParams,\n options?: RequestOptions,\n ): Promise<CollaboratorStats> {\n return this.client.get<CollaboratorStats>(`${this.basePath}/${id}/stats`, params, options);\n }\n}\n","import { BaseResource } from './base';\nimport type { Role } from '@gymspace/shared';\nimport type { PermissionsGroup } from '../models/roles';\nimport { RequestOptions } from '../types';\n\nexport class RolesResource extends BaseResource {\n private basePath = 'roles';\n\n /**\n * Get all roles of the organization (without pagination)\n */\n async getRoles(options?: RequestOptions): Promise<Role[]> {\n return this.client.get<Role[]>(this.basePath, undefined, options);\n }\n\n /**\n * Get a specific role by ID\n */\n async getRole(id: string, options?: RequestOptions): Promise<Role> {\n return this.client.get<Role>(`${this.basePath}/${id}`, undefined, options);\n }\n\n /**\n * Get all available permissions organized by category\n */\n async getAvailablePermissions(options?: RequestOptions): Promise<PermissionsGroup> {\n return this.client.get<PermissionsGroup>(`${this.basePath}/permissions`, undefined, options);\n }\n}\n","import { BaseResource } from './base';\nimport {\n Client,\n CreateClientDto,\n UpdateClientDto,\n ClientStats,\n ClientStat,\n SearchClientsParams,\n} from '../models/clients';\nimport { RequestOptions } from '../types';\n\nexport class ClientsResource extends BaseResource {\n private basePath = 'clients';\n\n async createClient(data: CreateClientDto, options?: RequestOptions): Promise<Client> {\n return this.client.post<Client>(this.basePath, data, options);\n }\n\n async searchClients(params?: SearchClientsParams, options?: RequestOptions): Promise<Client[]> {\n return this.client.get<Client[]>(this.basePath, params, options);\n }\n\n async getClient(id: string, options?: RequestOptions): Promise<Client> {\n return this.client.get<Client>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateClient(id: string, data: UpdateClientDto, options?: RequestOptions): Promise<Client> {\n return this.client.put<Client>(`${this.basePath}/${id}`, data, options);\n }\n\n async toggleClientStatus(id: string, options?: RequestOptions): Promise<Client> {\n return this.client.put<Client>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async getClientStats(id: string, options?: RequestOptions): Promise<ClientStats> {\n return this.client.get<ClientStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async getClientStat(id: string, statKey: string, options?: RequestOptions): Promise<ClientStat> {\n return this.client.get<ClientStat>(\n `${this.basePath}/${id}/stats/${statKey}`,\n undefined,\n options,\n );\n }\n\n async getClientStatsByCategory(\n id: string,\n category: string,\n options?: RequestOptions,\n ): Promise<ClientStat[]> {\n return this.client.get<ClientStat[]>(\n `${this.basePath}/${id}/stats/category/${category}`,\n undefined,\n options,\n );\n }\n\n async getAvailableStats(options?: RequestOptions): Promise<ClientStat[]> {\n return this.client.get<ClientStat[]>(`${this.basePath}/stats/available`, undefined, options);\n }\n\n async searchClientsForCheckIn(\n params?: SearchClientsParams,\n options?: RequestOptions,\n ): Promise<Client[]> {\n // This endpoint automatically includes contract status and only active clients\n return this.client.get<Client[]>(`${this.basePath}/search/check-in`, params, options);\n }\n}\n","import { BaseResource } from './base';\nimport { \n MembershipPlan, \n CreateMembershipPlanDto, \n UpdateMembershipPlanDto, \n MembershipPlanStats,\n GetMembershipPlansParams \n} from '../models/membership-plans';\nimport { RequestOptions } from '../types';\n\nexport class MembershipPlansResource extends BaseResource {\n private basePath = 'membership-plans';\n\n async createMembershipPlan(\n data: CreateMembershipPlanDto, \n options?: RequestOptions\n ): Promise<MembershipPlan> {\n return this.client.post<MembershipPlan>(this.basePath, data, options);\n }\n\n async getGymMembershipPlans(\n params?: GetMembershipPlansParams,\n options?: RequestOptions\n ): Promise<MembershipPlan[]> {\n return this.client.get<MembershipPlan[]>(this.basePath, params, options);\n }\n\n async getMembershipPlan(id: string, options?: RequestOptions): Promise<MembershipPlan> {\n return this.client.get<MembershipPlan>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateMembershipPlan(\n id: string,\n data: UpdateMembershipPlanDto,\n options?: RequestOptions\n ): Promise<MembershipPlan> {\n return this.client.put<MembershipPlan>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteMembershipPlan(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getMembershipPlanStats(\n id: string, \n options?: RequestOptions\n ): Promise<MembershipPlanStats> {\n return this.client.get<MembershipPlanStats>(\n `${this.basePath}/${id}/stats`, \n undefined, \n options\n );\n }\n}","import { BaseResource } from './base';\nimport {\n Contract,\n CreateContractDto,\n RenewContractDto,\n FreezeContractDto,\n GetContractsParams,\n} from '../models/contracts';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ContractsResource extends BaseResource {\n private basePath = 'contracts';\n\n async createContract(data: CreateContractDto, options?: RequestOptions): Promise<Contract> {\n return this.client.post<Contract>(this.basePath, data, options);\n }\n\n async getGymContracts(\n params?: GetContractsParams,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<Contract>> {\n return this.paginate<Contract>(this.basePath, params, options);\n }\n\n async getContract(id: string, options?: RequestOptions): Promise<Contract> {\n return this.client.get<Contract>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async getClientContracts(clientId: string, options?: RequestOptions): Promise<Contract[]> {\n return this.client.get<Contract[]>(`${this.basePath}/client/${clientId}`, undefined, options);\n }\n\n async renewContract(\n id: string,\n data: RenewContractDto,\n options?: RequestOptions,\n ): Promise<Contract> {\n return this.client.post<Contract>(`${this.basePath}/${id}/renew`, data, options);\n }\n\n async freezeContract(\n id: string,\n data: FreezeContractDto,\n options?: RequestOptions,\n ): Promise<Contract> {\n return this.client.post<Contract>(`${this.basePath}/${id}/freeze`, data, options);\n }\n\n async cancelContract(\n id: string,\n data: { reason: string },\n options?: RequestOptions,\n ): Promise<Contract> {\n return this.client.put<Contract>(`${this.basePath}/${id}/cancel`, data, options);\n }\n\n async resendWhatsAppNotification(\n contractId: string,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n return this.client.post<{ success: boolean; message: string }>(\n `${this.basePath}/${contractId}/resend-whatsapp`,\n {},\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport {\n DashboardStats,\n ExpiringContract,\n ContractsRevenue,\n SalesRevenue,\n Debts,\n CheckIns,\n NewClients,\n DateRangeParams,\n} from '../models/dashboard';\n\nexport class DashboardResource extends BaseResource {\n /**\n * Get dashboard statistics (lightweight counts only)\n * @returns Dashboard statistics including client and contract counts\n */\n async getStats(): Promise<DashboardStats> {\n return this.client.get<DashboardStats>('/dashboard/stats');\n }\n\n /**\n * Get contracts revenue within date range\n * @param params Optional date range parameters\n * @returns Contracts revenue data for the specified period\n */\n async getContractsRevenue(params?: DateRangeParams): Promise<ContractsRevenue> {\n return this.client.get<ContractsRevenue>('/dashboard/contracts-revenue', params);\n }\n\n /**\n * Get sales revenue within date range\n * @param params Optional date range parameters\n * @returns Sales revenue data for the specified period\n */\n async getSalesRevenue(params?: DateRangeParams): Promise<SalesRevenue> {\n return this.client.get<SalesRevenue>('/dashboard/sales-revenue', params);\n }\n\n /**\n * Get total debts within date range\n * @param params Optional date range parameters\n * @returns Outstanding debts data for the specified period\n */\n async getDebts(params?: DateRangeParams): Promise<Debts> {\n return this.client.get<Debts>('/dashboard/debts', params);\n }\n\n /**\n * Get check-ins count within date range\n * @param params Optional date range parameters\n * @returns Check-ins data for the specified period\n */\n async getCheckIns(params?: DateRangeParams): Promise<CheckIns> {\n return this.client.get<CheckIns>('/dashboard/check-ins', params);\n }\n\n /**\n * Get new clients count within date range\n * @param params Optional date range parameters\n * @returns New clients data for the specified period\n */\n async getNewClients(params?: DateRangeParams): Promise<NewClients> {\n return this.client.get<NewClients>('/dashboard/new-clients', params);\n }\n\n /**\n * Get expiring contracts within date range\n * @param limit Maximum number of contracts to return (default: 10)\n * @param params Optional date range parameters\n * @returns List of contracts expiring in the specified period\n */\n async getExpiringContracts(\n limit: number = 10,\n params?: DateRangeParams,\n ): Promise<ExpiringContract[]> {\n return this.client.get<ExpiringContract[]>('/dashboard/expiring-contracts', {\n limit,\n ...params,\n });\n }\n}","import { BaseResource } from './base';\nimport { \n Evaluation, \n CreateEvaluationDto, \n UpdateEvaluationDto,\n GetClientEvaluationsParams,\n EvaluationReport\n} from '../models/evaluations';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class EvaluationsResource extends BaseResource {\n private basePath = 'evaluations';\n\n async createEvaluation(\n data: CreateEvaluationDto, \n options?: RequestOptions\n ): Promise<Evaluation> {\n return this.client.post<Evaluation>(this.basePath, data, options);\n }\n\n async getEvaluation(id: string, options?: RequestOptions): Promise<Evaluation> {\n return this.client.get<Evaluation>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateEvaluation(\n id: string,\n data: UpdateEvaluationDto,\n options?: RequestOptions\n ): Promise<Evaluation> {\n return this.client.put<Evaluation>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteEvaluation(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getClientEvaluations(\n clientId: string,\n params?: GetClientEvaluationsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Evaluation>> {\n return this.paginate<Evaluation>(\n `${this.basePath}/client/${clientId}`,\n params,\n options\n );\n }\n\n async getGymEvaluationStats(options?: RequestOptions): Promise<any> {\n return this.client.get(`${this.basePath}/gym/stats`, undefined, options);\n }\n\n async generateEvaluationReport(\n id: string,\n options?: RequestOptions\n ): Promise<EvaluationReport> {\n return this.client.get<EvaluationReport>(\n `${this.basePath}/${id}/report`,\n undefined,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport { \n CheckIn, \n CreateCheckInDto, \n SearchCheckInsParams,\n GetCheckInStatsParams,\n CheckInStats,\n GetClientCheckInHistoryParams,\n CurrentlyInGymResponse,\n CheckInListResponse,\n ClientCheckInHistory\n} from '../models/check-ins';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class CheckInsResource extends BaseResource {\n private basePath = 'check-ins';\n\n async createCheckIn(data: CreateCheckInDto, options?: RequestOptions): Promise<CheckIn> {\n return this.client.post<CheckIn>(this.basePath, data, options);\n }\n\n async searchCheckIns(\n params?: SearchCheckInsParams,\n options?: RequestOptions\n ): Promise<CheckInListResponse> {\n return this.client.get<CheckInListResponse>(this.basePath, params, options);\n }\n\n async getCurrentlyInGym(options?: RequestOptions): Promise<CurrentlyInGymResponse> {\n return this.client.get<CurrentlyInGymResponse>(`${this.basePath}/current`, undefined, options);\n }\n\n async getCheckIn(id: string, options?: RequestOptions): Promise<CheckIn> {\n return this.client.get<CheckIn>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async deleteCheckIn(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getGymCheckInStats(\n params: GetCheckInStatsParams,\n options?: RequestOptions\n ): Promise<CheckInStats> {\n return this.client.get<CheckInStats>(\n `${this.basePath}/stats/${params.period}`,\n undefined,\n options\n );\n }\n\n async getClientCheckInHistory(\n clientId: string,\n params?: GetClientCheckInHistoryParams,\n options?: RequestOptions\n ): Promise<ClientCheckInHistory> {\n return this.client.get<ClientCheckInHistory>(\n `${this.basePath}/client/${clientId}/history`,\n params,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport type {\n Invitation,\n CreateInvitationDto,\n AcceptInvitationDto,\n ValidateByCodeDto,\n} from '@gymspace/shared';\nimport { RequestOptions } from '../types';\n\nexport interface GetGymInvitationsParams {\n gymId: string;\n}\n\nexport class InvitationsResource extends BaseResource {\n private basePath = 'invitations';\n\n async createInvitation(data: CreateInvitationDto, options?: RequestOptions): Promise<Invitation> {\n return this.client.post<Invitation>(this.basePath, data, options);\n }\n\n async getGymInvitations(\n params: GetGymInvitationsParams,\n options?: RequestOptions,\n ): Promise<Invitation[]> {\n return this.client.get<Invitation[]>(this.basePath, params, options);\n }\n\n async validateByCode(\n data: ValidateByCodeDto,\n options?: RequestOptions,\n ): Promise<{ email: string; gymName: string; roleName: string; token: string }> {\n return this.client.post(`${this.basePath}/validate-by-code`, data, options);\n }\n\n async acceptInvitation(data: AcceptInvitationDto, options?: RequestOptions): Promise<void> {\n return this.client.post<void>(`${this.basePath}/accept`, data, options);\n }\n\n async cancelInvitation(id: string, options?: RequestOptions): Promise<void> {\n return this.client.put<void>(`${this.basePath}/${id}/cancel`, undefined, options);\n }\n}\n","import { BaseResource } from './base';\nimport { \n Lead, \n CreateLeadDto, \n UpdateLeadDto,\n SearchLeadsParams,\n LeadStats \n} from '../models/leads';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class LeadsResource extends BaseResource {\n private basePath = 'leads';\n\n async createLead(data: CreateLeadDto, options?: RequestOptions): Promise<Lead> {\n return this.client.post<Lead>(this.basePath, data, options);\n }\n\n async searchLeads(\n params?: SearchLeadsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Lead>> {\n return this.paginate<Lead>(this.basePath, params, options);\n }\n\n async getLead(id: string, options?: RequestOptions): Promise<Lead> {\n return this.client.get<Lead>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateLead(\n id: string,\n data: UpdateLeadDto,\n options?: RequestOptions\n ): Promise<Lead> {\n return this.client.put<Lead>(`${this.basePath}/${id}`, data, options);\n }\n\n async getLeadStats(options?: RequestOptions): Promise<LeadStats> {\n return this.client.get<LeadStats>(`${this.basePath}/stats/gym`, undefined, options);\n }\n\n async convertLead(id: string, options?: RequestOptions): Promise<{ clientId: string }> {\n return this.client.post<{ clientId: string }>(\n `${this.basePath}/${id}/convert`,\n undefined,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport type { AssetResponseDto } from '../models/assets';\n\nexport class AssetsResource extends BaseResource {\n /**\n * Upload a new asset\n */\n async upload(data: {\n file: File;\n description?: string;\n metadata?: Record<string, any>;\n }): Promise<AssetResponseDto> {\n const formData = new FormData();\n formData.append('file', data.file);\n\n if (data.description) {\n formData.append('description', data.description);\n }\n\n if (data.metadata) {\n formData.append('metadata', JSON.stringify(data.metadata));\n }\n\n return await this.client.post<AssetResponseDto>('/assets/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n }\n\n /**\n * Get a single asset by ID\n */\n async findOne(id: string): Promise<AssetResponseDto> {\n return await this.client.get<AssetResponseDto>(`/assets/${id}`);\n }\n\n /**\n * Get multiple assets by IDs\n */\n async findByIds(ids: string[]): Promise<AssetResponseDto[]> {\n if (!ids || ids.length === 0) {\n return [];\n }\n\n // El segundo parámetro del get son los params directamente\n return await this.client.get<AssetResponseDto[]>('/assets/by-ids', {\n ids: ids.join(',')\n });\n }\n\n /**\n * Get all assets for the current gym\n */\n async findAll(): Promise<AssetResponseDto[]> {\n return await this.client.get<AssetResponseDto[]>('/assets');\n }\n\n /**\n * Delete an asset\n */\n async delete(id: string): Promise<void> {\n await this.client.delete(`/assets/${id}`);\n }\n\n /**\n * Get a signed download URL for an asset\n */\n async getDownloadUrl(id: string): Promise<{ url: string; filename: string }> {\n return await this.client.get<{ url: string; filename: string }>(`/assets/${id}/download-url`);\n }\n\n /**\n * Download an asset as a blob\n */\n async download(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/assets/${id}/download`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n\n /**\n * Get the render URL for an asset (for inline display)\n * This returns the URL directly without making an API call\n */\n getRenderUrl(id: string): string {\n return `${this.client.getBaseUrl()}/assets/${id}/render`;\n }\n\n /**\n * Get asset blob for rendering/preview\n */\n async render(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/assets/${id}/render`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n}\n","import { BaseResource } from './base';\nimport type { FileResponseDto } from '../models/files';\n\nexport class FilesResource extends BaseResource {\n /**\n * Upload a new file\n */\n async upload(data: {\n file: File;\n description?: string;\n metadata?: Record<string, any>;\n }): Promise<FileResponseDto> {\n const formData = new FormData();\n formData.append('file', data.file);\n\n if (data.description) {\n formData.append('description', data.description);\n }\n\n if (data.metadata) {\n formData.append('metadata', JSON.stringify(data.metadata));\n }\n\n return await this.client.post<FileResponseDto>('/files/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n }\n\n /**\n * Get all files for the current user\n */\n async findAll(): Promise<FileResponseDto[]> {\n return await this.client.get<FileResponseDto[]>('/files');\n }\n\n /**\n * Get a single file by ID\n */\n async findOne(id: string): Promise<FileResponseDto> {\n return await this.client.get<FileResponseDto>(`/files/${id}`);\n }\n\n /**\n * Get multiple files by IDs\n */\n async findByIds(ids: string[]): Promise<FileResponseDto[]> {\n if (!ids || ids.length === 0) {\n return [];\n }\n\n // The second parameter of get is the params directly\n return await this.client.get<FileResponseDto[]>('/files/by-ids', {\n ids: ids.join(',')\n });\n }\n\n /**\n * Delete a file\n */\n async delete(id: string): Promise<void> {\n await this.client.delete(`/files/${id}`);\n }\n\n /**\n * Download a file as a blob\n */\n async download(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/files/${id}/download`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n\n /**\n * Get the render URL for a file (for inline display)\n * This returns the URL directly without making an API call\n */\n getRenderUrl(id: string): string {\n return `${this.client.getBaseUrl()}/files/${id}/render`;\n }\n\n /**\n * Get file blob for rendering/preview\n */\n async render(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/files/${id}/render`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\nimport { PaginationQueryDto } from '../types';\n\nexport interface SearchCatalogParams extends PaginationQueryDto {\n search?: string;\n city?: string;\n state?: string;\n latitude?: string;\n longitude?: string;\n radius?: string;\n}\n\nexport interface GetFeaturedGymsParams {\n limit: string;\n}\n\nexport interface CatalogGym {\n id: string;\n name: string;\n slug: string;\n address?: string;\n city?: string;\n state?: string;\n phone?: string;\n email?: string;\n amenities?: any;\n settings?: any;\n}\n\nexport interface CityWithGyms {\n city: string;\n state: string;\n count: number;\n}\n\nexport class PublicCatalogResource extends BaseResource {\n private basePath = 'catalog';\n\n async searchCatalog(\n params?: SearchCatalogParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<CatalogGym>> {\n return this.paginate<CatalogGym>(`${this.basePath}/search`, params, options);\n }\n\n async getFeaturedGyms(\n params: GetFeaturedGymsParams,\n options?: RequestOptions\n ): Promise<CatalogGym[]> {\n return this.client.get<CatalogGym[]>(`${this.basePath}/featured`, params, options);\n }\n\n async getCitiesWithGyms(options?: RequestOptions): Promise<CityWithGyms[]> {\n return this.client.get<CityWithGyms[]>(`${this.basePath}/cities`, undefined, options);\n }\n\n async getGymBySlug(slug: string, options?: RequestOptions): Promise<CatalogGym> {\n return this.client.get<CatalogGym>(`${this.basePath}/${slug}`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions } from '../types';\n\nexport interface HealthResponse {\n status: string;\n timestamp: string;\n}\n\nexport interface ReadyResponse {\n status: string;\n services: {\n database: boolean;\n cache: boolean;\n storage: boolean;\n };\n}\n\nexport class HealthResource extends BaseResource {\n private basePath = 'health';\n\n async health(options?: RequestOptions): Promise<HealthResponse> {\n return this.client.get<HealthResponse>(this.basePath, undefined, options);\n }\n\n async ready(options?: RequestOptions): Promise<ReadyResponse> {\n return this.client.get<ReadyResponse>(`${this.basePath}/ready`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport {\n StartOnboardingData,\n StartOnboardingResponse,\n UpdateGymSettingsData,\n ConfigureFeaturesData,\n CompleteGuidedSetupData,\n OnboardingStatus,\n OnboardingResponse,\n} from '../models/onboarding';\n\nexport class OnboardingResource extends BaseResource {\n /**\n * Creates owner account, organization, and initial gym\n * Now also sends verification and organization codes via email\n */\n async start(data: StartOnboardingData): Promise<StartOnboardingResponse> {\n const response = await this.client.post<StartOnboardingResponse>('/onboarding/start', data);\n \n // Store tokens after successful onboarding start\n if (response.access_token) {\n this.client.setAuthToken(response.access_token);\n }\n \n return response;\n }\n\n /**\n * Updates basic gym settings (step 2 of onboarding)\n * Configure basic gym information like name, address, etc.\n */\n async updateGymSettings(data: UpdateGymSettingsData): Promise<OnboardingResponse> {\n return this.client.put<OnboardingResponse>('/onboarding/gym-settings', data);\n }\n\n /**\n * Configure gym features (step 3 of onboarding)\n * Enable/disable various management features\n */\n async configureFeatures(data: ConfigureFeaturesData): Promise<OnboardingResponse> {\n return this.client.put<OnboardingResponse>('/onboarding/configure-features', data);\n }\n\n /**\n * Mark onboarding as complete\n */\n async completeSetup(data: CompleteGuidedSetupData): Promise<OnboardingResponse> {\n return this.client.post<OnboardingResponse>('/onboarding/complete', data);\n }\n\n /**\n * Get current onboarding status\n * Check progress and next steps\n */\n async getStatus(gymId: string): Promise<OnboardingStatus> {\n return this.client.get<OnboardingStatus>(`/onboarding/status/${gymId}`);\n }\n}","import { BaseResource } from './base';\nimport { \n Product,\n ProductCategory,\n StockMovement,\n CreateProductDto, \n CreateServiceDto,\n UpdateProductDto,\n UpdateStockDto,\n CreateProductCategoryDto,\n UpdateProductCategoryDto,\n SearchProductsParams\n} from '../models/products';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ProductsResource extends BaseResource {\n private basePath = 'products';\n\n // Product Category Methods\n async createCategory(\n data: CreateProductCategoryDto, \n options?: RequestOptions\n ): Promise<ProductCategory> {\n return this.client.post<ProductCategory>(`${this.basePath}/categories`, data, options);\n }\n\n async getCategories(options?: RequestOptions): Promise<ProductCategory[]> {\n return this.client.get<ProductCategory[]>(`${this.basePath}/categories`, undefined, options);\n }\n\n async updateCategory(\n id: string,\n data: UpdateProductCategoryDto,\n options?: RequestOptions\n ): Promise<ProductCategory> {\n return this.client.put<ProductCategory>(`${this.basePath}/categories/${id}`, data, options);\n }\n\n async deleteCategory(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/categories/${id}`, options);\n }\n\n // Product Methods\n async createProduct(data: CreateProductDto, options?: RequestOptions): Promise<Product> {\n return this.client.post<Product>(this.basePath, data, options);\n }\n\n async createService(data: CreateServiceDto, options?: RequestOptions): Promise<Product> {\n return this.client.post<Product>(`${this.basePath}/services`, data, options);\n }\n\n async searchProducts(\n params?: SearchProductsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Product>> {\n return this.paginate<Product>(this.basePath, params, options);\n }\n\n async getProduct(id: string, options?: RequestOptions): Promise<Product> {\n return this.client.get<Product>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateProduct(\n id: string,\n data: UpdateProductDto,\n options?: RequestOptions\n ): Promise<Product> {\n return this.client.put<Product>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteProduct(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async toggleProductStatus(id: string, options?: RequestOptions): Promise<Product> {\n return this.client.patch<Product>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async updateStock(\n id: string,\n data: UpdateStockDto,\n options?: RequestOptions\n ): Promise<Product> {\n return this.client.patch<Product>(`${this.basePath}/${id}/stock`, data, options);\n }\n\n async getLowStockProducts(\n threshold: number = 10,\n options?: RequestOptions\n ): Promise<Product[]> {\n return this.client.get<Product[]>(\n `${this.basePath}/low-stock`,\n { threshold },\n options\n );\n }\n\n async getProductStockMovements(\n id: string,\n options?: RequestOptions\n ): Promise<StockMovement[]> {\n return this.client.get<StockMovement[]>(`${this.basePath}/${id}/stock-movements`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport {\n Sale,\n CreateSaleDto,\n UpdateSaleDto,\n UpdatePaymentStatusDto,\n PaySaleDto,\n SearchSalesParams,\n SalesStats,\n TopSellingProduct,\n CustomerSalesReport,\n} from '../models/sales';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class SalesResource extends BaseResource {\n private basePath = 'sales';\n\n async createSale(data: CreateSaleDto, options?: RequestOptions): Promise<Sale> {\n return this.client.post<Sale>(this.basePath, data, options);\n }\n\n async searchSales(\n params?: SearchSalesParams,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<Sale>> {\n return this.paginate<Sale>(this.basePath, params, options);\n }\n\n async getSale(id: string, options?: RequestOptions): Promise<Sale> {\n return this.client.get<Sale>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateSale(id: string, data: UpdateSaleDto, options?: RequestOptions): Promise<Sale> {\n return this.client.put<Sale>(`${this.basePath}/${id}`, data, options);\n }\n\n async updatePaymentStatus(\n id: string,\n paymentStatus: 'paid' | 'unpaid',\n options?: RequestOptions,\n ): Promise<Sale> {\n return this.client.put<Sale>(\n `${this.basePath}/${id}/payment-status`,\n { paymentStatus },\n options,\n );\n }\n\n async paySale(id: string, data: PaySaleDto, options?: RequestOptions): Promise<Sale> {\n return this.client.post<Sale>(`${this.basePath}/${id}/payment`, data, options);\n }\n\n async deleteSale(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getSalesStats(\n startDate?: string,\n endDate?: string,\n options?: RequestOptions,\n ): Promise<SalesStats> {\n const params: Record<string, string> = {};\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<SalesStats>(\n `${this.basePath}/stats`,\n Object.keys(params).length > 0 ? params : undefined,\n options,\n );\n }\n\n async getTopSellingProducts(\n limit: number = 10,\n startDate?: string,\n endDate?: string,\n options?: RequestOptions,\n ): Promise<TopSellingProduct[]> {\n const params: Record<string, string | number> = { limit };\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<TopSellingProduct[]>(`${this.basePath}/top-products`, params, options);\n }\n\n async getSalesByCustomer(\n startDate?: string,\n endDate?: string,\n options?: RequestOptions,\n ): Promise<CustomerSalesReport> {\n const params: Record<string, string> = {};\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<CustomerSalesReport>(\n `${this.basePath}/reports/by-customer`,\n Object.keys(params).length > 0 ? params : undefined,\n options,\n );\n }\n\n async resendWhatsAppNotification(\n saleId: string,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n return this.client.post<{ success: boolean; message: string }>(\n `${this.basePath}/${saleId}/resend-whatsapp`,\n {},\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport { \n Supplier,\n CreateSupplierDto, \n UpdateSupplierDto,\n SearchSuppliersParams,\n SuppliersStats\n} from '../models/suppliers';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class SuppliersResource extends BaseResource {\n private basePath = 'suppliers';\n\n async createSupplier(data: CreateSupplierDto, options?: RequestOptions): Promise<Supplier> {\n return this.client.post<Supplier>(this.basePath, data, options);\n }\n\n async searchSuppliers(\n params?: SearchSuppliersParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Supplier>> {\n return this.paginate<Supplier>(this.basePath, params, options);\n }\n\n async getSupplier(id: string, options?: RequestOptions): Promise<Supplier> {\n return this.client.get<Supplier>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateSupplier(\n id: string,\n data: UpdateSupplierDto,\n options?: RequestOptions\n ): Promise<Supplier> {\n return this.client.put<Supplier>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteSupplier(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getSuppliersStats(options?: RequestOptions): Promise<SuppliersStats> {\n return this.client.get<SuppliersStats>(`${this.basePath}/stats`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { UserProfileDto, UpdateProfileDto } from '../models/users';\nimport { RequestOptions } from '../types';\n\nexport class UsersResource extends BaseResource {\n /**\n * Get the current user's profile\n * @param options - Request options\n * @returns User profile data\n */\n async getProfile(options?: RequestOptions): Promise<UserProfileDto> {\n return this.client.get<UserProfileDto>('/users/profile', undefined, options);\n }\n\n /**\n * Update the current user's profile\n * @param data - Profile update data\n * @param options - Request options\n * @returns Updated user profile\n */\n async updateProfile(\n data: UpdateProfileDto,\n options?: RequestOptions\n ): Promise<UserProfileDto> {\n return this.client.put<UserProfileDto>('/users/profile', data, options);\n }\n}","import {\n AvailablePlanDto,\n SubscriptionStatusDto,\n AffiliateOrganizationDto,\n CheckLimitResponse,\n} from '../models/subscriptions';\nimport { RequestOptions } from '../types';\nimport { BaseResource } from './base';\n\nexport class SubscriptionsResource extends BaseResource {\n private basePath = 'subscriptions';\n\n /**\n * Get available subscription plans (currently only free plans)\n */\n async getAvailablePlans(options?: RequestOptions): Promise<AvailablePlanDto[]> {\n return this.client.get<AvailablePlanDto[]>(`${this.basePath}/plans`, undefined, options);\n }\n\n /**\n * Get subscription status for an organization\n */\n async getSubscriptionStatus(\n organizationId: string,\n options?: RequestOptions,\n ): Promise<SubscriptionStatusDto> {\n return this.client.get<SubscriptionStatusDto>(\n `${this.basePath}/organizations/${organizationId}/status`,\n undefined,\n options,\n );\n }\n\n /**\n * Affiliate organization to a subscription plan\n */\n async affiliateOrganization(\n organizationId: string,\n data: AffiliateOrganizationDto,\n options?: RequestOptions,\n ): Promise<SubscriptionStatusDto> {\n return this.client.post<SubscriptionStatusDto>(\n `${this.basePath}/organizations/${organizationId}/affiliate`,\n data,\n options,\n );\n }\n\n /**\n * Check subscription limits\n * @param organizationId Organization ID\n * @param limitType Type of limit to check: 'gyms', 'clients', or 'users'\n */\n async checkSubscriptionLimit(\n organizationId: string,\n limitType: 'gyms' | 'clients' | 'users',\n options?: RequestOptions,\n ): Promise<CheckLimitResponse> {\n return this.client.get<CheckLimitResponse>(\n `${this.basePath}/organizations/${organizationId}/limits/${limitType}`,\n undefined,\n options,\n );\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions } from '../types';\n\n// Import the types we'll define\nexport interface SubscriptionPlanDto {\n id: string;\n name: string;\n price: {\n PEN?: { currency: 'PEN'; value: number };\n USD?: { currency: 'USD'; value: number };\n COP?: { currency: 'COP'; value: number };\n MXN?: { currency: 'MXN'; value: number };\n };\n billingFrequency: string;\n duration?: number;\n durationPeriod?: string;\n maxGyms: number;\n maxClientsPerGym: number;\n maxUsersPerGym: number;\n features: Record<string, any>;\n description?: string;\n isActive: boolean;\n createdAt: Date;\n updatedAt: Date;\n activeSubscriptions?: number;\n totalOrganizations?: number;\n}\n\nexport interface PriceDto {\n currency: string;\n value: number;\n}\n\nexport interface PricingDto {\n PEN: PriceDto;\n}\n\nexport interface CreateSubscriptionPlanDto {\n name: string;\n price: PricingDto;\n billingFrequency: string;\n duration?: number;\n durationPeriod?: 'DAY' | 'MONTH';\n maxGyms: number;\n maxClientsPerGym: number;\n maxUsersPerGym: number;\n features: Record<string, any>;\n description?: string;\n isActive?: boolean;\n}\n\nexport interface UpdateSubscriptionPlanDto {\n name?: string;\n price?: PricingDto;\n billingFrequency?: string;\n duration?: number;\n durationPeriod?: 'DAY' | 'MONTH';\n maxGyms?: number;\n maxClientsPerGym?: number;\n maxUsersPerGym?: number;\n features?: Record<string, any>;\n description?: string;\n isActive?: boolean;\n}\n\nexport class SubscriptionPlansResource extends BaseResource {\n private basePath = 'admin/subscription-plans';\n\n /**\n * List all subscription plans (Super Admin only)\n */\n async listPlans(options?: RequestOptions): Promise<SubscriptionPlanDto[]> {\n return this.client.get<SubscriptionPlanDto[]>(`${this.basePath}`, undefined, options);\n }\n\n /**\n * Create new subscription plan (Super Admin only)\n */\n async createPlan(\n data: CreateSubscriptionPlanDto,\n options?: RequestOptions,\n ): Promise<SubscriptionPlanDto> {\n return this.client.post<SubscriptionPlanDto>(`${this.basePath}`, data, options);\n }\n\n /**\n * Get subscription plan details (Super Admin only)\n */\n async getPlan(id: string, options?: RequestOptions): Promise<SubscriptionPlanDto> {\n return this.client.get<SubscriptionPlanDto>(`${this.basePath}/${id}`, undefined, options);\n }\n\n /**\n * Update subscription plan (Super Admin only)\n */\n async updatePlan(\n id: string,\n data: UpdateSubscriptionPlanDto,\n options?: RequestOptions,\n ): Promise<SubscriptionPlanDto> {\n return this.client.put<SubscriptionPlanDto>(`${this.basePath}/${id}`, data, options);\n }\n\n /**\n * Soft delete subscription plan (Super Admin only)\n */\n async deletePlan(id: string, options?: RequestOptions): Promise<{ success: boolean }> {\n return this.client.delete<{ success: boolean }>(`${this.basePath}/${id}`, options);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions } from '../types';\n\n// Import types from existing subscriptions model and add new ones\nexport interface AdminSubscriptionStatusDto {\n id: string;\n organizationId: string;\n subscriptionPlanId: string;\n planName: string;\n status: string; // Should match SubscriptionStatus enum\n startDate: Date;\n endDate: Date;\n isActive: boolean;\n isExpired: boolean;\n daysRemaining: number;\n metadata?: Record<string, any>;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface ActivateRenewalDto {\n subscriptionPlanId?: string;\n durationMonths?: number;\n notes?: string;\n}\n\nexport interface CancelSubscriptionDto {\n reason: string;\n immediateTermination?: boolean;\n notes?: string;\n}\n\nexport interface UpgradeSubscriptionDto {\n newSubscriptionPlanId: string;\n immediateUpgrade?: boolean;\n notes?: string;\n}\n\nexport interface SubscriptionHistoryDto {\n id: string;\n planName: string;\n status: string; // Should match SubscriptionStatus enum\n startDate: Date;\n endDate: Date;\n isActive: boolean;\n metadata?: Record<string, any>;\n createdBy: {\n id: string;\n name: string;\n email: string;\n };\n createdAt: Date;\n}\n\nexport class AdminSubscriptionManagementResource extends BaseResource {\n private basePath = 'admin/organizations';\n\n /**\n * Activate subscription renewal for an organization (Super Admin only)\n */\n async activateRenewal(\n organizationId: string,\n data: ActivateRenewalDto,\n options?: RequestOptions,\n ): Promise<AdminSubscriptionStatusDto> {\n return this.client.post<AdminSubscriptionStatusDto>(\n `${this.basePath}/${organizationId}/subscriptions/activate-renewal`,\n data,\n options,\n );\n }\n\n /**\n * Cancel subscription for an organization (Super Admin only)\n */\n async cancelSubscription(\n organizationId: string,\n data: CancelSubscriptionDto,\n options?: RequestOptions,\n ): Promise<AdminSubscriptionStatusDto> {\n return this.client.post<AdminSubscriptionStatusDto>(\n `${this.basePath}/${organizationId}/subscriptions/cancel`,\n data,\n options,\n );\n }\n\n /**\n * Upgrade subscription plan for an organization (Super Admin only)\n */\n async upgradeSubscription(\n organizationId: string,\n data: UpgradeSubscriptionDto,\n options?: RequestOptions,\n ): Promise<AdminSubscriptionStatusDto> {\n return this.client.post<AdminSubscriptionStatusDto>(\n `${this.basePath}/${organizationId}/subscriptions/upgrade`,\n data,\n options,\n );\n }\n\n /**\n * Get subscription history for an organization (Super Admin only)\n */\n async getSubscriptionHistory(\n organizationId: string,\n options?: RequestOptions,\n ): Promise<SubscriptionHistoryDto[]> {\n return this.client.get<SubscriptionHistoryDto[]>(\n `${this.basePath}/${organizationId}/subscriptions/history`,\n undefined,\n options,\n );\n }\n}","import { BaseResource } from './base';\nimport { \n PaymentMethod,\n CreatePaymentMethodDto, \n UpdatePaymentMethodDto,\n SearchPaymentMethodsParams,\n PaymentMethodStats\n} from '../models/payment-methods';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class PaymentMethodsResource extends BaseResource {\n private basePath = 'payment-methods';\n\n async createPaymentMethod(data: CreatePaymentMethodDto, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.post<PaymentMethod>(this.basePath, data, options);\n }\n\n async searchPaymentMethods(\n params?: SearchPaymentMethodsParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<PaymentMethod>> {\n return this.paginate<PaymentMethod>(this.basePath, params, options);\n }\n\n async getPaymentMethod(id: string, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.get<PaymentMethod>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updatePaymentMethod(\n id: string,\n data: UpdatePaymentMethodDto,\n options?: RequestOptions\n ): Promise<PaymentMethod> {\n return this.client.put<PaymentMethod>(`${this.basePath}/${id}`, data, options);\n }\n\n async deletePaymentMethod(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async togglePaymentMethod(id: string, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.put<PaymentMethod>(`${this.basePath}/${id}/toggle`, undefined, options);\n }\n\n async getPaymentMethodStats(options?: RequestOptions): Promise<PaymentMethodStats> {\n return this.client.get<PaymentMethodStats>(`${this.basePath}/stats`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport {\n WhatsAppConfig,\n WhatsAppMessage,\n CreateWhatsAppConfigDto,\n UpdateWhatsAppConfigDto,\n SendWhatsAppMessageDto,\n SearchWhatsAppMessagesDto,\n ConnectionStatusResponse,\n InitializeConnectionResponse,\n Contact,\n DisconnectResponse,\n} from '../models/whatsapp';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class WhatsAppResource extends BaseResource {\n private basePath = 'whatsapp';\n\n /**\n * Get WhatsApp configuration for the current gym\n */\n async getConfig(options?: RequestOptions): Promise<WhatsAppConfig> {\n return this.client.get<WhatsAppConfig>(`${this.basePath}/config`, undefined, options);\n }\n\n /**\n * Initialize WhatsApp connection\n * Returns QR code if needed\n */\n async initializeConnection(options?: RequestOptions): Promise<InitializeConnectionResponse> {\n return this.client.post<InitializeConnectionResponse>(\n `${this.basePath}/initialize`,\n {},\n options,\n );\n }\n\n /**\n * Update WhatsApp configuration\n */\n async updateConfig(\n data: UpdateWhatsAppConfigDto,\n options?: RequestOptions,\n ): Promise<WhatsAppConfig> {\n return this.client.put<WhatsAppConfig>(`${this.basePath}/config`, data, options);\n }\n\n /**\n * Get WhatsApp connection status\n */\n async getConnectionStatus(options?: RequestOptions): Promise<ConnectionStatusResponse> {\n return this.client.get<ConnectionStatusResponse>(\n `${this.basePath}/connection-status`,\n undefined,\n options,\n );\n }\n\n /**\n * Send a WhatsApp message\n */\n async sendMessage(\n data: SendWhatsAppMessageDto,\n options?: RequestOptions,\n ): Promise<WhatsAppMessage> {\n return this.client.post<WhatsAppMessage>(`${this.basePath}/send-message`, data, options);\n }\n\n /**\n * Get WhatsApp messages with pagination and filters\n */\n async getMessages(\n params?: SearchWhatsAppMessagesDto,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<WhatsAppMessage>> {\n return this.paginate<WhatsAppMessage>(`${this.basePath}/messages`, params, options);\n }\n\n /**\n * Get a specific WhatsApp message by ID\n */\n async getMessage(id: string, options?: RequestOptions): Promise<WhatsAppMessage> {\n return this.client.get<WhatsAppMessage>(`${this.basePath}/messages/${id}`, undefined, options);\n }\n\n async listContacts(options?: RequestOptions): Promise<Contact[]> {\n return this.client.get<Contact[]>(`${this.basePath}/contacts`, undefined, options);\n }\n\n /**\n * Disconnect WhatsApp instance\n * Logs out from WhatsApp without deleting the instance\n */\n async disconnect(options?: RequestOptions): Promise<DisconnectResponse> {\n return this.client.post<DisconnectResponse>(`${this.basePath}/disconnect`, {}, options);\n }\n}\n","import { BaseResource } from './base';\nimport {\n WhatsAppTemplate,\n CreateTemplateDto,\n UpdateTemplateDto,\n SearchTemplatesDto,\n PreviewTemplateResponse,\n} from '../models/whatsapp';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\n// Import TemplateCode type from shared (re-exported via types)\ntype TemplateCode = string;\n\nexport class WhatsAppTemplatesResource extends BaseResource {\n private basePath = 'whatsapp/templates';\n\n /**\n * Create a new WhatsApp template\n */\n async create(data: CreateTemplateDto, options?: RequestOptions): Promise<WhatsAppTemplate> {\n return this.client.post<WhatsAppTemplate>(this.basePath, data, options);\n }\n\n /**\n * Get all WhatsApp templates with pagination and filters\n */\n async findAll(\n params?: SearchTemplatesDto,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<WhatsAppTemplate>> {\n return this.paginate<WhatsAppTemplate>(this.basePath, params, options);\n }\n\n /**\n * Get a specific WhatsApp template by ID\n */\n async findOne(id: string, options?: RequestOptions): Promise<WhatsAppTemplate> {\n return this.client.get<WhatsAppTemplate>(`${this.basePath}/${id}`, undefined, options);\n }\n\n /**\n * Get a WhatsApp template by code\n */\n async findByCode(code: TemplateCode, options?: RequestOptions): Promise<WhatsAppTemplate> {\n return this.client.get<WhatsAppTemplate>(`${this.basePath}/code/${code}`, undefined, options);\n }\n\n /**\n * Update a WhatsApp template\n */\n async update(\n id: string,\n data: UpdateTemplateDto,\n options?: RequestOptions,\n ): Promise<WhatsAppTemplate> {\n return this.client.put<WhatsAppTemplate>(`${this.basePath}/${id}`, data, options);\n }\n\n /**\n * Delete a WhatsApp template\n */\n async remove(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n /**\n * Preview a template with variables\n */\n async preview(\n id: string,\n variables: Record<string, any>,\n options?: RequestOptions,\n ): Promise<PreviewTemplateResponse> {\n return this.client.post<PreviewTemplateResponse>(\n `${this.basePath}/${id}/preview`,\n variables,\n options,\n );\n }\n}\n","import { ApiClient } from './client';\nimport { GymSpaceConfig } from './types';\nimport { createAgentFetch } from './utils/agent-fetch';\nimport {\n AuthResource,\n OrganizationsResource,\n GymsResource,\n CollaboratorsResource,\n RolesResource,\n ClientsResource,\n MembershipPlansResource,\n ContractsResource,\n DashboardResource,\n EvaluationsResource,\n CheckInsResource,\n InvitationsResource,\n LeadsResource,\n AssetsResource,\n FilesResource,\n PublicCatalogResource,\n HealthResource,\n OnboardingResource,\n ProductsResource,\n SalesResource,\n SuppliersResource,\n UsersResource,\n SubscriptionsResource,\n SubscriptionPlansResource,\n AdminSubscriptionManagementResource,\n PaymentMethodsResource,\n WhatsAppResource,\n WhatsAppTemplatesResource,\n} from './resources';\n\nexport class GymSpaceSdk {\n public client: ApiClient;\n private expoFetch?: typeof globalThis.fetch;\n\n // Resources\n public auth: AuthResource;\n public organizations: OrganizationsResource;\n public gyms: GymsResource;\n public collaborators: CollaboratorsResource;\n public roles: RolesResource;\n public clients: ClientsResource;\n public membershipPlans: MembershipPlansResource;\n public contracts: ContractsResource;\n public dashboard: DashboardResource;\n public evaluations: EvaluationsResource;\n public checkIns: CheckInsResource;\n public invitations: InvitationsResource;\n public leads: LeadsResource;\n public assets: AssetsResource;\n public files: FilesResource;\n public publicCatalog: PublicCatalogResource;\n public health: HealthResource;\n public onboarding: OnboardingResource;\n public products: ProductsResource;\n public sales: SalesResource;\n public suppliers: SuppliersResource;\n public users: UsersResource;\n public subscriptions: SubscriptionsResource;\n public subscriptionPlans: SubscriptionPlansResource;\n public adminSubscriptionManagement: AdminSubscriptionManagementResource;\n public paymentMethods: PaymentMethodsResource;\n public whatsapp: WhatsAppResource;\n public whatsappTemplates: WhatsAppTemplatesResource;\n\n constructor(config: GymSpaceConfig) {\n this.client = new ApiClient(config);\n\n // Initialize resources\n this.auth = new AuthResource(this.client);\n this.organizations = new OrganizationsResource(this.client);\n this.gyms = new GymsResource(this.client);\n this.collaborators = new CollaboratorsResource(this.client);\n this.roles = new RolesResource(this.client);\n this.clients = new ClientsResource(this.client);\n this.membershipPlans = new MembershipPlansResource(this.client);\n this.contracts = new ContractsResource(this.client);\n this.dashboard = new DashboardResource(this.client);\n this.evaluations = new EvaluationsResource(this.client);\n this.checkIns = new CheckInsResource(this.client);\n this.invitations = new InvitationsResource(this.client);\n this.leads = new LeadsResource(this.client);\n this.assets = new AssetsResource(this.client);\n this.files = new FilesResource(this.client);\n this.publicCatalog = new PublicCatalogResource(this.client);\n this.health = new HealthResource(this.client);\n this.onboarding = new OnboardingResource(this.client);\n this.products = new ProductsResource(this.client);\n this.sales = new SalesResource(this.client);\n this.suppliers = new SuppliersResource(this.client);\n this.users = new UsersResource(this.client);\n this.subscriptions = new SubscriptionsResource(this.client);\n this.subscriptionPlans = new SubscriptionPlansResource(this.client);\n this.adminSubscriptionManagement = new AdminSubscriptionManagementResource(this.client);\n this.paymentMethods = new PaymentMethodsResource(this.client);\n this.whatsapp = new WhatsAppResource(this.client);\n this.whatsappTemplates = new WhatsAppTemplatesResource(this.client);\n }\n\n /**\n * Set the authentication token\n */\n setAuthToken(token: string): void {\n this.client.setAuthToken(token);\n }\n\n /**\n * Set the refresh token\n */\n setRefreshToken(token: string | null): void {\n this.client.setRefreshToken(token);\n }\n\n /**\n * Get the current refresh token\n */\n getRefreshToken(): string | null {\n return this.client.getRefreshToken();\n }\n\n /**\n * Set the current gym context\n */\n setGymId(gymId: string): void {\n this.client.setGymId(gymId);\n }\n\n /**\n * Clear authentication\n */\n clearAuth(): void {\n this.client.clearAuth();\n }\n\n /**\n * Set Expo fetch for React Native environments\n * Should be called once during app initialization\n */\n setExpoFetch(fetchFn: typeof globalThis.fetch): void {\n this.expoFetch = fetchFn;\n }\n\n /**\n * Create a fetch function for agent endpoints\n * Uses the /agent/* proxy that includes request context\n * Automatically uses Expo fetch if set\n */\n createAgentFetch() {\n return createAgentFetch(this.client, this.expoFetch);\n }\n\n /**\n * Get the underlying API client\n */\n getClient(): ApiClient {\n return this.client;\n }\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}","// 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 // 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} 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;","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}","export interface StartOnboardingData {\n name: string;\n email: string;\n phone: string;\n password: string;\n organizationName: string;\n country: string;\n currency: string;\n timezone: string;\n}\n\nexport interface StartOnboardingResponse {\n success: boolean;\n access_token: string;\n refresh_token: string;\n user: {\n id: string;\n email: string;\n name: string;\n userType: string;\n };\n organization: {\n id: string;\n name: string;\n organizationCode: string;\n };\n gym: {\n id: string;\n name: string;\n };\n onboardingStatus: OnboardingStatus;\n}\n\nexport interface BusinessHours {\n open: string;\n close: string;\n closed: boolean;\n}\n\nexport interface WeeklySchedule {\n monday: BusinessHours;\n tuesday: BusinessHours;\n wednesday: BusinessHours;\n thursday: BusinessHours;\n friday: BusinessHours;\n saturday: BusinessHours;\n sunday: BusinessHours;\n}\n\nexport interface Amenities {\n hasParking: boolean;\n hasShowers: boolean;\n hasLockers: boolean;\n hasPool: boolean;\n hasSauna: boolean;\n hasWifi: boolean;\n hasChildcare: boolean;\n hasCafeteria: boolean;\n}\n\nexport interface SocialMedia {\n facebook?: string;\n instagram?: string;\n twitter?: string;\n website?: string;\n}\n\nexport interface UpdateGymSettingsData {\n gymId: string;\n name: string;\n address: string;\n city: string;\n state: string;\n postalCode: string;\n phone: string;\n email: string;\n businessHours: WeeklySchedule;\n capacity: number;\n description?: string;\n amenities: Amenities;\n socialMedia?: SocialMedia;\n logo?: string;\n coverPhoto?: string;\n primaryColor?: string;\n}\n\nexport interface ClientManagementFeatures {\n enabled: boolean;\n requireDocumentId: boolean;\n enablePhotos: boolean;\n trackEmergencyContacts: boolean;\n trackMedicalConditions: boolean;\n}\n\nexport interface MembershipManagementFeatures {\n enabled: boolean;\n allowCustomPricing: boolean;\n allowContractFreezing: boolean;\n expiryWarningDays: number;\n autoRenewalReminders: boolean;\n}\n\nexport interface CheckInSystemFeatures {\n enabled: boolean;\n requireActiveContract: boolean;\n trackCheckInTime: boolean;\n allowMultiplePerDay: boolean;\n}\n\nexport interface EvaluationSystemFeatures {\n enabled: boolean;\n trackMeasurements: boolean;\n trackBodyComposition: boolean;\n trackPerformance: boolean;\n defaultFrequencyDays: number;\n}\n\nexport interface LeadManagementFeatures {\n enabled: boolean;\n publicCatalogListing: boolean;\n enableOnlineForm: boolean;\n autoAssignLeads: boolean;\n}\n\nexport interface NotificationSettings {\n emailEnabled: boolean;\n smsEnabled: boolean;\n welcomeEmails: boolean;\n contractExpiryAlerts: boolean;\n evaluationReminders: boolean;\n}\n\nexport interface ConfigureFeaturesData {\n gymId: string;\n clientManagement: ClientManagementFeatures;\n membershipManagement: MembershipManagementFeatures;\n checkInSystem: CheckInSystemFeatures;\n evaluationSystem: EvaluationSystemFeatures;\n leadManagement: LeadManagementFeatures;\n notifications: NotificationSettings;\n}\n\nexport interface CompleteGuidedSetupData {\n gymId: string;\n}\n\nexport enum OnboardingStep {\n ACCOUNT_CREATED = 'account_created',\n GYM_SETTINGS = 'gym_settings',\n FEATURES_CONFIGURED = 'features_configured',\n COMPLETED = 'completed',\n}\n\nexport interface OnboardingStatus {\n organizationId: string;\n gymId: string;\n currentStep: OnboardingStep;\n accountCreated: boolean;\n gymSettingsCompleted: boolean;\n featuresConfigured: boolean;\n isCompleted: boolean;\n nextAction: string;\n completionPercentage: number;\n}\n\nexport interface OnboardingResponse {\n success: boolean;\n gym?: any;\n onboardingStatus: OnboardingStatus;\n message?: string;\n}"]}
1
+ {"version":3,"sources":["../src/errors.ts","../src/client.ts","../src/utils/agent-fetch.ts","../src/resources/base.ts","../src/resources/auth.ts","../src/resources/organizations.ts","../src/resources/gyms.ts","../src/resources/collaborators.ts","../src/resources/roles.ts","../src/resources/clients.ts","../src/resources/membership-plans.ts","../src/resources/contracts.ts","../src/resources/dashboard.ts","../src/resources/check-ins.ts","../src/resources/invitations.ts","../src/resources/assets.ts","../src/resources/files.ts","../src/resources/public-catalog.ts","../src/resources/health.ts","../src/resources/onboarding.ts","../src/resources/products.ts","../src/resources/sales.ts","../src/resources/suppliers.ts","../src/resources/users.ts","../src/resources/subscriptions.ts","../src/resources/subscription-plans.ts","../src/resources/admin-subscription-management.ts","../src/resources/payment-methods.ts","../src/resources/whatsapp.ts","../src/resources/whatsapp-templates.ts","../src/sdk.ts","../node_modules/@gymspace/shared/src/enums.ts","../node_modules/@gymspace/shared/src/constants.ts","../node_modules/@gymspace/shared/src/utils/roleHelpers.ts","../src/models/onboarding.ts"],"names":["axios","UserType","SubscriptionStatus","CollaboratorStatus","InvitationStatus","ClientStatus","PlanStatus","ContractStatus","PaymentFrequency","AssetStatus","EvaluationType","EvaluationStatus","CommentType","AssetCategory","ContractAssetType","EvaluationAssetStage","EvaluationAssetCategory","LeadStatus","RoleNames","OnboardingStep"],"mappings":"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","file":"index.js","sourcesContent":["export class GymSpaceError extends Error {\n constructor(\n message: string,\n public statusCode?: number,\n public code?: string,\n public details?: any\n ) {\n super(message);\n this.name = 'GymSpaceError';\n }\n}\n\nexport class AuthenticationError extends GymSpaceError {\n constructor(message = 'Authentication failed') {\n super(message, 401, 'AUTHENTICATION_ERROR');\n this.name = 'AuthenticationError';\n }\n}\n\nexport class AuthorizationError extends GymSpaceError {\n constructor(message = 'Access denied') {\n super(message, 403, 'AUTHORIZATION_ERROR');\n this.name = 'AuthorizationError';\n }\n}\n\nexport class NotFoundError extends GymSpaceError {\n constructor(resource: string, id?: string) {\n const message = id \n ? `${resource} with id ${id} not found`\n : `${resource} not found`;\n super(message, 404, 'NOT_FOUND');\n this.name = 'NotFoundError';\n }\n}\n\nexport class ValidationError extends GymSpaceError {\n constructor(message: string, errors?: any) {\n super(message, 400, 'VALIDATION_ERROR', errors);\n this.name = 'ValidationError';\n }\n}\n\nexport class NetworkError extends GymSpaceError {\n constructor(message = 'Network request failed') {\n super(message, 0, 'NETWORK_ERROR');\n this.name = 'NetworkError';\n }\n}","import axios, {\n AxiosInstance,\n AxiosRequestConfig,\n AxiosError,\n InternalAxiosRequestConfig,\n AxiosRequestHeaders,\n} from 'axios';\nimport { GymSpaceConfig, RequestOptions } from './types';\nimport {\n GymSpaceError,\n AuthenticationError,\n AuthorizationError,\n NotFoundError,\n ValidationError,\n NetworkError,\n} from './errors';\n\nexport class ApiClient {\n private axiosInstance: AxiosInstance;\n private config: GymSpaceConfig;\n private refreshToken: string | null = null;\n private onTokenRefreshed?: (accessToken: string, refreshToken?: string) => void;\n\n public getAccessToken(): string | null {\n return this.config.apiKey || null;\n }\n\n constructor(config: GymSpaceConfig) {\n this.config = config;\n\n this.axiosInstance = axios.create({\n baseURL: config.baseURL,\n timeout: config.timeout || 30000,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n this.setupInterceptors();\n }\n\n private setupInterceptors(): void {\n // Request interceptor\n this.axiosInstance.interceptors.request.use(\n (config: InternalAxiosRequestConfig) => {\n // Add Authorization header if auth token is configured\n if (this.config.apiKey && config.headers) {\n config.headers['Authorization'] = `Bearer ${this.config.apiKey}`;\n }\n\n // Add refresh token header for ALL authenticated requests\n if (this.refreshToken && this.config.apiKey && config.headers) {\n config.headers['X-Refresh-Token'] = this.refreshToken;\n }\n\n return config;\n },\n (error) => {\n return Promise.reject(error);\n },\n );\n\n // Response interceptor - handle token refresh from backend\n this.axiosInstance.interceptors.response.use(\n (response) => {\n // Check if backend refreshed tokens\n const newAccessToken = response.headers['x-new-access-token'];\n const newRefreshToken = response.headers['x-new-refresh-token'];\n \n if (newAccessToken) {\n console.log('Tokens refreshed by backend, updating SDK...');\n this.setAuthToken(newAccessToken);\n \n if (newRefreshToken) {\n this.setRefreshToken(newRefreshToken);\n }\n \n // Notify client about token refresh\n if (this.onTokenRefreshed) {\n this.onTokenRefreshed(newAccessToken, newRefreshToken);\n }\n }\n \n return response;\n },\n async (error: AxiosError) => {\n throw this.handleError(error);\n },\n );\n }\n\n private handleError(error: AxiosError): GymSpaceError {\n const requestPath = error.config?.url || 'unknown';\n const method = error.config?.method?.toUpperCase() || 'unknown';\n\n if (!error.response) {\n console.error('Network Error:', {\n method,\n path: requestPath,\n error: error.message,\n });\n return new NetworkError(error.message);\n }\n\n const { status, data } = error.response;\n const errorData = data as any;\n const resource = errorData?.resource || 'unknown';\n\n console.error('HTTP Error:', {\n method,\n path: requestPath,\n status,\n resource,\n message: errorData?.message || error.message,\n errorCode: errorData?.code,\n details: errorData,\n });\n\n switch (status) {\n case 401:\n return new AuthenticationError(errorData?.message || 'Authentication failed');\n case 403:\n return new AuthorizationError(errorData?.message || 'Access denied');\n case 404:\n return new NotFoundError(errorData?.resource || 'Resource', errorData?.id);\n case 400:\n return new ValidationError(errorData?.message || 'Validation failed', errorData?.errors);\n default:\n return new GymSpaceError(\n errorData?.message || error.message,\n status,\n errorData?.code,\n errorData,\n );\n }\n }\n\n private mergeOptions(options?: RequestOptions): AxiosRequestConfig {\n const headers: Record<string, string> = { ...options?.headers };\n\n if (options?.gymId) {\n headers['X-Gym-Id'] = options.gymId;\n }\n\n return { headers };\n }\n\n async request<T>(\n method: string,\n path: string,\n data?: any,\n options?: RequestOptions & AxiosRequestConfig,\n ): Promise<T> {\n const { headers, ...axiosConfig } = options || {};\n\n const config: AxiosRequestConfig = {\n method,\n url: path,\n ...this.mergeOptions({ headers }),\n ...axiosConfig,\n };\n\n if (data && ['POST', 'PUT', 'PATCH'].includes(method.toUpperCase())) {\n config.data = data;\n } else if (data && method.toUpperCase() === 'GET') {\n config.params = data;\n }\n\n const response = await this.axiosInstance.request<T>(config);\n return response.data;\n }\n\n get<T>(path: string, params?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('GET', path, params, options);\n }\n\n post<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('POST', path, data, options);\n }\n\n put<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('PUT', path, data, options);\n }\n\n patch<T>(path: string, data?: any, options?: RequestOptions): Promise<T> {\n return this.request<T>('PATCH', path, data, options);\n }\n\n delete<T>(path: string, options?: RequestOptions): Promise<T> {\n return this.request<T>('DELETE', path, undefined, options);\n }\n\n setAuthToken(token: string): void {\n this.config.apiKey = token;\n }\n\n setRefreshToken(token: string | null): void {\n this.refreshToken = token;\n }\n\n getRefreshToken(): string | null {\n return this.refreshToken;\n }\n\n /**\n * Set callback for when tokens are refreshed by backend\n */\n setOnTokenRefreshed(callback: (accessToken: string, refreshToken?: string) => void): void {\n this.onTokenRefreshed = callback;\n }\n\n /**\n * Get the token refresh callback\n */\n getOnTokenRefreshed(): ((accessToken: string, refreshToken?: string) => void) | undefined {\n return this.onTokenRefreshed;\n }\n\n setGymId(gymId: string): void {\n this.axiosInstance.defaults.headers.common['X-Gym-Id'] = gymId;\n }\n\n clearAuth(): void {\n delete this.config.apiKey;\n this.refreshToken = null;\n delete this.axiosInstance.defaults.headers.common['Authorization'];\n delete this.axiosInstance.defaults.headers.common['X-Gym-Id'];\n }\n\n getBaseUrl(): string {\n return this.config.baseURL;\n }\n}\n","import { ApiClient } from '../client';\n\nexport function createAgentFetch(apiClient: ApiClient, customFetch?: typeof globalThis.fetch) {\n const fetchFn = customFetch || fetch;\n\n return async (path: string, options?: RequestInit) => {\n const fullUrl = `${apiClient.getBaseUrl()}/agent${path}`;\n\n // Get gymId from axios instance headers\n const axiosInstance = (apiClient as any).axiosInstance;\n const gymId = axiosInstance?.defaults?.headers?.common?.['X-Gym-Id'];\n\n const headers = {\n 'Content-Type': 'application/json',\n ...(apiClient.getAccessToken() && { Authorization: `Bearer ${apiClient.getAccessToken()}` }),\n ...(gymId && { 'X-Gym-Id': gymId }),\n ...(options?.headers || {}),\n };\n\n return fetchFn(fullUrl, {\n ...options,\n headers,\n });\n };\n}\n","import { ApiClient } from '../client';\nimport { RequestOptions, PaginatedResponseDto, PaginationQueryDto } from '../types';\n\nexport abstract class BaseResource {\n constructor(protected client: ApiClient) {}\n\n protected async request<T>(\n path: string,\n options: {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n body?: string;\n headers?: Record<string, string>;\n }\n ): Promise<T> {\n const data = options.body ? JSON.parse(options.body) : undefined;\n \n switch (options.method) {\n case 'GET':\n return this.client.get<T>(path, data, { headers: options.headers });\n case 'POST':\n return this.client.post<T>(path, data, { headers: options.headers });\n case 'PUT':\n return this.client.put<T>(path, data, { headers: options.headers });\n case 'PATCH':\n return this.client.patch<T>(path, data, { headers: options.headers });\n case 'DELETE':\n return this.client.delete<T>(path, { headers: options.headers });\n default:\n throw new Error(`Unsupported HTTP method: ${options.method}`);\n }\n }\n\n protected buildPath(base: string, ...segments: (string | undefined)[]): string {\n const parts = [base];\n for (const segment of segments) {\n if (segment !== undefined) {\n parts.push(segment);\n }\n }\n return parts.join('/');\n }\n\n protected async paginate<T>(\n path: string,\n params?: PaginationQueryDto & Record<string, any>,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<T>> {\n return this.client.get<PaginatedResponseDto<T>>(path, params, options);\n }\n}","import {\n CurrentSessionResponse,\n InvitationValidationResponse,\n LoginDto,\n LoginResponseDto,\n RegisterCollaboratorDto,\n RegisterOwnerDto,\n ResendVerificationDto,\n VerifyEmailDto,\n ChangePasswordDto,\n ChangePasswordResponseDto,\n RequestPasswordResetDto,\n RequestPasswordResetResponseDto,\n VerifyResetCodeDto,\n VerifyResetCodeResponseDto,\n ResetPasswordDto,\n ResetPasswordResponseDto,\n ResendResetCodeDto,\n ResendResetCodeResponseDto,\n} from '../models/auth';\nimport { SubscriptionPlan } from '../models/subscriptions';\nimport { RequestOptions } from '../types';\nimport { BaseResource } from './base';\n\nexport class AuthResource extends BaseResource {\n private basePath = 'auth';\n\n async registerOwner(data: RegisterOwnerDto, options?: RequestOptions): Promise<void> {\n return this.client.post(`${this.basePath}/register/owner`, data, options);\n }\n\n async login(data: LoginDto, options?: RequestOptions): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(`${this.basePath}/login`, data, options);\n }\n\n async refreshToken(refreshToken: string, options?: RequestOptions): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(`${this.basePath}/refresh`, { refresh_token: refreshToken }, options);\n }\n\n async verifyEmail(\n data: VerifyEmailDto,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n return this.client.post(`${this.basePath}/verify-email`, data, options);\n }\n\n async resendVerification(\n data: ResendVerificationDto,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n console.log('the path', `${this.basePath}/resend-verification`);\n\n return this.client.post(`${this.basePath}/resend-verification`, data, options);\n }\n\n\n async getSubscriptionPlans(options?: RequestOptions): Promise<{ data: SubscriptionPlan[] }> {\n return this.client.get(`${this.basePath}/subscription-plans`, options);\n }\n\n async validateInvitation(\n token: string,\n options?: RequestOptions,\n ): Promise<InvitationValidationResponse> {\n return this.client.get(`${this.basePath}/invitation/${token}`, options);\n }\n\n async registerCollaborator(\n data: RegisterCollaboratorDto,\n options?: RequestOptions,\n ): Promise<LoginResponseDto> {\n return this.client.post<LoginResponseDto>(\n `${this.basePath}/register/collaborator`,\n data,\n options,\n );\n }\n\n async getCurrentSession(options?: RequestOptions): Promise<CurrentSessionResponse> {\n return this.client.get<CurrentSessionResponse>(`${this.basePath}/current-session`, options);\n }\n\n async changePassword(\n data: ChangePasswordDto,\n options?: RequestOptions,\n ): Promise<ChangePasswordResponseDto> {\n return this.client.post<ChangePasswordResponseDto>(\n `${this.basePath}/change-password`,\n data,\n options,\n );\n }\n\n async requestPasswordReset(\n data: RequestPasswordResetDto,\n options?: RequestOptions,\n ): Promise<RequestPasswordResetResponseDto> {\n return this.client.post<RequestPasswordResetResponseDto>(\n `${this.basePath}/password-reset/request`,\n data,\n options,\n );\n }\n\n async verifyResetCode(\n data: VerifyResetCodeDto,\n options?: RequestOptions,\n ): Promise<VerifyResetCodeResponseDto> {\n return this.client.post<VerifyResetCodeResponseDto>(\n `${this.basePath}/password-reset/verify-code`,\n data,\n options,\n );\n }\n\n async resetPassword(\n data: ResetPasswordDto,\n options?: RequestOptions,\n ): Promise<ResetPasswordResponseDto> {\n return this.client.post<ResetPasswordResponseDto>(\n `${this.basePath}/password-reset/reset`,\n data,\n options,\n );\n }\n\n async resendResetCode(\n data: ResendResetCodeDto,\n options?: RequestOptions,\n ): Promise<ResendResetCodeResponseDto> {\n return this.client.post<ResendResetCodeResponseDto>(\n `${this.basePath}/password-reset/resend-code`,\n data,\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport { Organization, UpdateOrganizationDto, OrganizationStats, OrganizationWithDetails, OrganizationAdminDetails } from '../models/organizations';\nimport { RequestOptions } from '../types';\n\nexport class OrganizationsResource extends BaseResource {\n private basePath = 'organizations';\n\n async getOrganization(id: string, options?: RequestOptions): Promise<Organization> {\n return this.client.get<Organization>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateOrganization(\n id: string, \n data: UpdateOrganizationDto, \n options?: RequestOptions\n ): Promise<Organization> {\n return this.client.put<Organization>(`${this.basePath}/${id}`, data, options);\n }\n\n async getOrganizationStats(id: string, options?: RequestOptions): Promise<OrganizationStats> {\n return this.client.get<OrganizationStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async listOrganizations(options?: RequestOptions): Promise<OrganizationWithDetails[]> {\n return this.client.get<OrganizationWithDetails[]>(`${this.basePath}/list`, undefined, options);\n }\n\n async getOrganizationForAdmin(id: string, options?: RequestOptions): Promise<OrganizationAdminDetails> {\n return this.client.get<OrganizationAdminDetails>(`${this.basePath}/admin/${id}`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { Gym, CreateGymDto, UpdateGymDto, GymStats, UpdateGymScheduleDto, UpdateGymSocialMediaDto } from '../models/gyms';\nimport { RequestOptions } from '../types';\n\nexport class GymsResource extends BaseResource {\n private basePath = 'gyms';\n\n async createGym(\n data: CreateGymDto, \n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.post<Gym>(\n this.basePath, \n data, \n options\n );\n }\n\n async getOrganizationGyms(\n options?: RequestOptions\n ): Promise<Gym[]> {\n return this.client.get<Gym[]>(\n this.basePath,\n undefined,\n options\n );\n }\n\n async getGym(id: string, options?: RequestOptions): Promise<Gym> {\n return this.client.get<Gym>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateGym(\n id: string,\n data: UpdateGymDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}`, data, options);\n }\n\n async getGymStats(id: string, options?: RequestOptions): Promise<GymStats> {\n return this.client.get<GymStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async toggleGymStatus(id: string, options?: RequestOptions): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async updateCurrentGym(\n data: Partial<{\n name?: string;\n address?: string;\n phone?: string;\n email?: string;\n assetId?: string;\n }>,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/current`, data, options);\n }\n\n async updateGymSchedule(\n id: string,\n data: UpdateGymScheduleDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/schedule`, data, options);\n }\n\n async updateGymSocialMedia(\n id: string,\n data: UpdateGymSocialMediaDto,\n options?: RequestOptions\n ): Promise<Gym> {\n return this.client.put<Gym>(`${this.basePath}/${id}/social-media`, data, options);\n }\n}","import { BaseResource } from './base';\nimport type {\n Collaborator,\n ListCollaboratorsParams,\n UpdateCollaboratorDto,\n UpdateCollaboratorStatusDto,\n UpdateCollaboratorRoleDto,\n ActivityQueryParams,\n StatsQueryParams,\n CollaboratorStats,\n ActivityItem,\n} from '@gymspace/shared';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class CollaboratorsResource extends BaseResource {\n private basePath = 'collaborators';\n\n async list(\n params?: ListCollaboratorsParams,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<Collaborator>> {\n return this.paginate<Collaborator>(this.basePath, params, options);\n }\n\n async get(id: string, options?: RequestOptions): Promise<Collaborator> {\n return this.client.get<Collaborator>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async update(\n id: string,\n data: UpdateCollaboratorDto,\n options?: RequestOptions,\n ): Promise<Collaborator> {\n return this.client.patch<Collaborator>(`${this.basePath}/${id}`, data, options);\n }\n\n async updateRole(\n id: string,\n data: UpdateCollaboratorRoleDto,\n options?: RequestOptions,\n ): Promise<Collaborator> {\n return this.client.patch<Collaborator>(`${this.basePath}/${id}/role`, data, options);\n }\n\n async updateStatus(\n id: string,\n data: UpdateCollaboratorStatusDto,\n options?: RequestOptions,\n ): Promise<Collaborator> {\n return this.client.patch<Collaborator>(`${this.basePath}/${id}/status`, data, options);\n }\n\n async getActivity(\n id: string,\n params?: ActivityQueryParams,\n options?: RequestOptions,\n ): Promise<ActivityItem[]> {\n return this.client.get<ActivityItem[]>(`${this.basePath}/${id}/activity`, params, options);\n }\n\n async getStats(\n id: string,\n params?: StatsQueryParams,\n options?: RequestOptions,\n ): Promise<CollaboratorStats> {\n return this.client.get<CollaboratorStats>(`${this.basePath}/${id}/stats`, params, options);\n }\n}\n","import { BaseResource } from './base';\nimport type { Role } from '@gymspace/shared';\nimport type { PermissionsGroup } from '../models/roles';\nimport { RequestOptions } from '../types';\n\nexport class RolesResource extends BaseResource {\n private basePath = 'roles';\n\n /**\n * Get all roles of the organization (without pagination)\n */\n async getRoles(options?: RequestOptions): Promise<Role[]> {\n return this.client.get<Role[]>(this.basePath, undefined, options);\n }\n\n /**\n * Get a specific role by ID\n */\n async getRole(id: string, options?: RequestOptions): Promise<Role> {\n return this.client.get<Role>(`${this.basePath}/${id}`, undefined, options);\n }\n\n /**\n * Get all available permissions organized by category\n */\n async getAvailablePermissions(options?: RequestOptions): Promise<PermissionsGroup> {\n return this.client.get<PermissionsGroup>(`${this.basePath}/permissions`, undefined, options);\n }\n}\n","import { BaseResource } from './base';\nimport {\n Client,\n CreateClientDto,\n UpdateClientDto,\n ClientStats,\n ClientStat,\n SearchClientsParams,\n} from '../models/clients';\nimport { RequestOptions } from '../types';\n\nexport class ClientsResource extends BaseResource {\n private basePath = 'clients';\n\n async createClient(data: CreateClientDto, options?: RequestOptions): Promise<Client> {\n return this.client.post<Client>(this.basePath, data, options);\n }\n\n async searchClients(params?: SearchClientsParams, options?: RequestOptions): Promise<Client[]> {\n return this.client.get<Client[]>(this.basePath, params, options);\n }\n\n async getClient(id: string, options?: RequestOptions): Promise<Client> {\n return this.client.get<Client>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateClient(id: string, data: UpdateClientDto, options?: RequestOptions): Promise<Client> {\n return this.client.put<Client>(`${this.basePath}/${id}`, data, options);\n }\n\n async toggleClientStatus(id: string, options?: RequestOptions): Promise<Client> {\n return this.client.put<Client>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async getClientStats(id: string, options?: RequestOptions): Promise<ClientStats> {\n return this.client.get<ClientStats>(`${this.basePath}/${id}/stats`, undefined, options);\n }\n\n async getClientStat(id: string, statKey: string, options?: RequestOptions): Promise<ClientStat> {\n return this.client.get<ClientStat>(\n `${this.basePath}/${id}/stats/${statKey}`,\n undefined,\n options,\n );\n }\n\n async getClientStatsByCategory(\n id: string,\n category: string,\n options?: RequestOptions,\n ): Promise<ClientStat[]> {\n return this.client.get<ClientStat[]>(\n `${this.basePath}/${id}/stats/category/${category}`,\n undefined,\n options,\n );\n }\n\n async getAvailableStats(options?: RequestOptions): Promise<ClientStat[]> {\n return this.client.get<ClientStat[]>(`${this.basePath}/stats/available`, undefined, options);\n }\n\n async searchClientsForCheckIn(\n params?: SearchClientsParams,\n options?: RequestOptions,\n ): Promise<Client[]> {\n // This endpoint automatically includes contract status and only active clients\n return this.client.get<Client[]>(`${this.basePath}/search/check-in`, params, options);\n }\n}\n","import { BaseResource } from './base';\nimport { \n MembershipPlan, \n CreateMembershipPlanDto, \n UpdateMembershipPlanDto, \n MembershipPlanStats,\n GetMembershipPlansParams \n} from '../models/membership-plans';\nimport { RequestOptions } from '../types';\n\nexport class MembershipPlansResource extends BaseResource {\n private basePath = 'membership-plans';\n\n async createMembershipPlan(\n data: CreateMembershipPlanDto, \n options?: RequestOptions\n ): Promise<MembershipPlan> {\n return this.client.post<MembershipPlan>(this.basePath, data, options);\n }\n\n async getGymMembershipPlans(\n params?: GetMembershipPlansParams,\n options?: RequestOptions\n ): Promise<MembershipPlan[]> {\n return this.client.get<MembershipPlan[]>(this.basePath, params, options);\n }\n\n async getMembershipPlan(id: string, options?: RequestOptions): Promise<MembershipPlan> {\n return this.client.get<MembershipPlan>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateMembershipPlan(\n id: string,\n data: UpdateMembershipPlanDto,\n options?: RequestOptions\n ): Promise<MembershipPlan> {\n return this.client.put<MembershipPlan>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteMembershipPlan(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getMembershipPlanStats(\n id: string, \n options?: RequestOptions\n ): Promise<MembershipPlanStats> {\n return this.client.get<MembershipPlanStats>(\n `${this.basePath}/${id}/stats`, \n undefined, \n options\n );\n }\n}","import { BaseResource } from './base';\nimport {\n Contract,\n CreateContractDto,\n RenewContractDto,\n FreezeContractDto,\n GetContractsParams,\n} from '../models/contracts';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class ContractsResource extends BaseResource {\n private basePath = 'contracts';\n\n async createContract(data: CreateContractDto, options?: RequestOptions): Promise<Contract> {\n return this.client.post<Contract>(this.basePath, data, options);\n }\n\n async getGymContracts(\n params?: GetContractsParams,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<Contract>> {\n return this.paginate<Contract>(this.basePath, params, options);\n }\n\n async getContract(id: string, options?: RequestOptions): Promise<Contract> {\n return this.client.get<Contract>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async getClientContracts(clientId: string, options?: RequestOptions): Promise<Contract[]> {\n return this.client.get<Contract[]>(`${this.basePath}/client/${clientId}`, undefined, options);\n }\n\n async renewContract(\n id: string,\n data: RenewContractDto,\n options?: RequestOptions,\n ): Promise<Contract> {\n return this.client.post<Contract>(`${this.basePath}/${id}/renew`, data, options);\n }\n\n async freezeContract(\n id: string,\n data: FreezeContractDto,\n options?: RequestOptions,\n ): Promise<Contract> {\n return this.client.post<Contract>(`${this.basePath}/${id}/freeze`, data, options);\n }\n\n async cancelContract(\n id: string,\n data: { reason: string },\n options?: RequestOptions,\n ): Promise<Contract> {\n return this.client.put<Contract>(`${this.basePath}/${id}/cancel`, data, options);\n }\n\n async resendWhatsAppNotification(\n contractId: string,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n return this.client.post<{ success: boolean; message: string }>(\n `${this.basePath}/${contractId}/resend-whatsapp`,\n {},\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport {\n DashboardStats,\n ExpiringContract,\n ContractsRevenue,\n SalesRevenue,\n Debts,\n CheckIns,\n NewClients,\n DateRangeParams,\n CheckInsList,\n} from '../models/dashboard';\n\nexport class DashboardResource extends BaseResource {\n /**\n * Get dashboard statistics (lightweight counts only)\n * @returns Dashboard statistics including client and contract counts\n */\n async getStats(): Promise<DashboardStats> {\n return this.client.get<DashboardStats>('/dashboard/stats');\n }\n\n /**\n * Get contracts revenue within date range\n * @param params Optional date range parameters\n * @returns Contracts revenue data for the specified period\n */\n async getContractsRevenue(params?: DateRangeParams): Promise<ContractsRevenue> {\n return this.client.get<ContractsRevenue>('/dashboard/contracts-revenue', params);\n }\n\n /**\n * Get sales revenue within date range\n * @param params Optional date range parameters\n * @returns Sales revenue data for the specified period\n */\n async getSalesRevenue(params?: DateRangeParams): Promise<SalesRevenue> {\n return this.client.get<SalesRevenue>('/dashboard/sales-revenue', params);\n }\n\n /**\n * Get total debts within date range\n * @param params Optional date range parameters\n * @returns Outstanding debts data for the specified period\n */\n async getDebts(params?: DateRangeParams): Promise<Debts> {\n return this.client.get<Debts>('/dashboard/debts', params);\n }\n\n /**\n * Get check-ins count within date range\n * @param params Optional date range parameters\n * @returns Check-ins data for the specified period\n */\n async getCheckIns(params?: DateRangeParams): Promise<CheckIns> {\n return this.client.get<CheckIns>('/dashboard/check-ins', params);\n }\n\n /**\n * Get new clients count within date range\n * @param params Optional date range parameters\n * @returns New clients data for the specified period\n */\n async getNewClients(params?: DateRangeParams): Promise<NewClients> {\n return this.client.get<NewClients>('/dashboard/new-clients', params);\n }\n\n /**\n * Get expiring contracts within date range\n * @param limit Maximum number of contracts to return (default: 10)\n * @param params Optional date range parameters\n * @returns List of contracts expiring in the specified period\n */\n async getExpiringContracts(\n limit: number = 10,\n params?: DateRangeParams,\n ): Promise<ExpiringContract[]> {\n return this.client.get<ExpiringContract[]>('/dashboard/expiring-contracts', {\n limit,\n ...params,\n });\n }\n\n /**\n * Get detailed list of check-ins within date range\n * @param params Optional date range parameters (defaults to current day)\n * @returns Detailed list of check-ins with client and registeredBy information\n */\n async getCheckInsList(params?: DateRangeParams): Promise<CheckInsList> {\n return this.client.get<CheckInsList>('/dashboard/check-ins/list', params);\n }\n}\n","import { BaseResource } from './base';\nimport { \n CheckIn, \n CreateCheckInDto, \n SearchCheckInsParams,\n GetCheckInStatsParams,\n CheckInStats,\n GetClientCheckInHistoryParams,\n CurrentlyInGymResponse,\n CheckInListResponse,\n ClientCheckInHistory\n} from '../models/check-ins';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class CheckInsResource extends BaseResource {\n private basePath = 'check-ins';\n\n async createCheckIn(data: CreateCheckInDto, options?: RequestOptions): Promise<CheckIn> {\n return this.client.post<CheckIn>(this.basePath, data, options);\n }\n\n async searchCheckIns(\n params?: SearchCheckInsParams,\n options?: RequestOptions\n ): Promise<CheckInListResponse> {\n return this.client.get<CheckInListResponse>(this.basePath, params, options);\n }\n\n async getCurrentlyInGym(options?: RequestOptions): Promise<CurrentlyInGymResponse> {\n return this.client.get<CurrentlyInGymResponse>(`${this.basePath}/current`, undefined, options);\n }\n\n async getCheckIn(id: string, options?: RequestOptions): Promise<CheckIn> {\n return this.client.get<CheckIn>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async deleteCheckIn(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getGymCheckInStats(\n params: GetCheckInStatsParams,\n options?: RequestOptions\n ): Promise<CheckInStats> {\n return this.client.get<CheckInStats>(\n `${this.basePath}/stats/${params.period}`,\n undefined,\n options\n );\n }\n\n async getClientCheckInHistory(\n clientId: string,\n params?: GetClientCheckInHistoryParams,\n options?: RequestOptions\n ): Promise<ClientCheckInHistory> {\n return this.client.get<ClientCheckInHistory>(\n `${this.basePath}/client/${clientId}/history`,\n params,\n options\n );\n }\n}","import { BaseResource } from './base';\nimport type {\n Invitation,\n CreateInvitationDto,\n AcceptInvitationDto,\n ValidateByCodeDto,\n} from '@gymspace/shared';\nimport { RequestOptions } from '../types';\n\nexport interface GetGymInvitationsParams {\n gymId: string;\n}\n\nexport class InvitationsResource extends BaseResource {\n private basePath = 'invitations';\n\n async createInvitation(data: CreateInvitationDto, options?: RequestOptions): Promise<Invitation> {\n return this.client.post<Invitation>(this.basePath, data, options);\n }\n\n async getGymInvitations(\n params: GetGymInvitationsParams,\n options?: RequestOptions,\n ): Promise<Invitation[]> {\n return this.client.get<Invitation[]>(this.basePath, params, options);\n }\n\n async validateByCode(\n data: ValidateByCodeDto,\n options?: RequestOptions,\n ): Promise<{ email: string; gymName: string; roleName: string; token: string }> {\n return this.client.post(`${this.basePath}/validate-by-code`, data, options);\n }\n\n async acceptInvitation(data: AcceptInvitationDto, options?: RequestOptions): Promise<void> {\n return this.client.post<void>(`${this.basePath}/accept`, data, options);\n }\n\n async cancelInvitation(id: string, options?: RequestOptions): Promise<void> {\n return this.client.put<void>(`${this.basePath}/${id}/cancel`, undefined, options);\n }\n}\n","import { BaseResource } from './base';\nimport type { AssetResponseDto } from '../models/assets';\n\nexport class AssetsResource extends BaseResource {\n /**\n * Upload a new asset\n */\n async upload(data: {\n file: File;\n description?: string;\n metadata?: Record<string, any>;\n }): Promise<AssetResponseDto> {\n const formData = new FormData();\n formData.append('file', data.file);\n\n if (data.description) {\n formData.append('description', data.description);\n }\n\n if (data.metadata) {\n formData.append('metadata', JSON.stringify(data.metadata));\n }\n\n return await this.client.post<AssetResponseDto>('/assets/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n }\n\n /**\n * Get a single asset by ID\n */\n async findOne(id: string): Promise<AssetResponseDto> {\n return await this.client.get<AssetResponseDto>(`/assets/${id}`);\n }\n\n /**\n * Get multiple assets by IDs\n */\n async findByIds(ids: string[]): Promise<AssetResponseDto[]> {\n if (!ids || ids.length === 0) {\n return [];\n }\n\n // El segundo parámetro del get son los params directamente\n return await this.client.get<AssetResponseDto[]>('/assets/by-ids', {\n ids: ids.join(',')\n });\n }\n\n /**\n * Get all assets for the current gym\n */\n async findAll(): Promise<AssetResponseDto[]> {\n return await this.client.get<AssetResponseDto[]>('/assets');\n }\n\n /**\n * Delete an asset\n */\n async delete(id: string): Promise<void> {\n await this.client.delete(`/assets/${id}`);\n }\n\n /**\n * Get a signed download URL for an asset\n */\n async getDownloadUrl(id: string): Promise<{ url: string; filename: string }> {\n return await this.client.get<{ url: string; filename: string }>(`/assets/${id}/download-url`);\n }\n\n /**\n * Download an asset as a blob\n */\n async download(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/assets/${id}/download`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n\n /**\n * Get the render URL for an asset (for inline display)\n * This returns the URL directly without making an API call\n */\n getRenderUrl(id: string): string {\n return `${this.client.getBaseUrl()}/assets/${id}/render`;\n }\n\n /**\n * Get asset blob for rendering/preview\n */\n async render(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/assets/${id}/render`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n}\n","import { BaseResource } from './base';\nimport type { FileResponseDto } from '../models/files';\n\nexport class FilesResource extends BaseResource {\n /**\n * Upload a new file\n */\n async upload(data: {\n file: File;\n description?: string;\n metadata?: Record<string, any>;\n }): Promise<FileResponseDto> {\n const formData = new FormData();\n formData.append('file', data.file);\n\n if (data.description) {\n formData.append('description', data.description);\n }\n\n if (data.metadata) {\n formData.append('metadata', JSON.stringify(data.metadata));\n }\n\n return await this.client.post<FileResponseDto>('/files/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n });\n }\n\n /**\n * Get all files for the current user\n */\n async findAll(): Promise<FileResponseDto[]> {\n return await this.client.get<FileResponseDto[]>('/files');\n }\n\n /**\n * Get a single file by ID\n */\n async findOne(id: string): Promise<FileResponseDto> {\n return await this.client.get<FileResponseDto>(`/files/${id}`);\n }\n\n /**\n * Get multiple files by IDs\n */\n async findByIds(ids: string[]): Promise<FileResponseDto[]> {\n if (!ids || ids.length === 0) {\n return [];\n }\n\n // The second parameter of get is the params directly\n return await this.client.get<FileResponseDto[]>('/files/by-ids', {\n ids: ids.join(',')\n });\n }\n\n /**\n * Delete a file\n */\n async delete(id: string): Promise<void> {\n await this.client.delete(`/files/${id}`);\n }\n\n /**\n * Download a file as a blob\n */\n async download(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/files/${id}/download`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n\n /**\n * Get the render URL for a file (for inline display)\n * This returns the URL directly without making an API call\n */\n getRenderUrl(id: string): string {\n return `${this.client.getBaseUrl()}/files/${id}/render`;\n }\n\n /**\n * Get file blob for rendering/preview\n */\n async render(id: string): Promise<Blob> {\n const response = await this.client.get<ArrayBuffer>(`/files/${id}/render`, {\n responseType: 'arraybuffer',\n });\n\n return new Blob([response]);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\nimport { PaginationQueryDto } from '../types';\n\nexport interface SearchCatalogParams extends PaginationQueryDto {\n search?: string;\n city?: string;\n state?: string;\n latitude?: string;\n longitude?: string;\n radius?: string;\n}\n\nexport interface GetFeaturedGymsParams {\n limit: string;\n}\n\nexport interface CatalogGym {\n id: string;\n name: string;\n slug: string;\n address?: string;\n city?: string;\n state?: string;\n phone?: string;\n email?: string;\n amenities?: any;\n settings?: any;\n}\n\nexport interface CityWithGyms {\n city: string;\n state: string;\n count: number;\n}\n\nexport class PublicCatalogResource extends BaseResource {\n private basePath = 'catalog';\n\n async searchCatalog(\n params?: SearchCatalogParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<CatalogGym>> {\n return this.paginate<CatalogGym>(`${this.basePath}/search`, params, options);\n }\n\n async getFeaturedGyms(\n params: GetFeaturedGymsParams,\n options?: RequestOptions\n ): Promise<CatalogGym[]> {\n return this.client.get<CatalogGym[]>(`${this.basePath}/featured`, params, options);\n }\n\n async getCitiesWithGyms(options?: RequestOptions): Promise<CityWithGyms[]> {\n return this.client.get<CityWithGyms[]>(`${this.basePath}/cities`, undefined, options);\n }\n\n async getGymBySlug(slug: string, options?: RequestOptions): Promise<CatalogGym> {\n return this.client.get<CatalogGym>(`${this.basePath}/${slug}`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions } from '../types';\n\nexport interface HealthResponse {\n status: string;\n timestamp: string;\n}\n\nexport interface ReadyResponse {\n status: string;\n services: {\n database: boolean;\n cache: boolean;\n storage: boolean;\n };\n}\n\nexport class HealthResource extends BaseResource {\n private basePath = 'health';\n\n async health(options?: RequestOptions): Promise<HealthResponse> {\n return this.client.get<HealthResponse>(this.basePath, undefined, options);\n }\n\n async ready(options?: RequestOptions): Promise<ReadyResponse> {\n return this.client.get<ReadyResponse>(`${this.basePath}/ready`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport {\n StartOnboardingData,\n StartOnboardingResponse,\n UpdateGymSettingsData,\n ConfigureFeaturesData,\n CompleteGuidedSetupData,\n OnboardingStatus,\n OnboardingResponse,\n} from '../models/onboarding';\n\nexport class OnboardingResource extends BaseResource {\n /**\n * Creates owner account, organization, and initial gym\n * Now also sends verification and organization codes via email\n */\n async start(data: StartOnboardingData): Promise<StartOnboardingResponse> {\n const response = await this.client.post<StartOnboardingResponse>('/onboarding/start', data);\n \n // Store tokens after successful onboarding start\n if (response.access_token) {\n this.client.setAuthToken(response.access_token);\n }\n \n return response;\n }\n\n /**\n * Updates basic gym settings (step 2 of onboarding)\n * Configure basic gym information like name, address, etc.\n */\n async updateGymSettings(data: UpdateGymSettingsData): Promise<OnboardingResponse> {\n return this.client.put<OnboardingResponse>('/onboarding/gym-settings', data);\n }\n\n /**\n * Configure gym features (step 3 of onboarding)\n * Enable/disable various management features\n */\n async configureFeatures(data: ConfigureFeaturesData): Promise<OnboardingResponse> {\n return this.client.put<OnboardingResponse>('/onboarding/configure-features', data);\n }\n\n /**\n * Mark onboarding as complete\n */\n async completeSetup(data: CompleteGuidedSetupData): Promise<OnboardingResponse> {\n return this.client.post<OnboardingResponse>('/onboarding/complete', data);\n }\n\n /**\n * Get current onboarding status\n * Check progress and next steps\n */\n async getStatus(gymId: string): Promise<OnboardingStatus> {\n return this.client.get<OnboardingStatus>(`/onboarding/status/${gymId}`);\n }\n}","import { BaseResource } from './base';\nimport {\n Product,\n ProductCategory,\n StockMovement,\n CreateProductDto,\n CreateServiceDto,\n UpdateProductDto,\n UpdateStockDto,\n CreateProductCategoryDto,\n UpdateProductCategoryDto,\n SearchProductsParams,\n} from '../models/products';\nimport { RequestOptions } from '../types';\n\nexport class ProductsResource extends BaseResource {\n private basePath = 'products';\n\n // Product Category Methods\n async createCategory(\n data: CreateProductCategoryDto,\n options?: RequestOptions,\n ): Promise<ProductCategory> {\n return this.client.post<ProductCategory>(`${this.basePath}/categories`, data, options);\n }\n\n async getCategories(options?: RequestOptions): Promise<ProductCategory[]> {\n return this.client.get<ProductCategory[]>(`${this.basePath}/categories`, undefined, options);\n }\n\n async updateCategory(\n id: string,\n data: UpdateProductCategoryDto,\n options?: RequestOptions,\n ): Promise<ProductCategory> {\n return this.client.put<ProductCategory>(`${this.basePath}/categories/${id}`, data, options);\n }\n\n async deleteCategory(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/categories/${id}`, options);\n }\n\n // Product Methods\n async createProduct(data: CreateProductDto, options?: RequestOptions): Promise<Product> {\n return this.client.post<Product>(this.basePath, data, options);\n }\n\n async createService(data: CreateServiceDto, options?: RequestOptions): Promise<Product> {\n return this.client.post<Product>(`${this.basePath}/services`, data, options);\n }\n\n async searchProducts(\n params?: SearchProductsParams,\n options?: RequestOptions,\n ): Promise<Product[]> {\n return this.client.get<Product[]>(this.basePath, params, options);\n }\n\n async getProduct(id: string, options?: RequestOptions): Promise<Product> {\n return this.client.get<Product>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateProduct(\n id: string,\n data: UpdateProductDto,\n options?: RequestOptions,\n ): Promise<Product> {\n return this.client.put<Product>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteProduct(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async toggleProductStatus(id: string, options?: RequestOptions): Promise<Product> {\n return this.client.patch<Product>(`${this.basePath}/${id}/toggle-status`, undefined, options);\n }\n\n async updateStock(id: string, data: UpdateStockDto, options?: RequestOptions): Promise<Product> {\n return this.client.patch<Product>(`${this.basePath}/${id}/stock`, data, options);\n }\n\n async getLowStockProducts(threshold: number = 10, options?: RequestOptions): Promise<Product[]> {\n return this.client.get<Product[]>(`${this.basePath}/low-stock`, { threshold }, options);\n }\n\n async getProductStockMovements(id: string, options?: RequestOptions): Promise<StockMovement[]> {\n return this.client.get<StockMovement[]>(\n `${this.basePath}/${id}/stock-movements`,\n undefined,\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport {\n Sale,\n CreateSaleDto,\n UpdateSaleDto,\n UpdatePaymentStatusDto,\n PaySaleDto,\n SearchSalesParams,\n SalesStats,\n TopSellingProduct,\n CustomerSalesReport,\n} from '../models/sales';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class SalesResource extends BaseResource {\n private basePath = 'sales';\n\n async createSale(data: CreateSaleDto, options?: RequestOptions): Promise<Sale> {\n return this.client.post<Sale>(this.basePath, data, options);\n }\n\n async searchSales(\n params?: SearchSalesParams,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<Sale>> {\n return this.paginate<Sale>(this.basePath, params, options);\n }\n\n async getSale(id: string, options?: RequestOptions): Promise<Sale> {\n return this.client.get<Sale>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateSale(id: string, data: UpdateSaleDto, options?: RequestOptions): Promise<Sale> {\n return this.client.put<Sale>(`${this.basePath}/${id}`, data, options);\n }\n\n async updatePaymentStatus(\n id: string,\n paymentStatus: 'paid' | 'unpaid',\n options?: RequestOptions,\n ): Promise<Sale> {\n return this.client.put<Sale>(\n `${this.basePath}/${id}/payment-status`,\n { paymentStatus },\n options,\n );\n }\n\n async paySale(id: string, data: PaySaleDto, options?: RequestOptions): Promise<Sale> {\n return this.client.post<Sale>(`${this.basePath}/${id}/payment`, data, options);\n }\n\n async deleteSale(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getSalesStats(\n startDate?: string,\n endDate?: string,\n options?: RequestOptions,\n ): Promise<SalesStats> {\n const params: Record<string, string> = {};\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<SalesStats>(\n `${this.basePath}/stats`,\n Object.keys(params).length > 0 ? params : undefined,\n options,\n );\n }\n\n async getTopSellingProducts(\n limit: number = 10,\n startDate?: string,\n endDate?: string,\n options?: RequestOptions,\n ): Promise<TopSellingProduct[]> {\n const params: Record<string, string | number> = { limit };\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<TopSellingProduct[]>(`${this.basePath}/top-products`, params, options);\n }\n\n async getSalesByCustomer(\n startDate?: string,\n endDate?: string,\n options?: RequestOptions,\n ): Promise<CustomerSalesReport> {\n const params: Record<string, string> = {};\n if (startDate) params.startDate = startDate;\n if (endDate) params.endDate = endDate;\n\n return this.client.get<CustomerSalesReport>(\n `${this.basePath}/reports/by-customer`,\n Object.keys(params).length > 0 ? params : undefined,\n options,\n );\n }\n\n async resendWhatsAppNotification(\n saleId: string,\n options?: RequestOptions,\n ): Promise<{ success: boolean; message: string }> {\n return this.client.post<{ success: boolean; message: string }>(\n `${this.basePath}/${saleId}/resend-whatsapp`,\n {},\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport { \n Supplier,\n CreateSupplierDto, \n UpdateSupplierDto,\n SearchSuppliersParams,\n SuppliersStats\n} from '../models/suppliers';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class SuppliersResource extends BaseResource {\n private basePath = 'suppliers';\n\n async createSupplier(data: CreateSupplierDto, options?: RequestOptions): Promise<Supplier> {\n return this.client.post<Supplier>(this.basePath, data, options);\n }\n\n async searchSuppliers(\n params?: SearchSuppliersParams,\n options?: RequestOptions\n ): Promise<PaginatedResponseDto<Supplier>> {\n return this.paginate<Supplier>(this.basePath, params, options);\n }\n\n async getSupplier(id: string, options?: RequestOptions): Promise<Supplier> {\n return this.client.get<Supplier>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updateSupplier(\n id: string,\n data: UpdateSupplierDto,\n options?: RequestOptions\n ): Promise<Supplier> {\n return this.client.put<Supplier>(`${this.basePath}/${id}`, data, options);\n }\n\n async deleteSupplier(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async getSuppliersStats(options?: RequestOptions): Promise<SuppliersStats> {\n return this.client.get<SuppliersStats>(`${this.basePath}/stats`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport { UserProfileDto, UpdateProfileDto } from '../models/users';\nimport { RequestOptions } from '../types';\n\nexport class UsersResource extends BaseResource {\n /**\n * Get the current user's profile\n * @param options - Request options\n * @returns User profile data\n */\n async getProfile(options?: RequestOptions): Promise<UserProfileDto> {\n return this.client.get<UserProfileDto>('/users/profile', undefined, options);\n }\n\n /**\n * Update the current user's profile\n * @param data - Profile update data\n * @param options - Request options\n * @returns Updated user profile\n */\n async updateProfile(\n data: UpdateProfileDto,\n options?: RequestOptions\n ): Promise<UserProfileDto> {\n return this.client.put<UserProfileDto>('/users/profile', data, options);\n }\n}","import {\n AvailablePlanDto,\n SubscriptionStatusDto,\n AffiliateOrganizationDto,\n CheckLimitResponse,\n} from '../models/subscriptions';\nimport { RequestOptions } from '../types';\nimport { BaseResource } from './base';\n\nexport class SubscriptionsResource extends BaseResource {\n private basePath = 'subscriptions';\n\n /**\n * Get available subscription plans (currently only free plans)\n */\n async getAvailablePlans(options?: RequestOptions): Promise<AvailablePlanDto[]> {\n return this.client.get<AvailablePlanDto[]>(`${this.basePath}/plans`, undefined, options);\n }\n\n /**\n * Get subscription status for an organization\n */\n async getSubscriptionStatus(\n organizationId: string,\n options?: RequestOptions,\n ): Promise<SubscriptionStatusDto> {\n return this.client.get<SubscriptionStatusDto>(\n `${this.basePath}/organizations/${organizationId}/status`,\n undefined,\n options,\n );\n }\n\n /**\n * Affiliate organization to a subscription plan\n */\n async affiliateOrganization(\n organizationId: string,\n data: AffiliateOrganizationDto,\n options?: RequestOptions,\n ): Promise<SubscriptionStatusDto> {\n return this.client.post<SubscriptionStatusDto>(\n `${this.basePath}/organizations/${organizationId}/affiliate`,\n data,\n options,\n );\n }\n\n /**\n * Check subscription limits\n * @param organizationId Organization ID\n * @param limitType Type of limit to check: 'gyms', 'clients', or 'users'\n */\n async checkSubscriptionLimit(\n organizationId: string,\n limitType: 'gyms' | 'clients' | 'users',\n options?: RequestOptions,\n ): Promise<CheckLimitResponse> {\n return this.client.get<CheckLimitResponse>(\n `${this.basePath}/organizations/${organizationId}/limits/${limitType}`,\n undefined,\n options,\n );\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions } from '../types';\n\n// Import the types we'll define\nexport interface SubscriptionPlanDto {\n id: string;\n name: string;\n price: {\n PEN?: { currency: 'PEN'; value: number };\n USD?: { currency: 'USD'; value: number };\n COP?: { currency: 'COP'; value: number };\n MXN?: { currency: 'MXN'; value: number };\n };\n billingFrequency: string;\n duration?: number;\n durationPeriod?: string;\n maxGyms: number;\n maxClientsPerGym: number;\n maxUsersPerGym: number;\n features: Record<string, any>;\n description?: string;\n isActive: boolean;\n createdAt: Date;\n updatedAt: Date;\n activeSubscriptions?: number;\n totalOrganizations?: number;\n}\n\nexport interface PriceDto {\n currency: string;\n value: number;\n}\n\nexport interface PricingDto {\n PEN: PriceDto;\n}\n\nexport interface CreateSubscriptionPlanDto {\n name: string;\n price: PricingDto;\n billingFrequency: string;\n duration?: number;\n durationPeriod?: 'DAY' | 'MONTH';\n maxGyms: number;\n maxClientsPerGym: number;\n maxUsersPerGym: number;\n features: Record<string, any>;\n description?: string;\n isActive?: boolean;\n}\n\nexport interface UpdateSubscriptionPlanDto {\n name?: string;\n price?: PricingDto;\n billingFrequency?: string;\n duration?: number;\n durationPeriod?: 'DAY' | 'MONTH';\n maxGyms?: number;\n maxClientsPerGym?: number;\n maxUsersPerGym?: number;\n features?: Record<string, any>;\n description?: string;\n isActive?: boolean;\n}\n\nexport class SubscriptionPlansResource extends BaseResource {\n private basePath = 'admin/subscription-plans';\n\n /**\n * List all subscription plans (Super Admin only)\n */\n async listPlans(options?: RequestOptions): Promise<SubscriptionPlanDto[]> {\n return this.client.get<SubscriptionPlanDto[]>(`${this.basePath}`, undefined, options);\n }\n\n /**\n * Create new subscription plan (Super Admin only)\n */\n async createPlan(\n data: CreateSubscriptionPlanDto,\n options?: RequestOptions,\n ): Promise<SubscriptionPlanDto> {\n return this.client.post<SubscriptionPlanDto>(`${this.basePath}`, data, options);\n }\n\n /**\n * Get subscription plan details (Super Admin only)\n */\n async getPlan(id: string, options?: RequestOptions): Promise<SubscriptionPlanDto> {\n return this.client.get<SubscriptionPlanDto>(`${this.basePath}/${id}`, undefined, options);\n }\n\n /**\n * Update subscription plan (Super Admin only)\n */\n async updatePlan(\n id: string,\n data: UpdateSubscriptionPlanDto,\n options?: RequestOptions,\n ): Promise<SubscriptionPlanDto> {\n return this.client.put<SubscriptionPlanDto>(`${this.basePath}/${id}`, data, options);\n }\n\n /**\n * Soft delete subscription plan (Super Admin only)\n */\n async deletePlan(id: string, options?: RequestOptions): Promise<{ success: boolean }> {\n return this.client.delete<{ success: boolean }>(`${this.basePath}/${id}`, options);\n }\n}","import { BaseResource } from './base';\nimport { RequestOptions } from '../types';\n\n// Import types from existing subscriptions model and add new ones\nexport interface AdminSubscriptionStatusDto {\n id: string;\n organizationId: string;\n subscriptionPlanId: string;\n planName: string;\n status: string; // Should match SubscriptionStatus enum\n startDate: Date;\n endDate: Date;\n isActive: boolean;\n isExpired: boolean;\n daysRemaining: number;\n metadata?: Record<string, any>;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport interface ActivateRenewalDto {\n subscriptionPlanId?: string;\n durationMonths?: number;\n notes?: string;\n}\n\nexport interface CancelSubscriptionDto {\n reason: string;\n immediateTermination?: boolean;\n notes?: string;\n}\n\nexport interface UpgradeSubscriptionDto {\n newSubscriptionPlanId: string;\n immediateUpgrade?: boolean;\n notes?: string;\n}\n\nexport interface SubscriptionHistoryDto {\n id: string;\n planName: string;\n status: string; // Should match SubscriptionStatus enum\n startDate: Date;\n endDate: Date;\n isActive: boolean;\n metadata?: Record<string, any>;\n createdBy: {\n id: string;\n name: string;\n email: string;\n };\n createdAt: Date;\n}\n\nexport class AdminSubscriptionManagementResource extends BaseResource {\n private basePath = 'admin/organizations';\n\n /**\n * Activate subscription renewal for an organization (Super Admin only)\n */\n async activateRenewal(\n organizationId: string,\n data: ActivateRenewalDto,\n options?: RequestOptions,\n ): Promise<AdminSubscriptionStatusDto> {\n return this.client.post<AdminSubscriptionStatusDto>(\n `${this.basePath}/${organizationId}/subscriptions/activate-renewal`,\n data,\n options,\n );\n }\n\n /**\n * Cancel subscription for an organization (Super Admin only)\n */\n async cancelSubscription(\n organizationId: string,\n data: CancelSubscriptionDto,\n options?: RequestOptions,\n ): Promise<AdminSubscriptionStatusDto> {\n return this.client.post<AdminSubscriptionStatusDto>(\n `${this.basePath}/${organizationId}/subscriptions/cancel`,\n data,\n options,\n );\n }\n\n /**\n * Upgrade subscription plan for an organization (Super Admin only)\n */\n async upgradeSubscription(\n organizationId: string,\n data: UpgradeSubscriptionDto,\n options?: RequestOptions,\n ): Promise<AdminSubscriptionStatusDto> {\n return this.client.post<AdminSubscriptionStatusDto>(\n `${this.basePath}/${organizationId}/subscriptions/upgrade`,\n data,\n options,\n );\n }\n\n /**\n * Get subscription history for an organization (Super Admin only)\n */\n async getSubscriptionHistory(\n organizationId: string,\n options?: RequestOptions,\n ): Promise<SubscriptionHistoryDto[]> {\n return this.client.get<SubscriptionHistoryDto[]>(\n `${this.basePath}/${organizationId}/subscriptions/history`,\n undefined,\n options,\n );\n }\n}\n","import { BaseResource } from './base';\nimport { \n PaymentMethod,\n CreatePaymentMethodDto, \n UpdatePaymentMethodDto,\n SearchPaymentMethodsParams,\n PaymentMethodStats\n} from '../models/payment-methods';\nimport { RequestOptions } from '../types';\n\nexport class PaymentMethodsResource extends BaseResource {\n private basePath = 'payment-methods';\n\n async createPaymentMethod(data: CreatePaymentMethodDto, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.post<PaymentMethod>(this.basePath, data, options);\n }\n\n async searchPaymentMethods(\n params?: SearchPaymentMethodsParams,\n options?: RequestOptions\n ): Promise<PaymentMethod[]> {\n return this.client.get<PaymentMethod[]>(this.basePath, params, options);\n }\n\n async getPaymentMethod(id: string, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.get<PaymentMethod>(`${this.basePath}/${id}`, undefined, options);\n }\n\n async updatePaymentMethod(\n id: string,\n data: UpdatePaymentMethodDto,\n options?: RequestOptions\n ): Promise<PaymentMethod> {\n return this.client.put<PaymentMethod>(`${this.basePath}/${id}`, data, options);\n }\n\n async deletePaymentMethod(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n async togglePaymentMethod(id: string, options?: RequestOptions): Promise<PaymentMethod> {\n return this.client.put<PaymentMethod>(`${this.basePath}/${id}/toggle`, undefined, options);\n }\n\n async getPaymentMethodStats(options?: RequestOptions): Promise<PaymentMethodStats> {\n return this.client.get<PaymentMethodStats>(`${this.basePath}/stats`, undefined, options);\n }\n}","import { BaseResource } from './base';\nimport {\n WhatsAppConfig,\n WhatsAppMessage,\n CreateWhatsAppConfigDto,\n UpdateWhatsAppConfigDto,\n SendWhatsAppMessageDto,\n SearchWhatsAppMessagesDto,\n ConnectionStatusResponse,\n InitializeConnectionResponse,\n Contact,\n DisconnectResponse,\n} from '../models/whatsapp';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\nexport class WhatsAppResource extends BaseResource {\n private basePath = 'whatsapp';\n\n /**\n * Get WhatsApp configuration for the current gym\n */\n async getConfig(options?: RequestOptions): Promise<WhatsAppConfig> {\n return this.client.get<WhatsAppConfig>(`${this.basePath}/config`, undefined, options);\n }\n\n /**\n * Initialize WhatsApp connection\n * Returns QR code if needed\n */\n async initializeConnection(options?: RequestOptions): Promise<InitializeConnectionResponse> {\n return this.client.post<InitializeConnectionResponse>(\n `${this.basePath}/initialize`,\n {},\n options,\n );\n }\n\n /**\n * Update WhatsApp configuration\n */\n async updateConfig(\n data: UpdateWhatsAppConfigDto,\n options?: RequestOptions,\n ): Promise<WhatsAppConfig> {\n return this.client.put<WhatsAppConfig>(`${this.basePath}/config`, data, options);\n }\n\n /**\n * Get WhatsApp connection status\n */\n async getConnectionStatus(options?: RequestOptions): Promise<ConnectionStatusResponse> {\n return this.client.get<ConnectionStatusResponse>(\n `${this.basePath}/connection-status`,\n undefined,\n options,\n );\n }\n\n /**\n * Send a WhatsApp message\n */\n async sendMessage(\n data: SendWhatsAppMessageDto,\n options?: RequestOptions,\n ): Promise<WhatsAppMessage> {\n return this.client.post<WhatsAppMessage>(`${this.basePath}/send-message`, data, options);\n }\n\n /**\n * Get WhatsApp messages with pagination and filters\n */\n async getMessages(\n params?: SearchWhatsAppMessagesDto,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<WhatsAppMessage>> {\n return this.paginate<WhatsAppMessage>(`${this.basePath}/messages`, params, options);\n }\n\n /**\n * Get a specific WhatsApp message by ID\n */\n async getMessage(id: string, options?: RequestOptions): Promise<WhatsAppMessage> {\n return this.client.get<WhatsAppMessage>(`${this.basePath}/messages/${id}`, undefined, options);\n }\n\n async listContacts(options?: RequestOptions): Promise<Contact[]> {\n return this.client.get<Contact[]>(`${this.basePath}/contacts`, undefined, options);\n }\n\n /**\n * Disconnect WhatsApp instance\n * Logs out from WhatsApp without deleting the instance\n */\n async disconnect(options?: RequestOptions): Promise<DisconnectResponse> {\n return this.client.post<DisconnectResponse>(`${this.basePath}/disconnect`, {}, options);\n }\n}\n","import { BaseResource } from './base';\nimport {\n WhatsAppTemplate,\n CreateTemplateDto,\n UpdateTemplateDto,\n SearchTemplatesDto,\n PreviewTemplateResponse,\n} from '../models/whatsapp';\nimport { RequestOptions, PaginatedResponseDto } from '../types';\n\n// Import TemplateCode type from shared (re-exported via types)\ntype TemplateCode = string;\n\nexport class WhatsAppTemplatesResource extends BaseResource {\n private basePath = 'whatsapp/templates';\n\n /**\n * Create a new WhatsApp template\n */\n async create(data: CreateTemplateDto, options?: RequestOptions): Promise<WhatsAppTemplate> {\n return this.client.post<WhatsAppTemplate>(this.basePath, data, options);\n }\n\n /**\n * Get all WhatsApp templates with pagination and filters\n */\n async findAll(\n params?: SearchTemplatesDto,\n options?: RequestOptions,\n ): Promise<PaginatedResponseDto<WhatsAppTemplate>> {\n return this.paginate<WhatsAppTemplate>(this.basePath, params, options);\n }\n\n /**\n * Get a specific WhatsApp template by ID\n */\n async findOne(id: string, options?: RequestOptions): Promise<WhatsAppTemplate> {\n return this.client.get<WhatsAppTemplate>(`${this.basePath}/${id}`, undefined, options);\n }\n\n /**\n * Get a WhatsApp template by code\n */\n async findByCode(code: TemplateCode, options?: RequestOptions): Promise<WhatsAppTemplate> {\n return this.client.get<WhatsAppTemplate>(`${this.basePath}/code/${code}`, undefined, options);\n }\n\n /**\n * Update a WhatsApp template\n */\n async update(\n id: string,\n data: UpdateTemplateDto,\n options?: RequestOptions,\n ): Promise<WhatsAppTemplate> {\n return this.client.put<WhatsAppTemplate>(`${this.basePath}/${id}`, data, options);\n }\n\n /**\n * Delete a WhatsApp template\n */\n async remove(id: string, options?: RequestOptions): Promise<void> {\n return this.client.delete<void>(`${this.basePath}/${id}`, options);\n }\n\n /**\n * Preview a template with variables\n */\n async preview(\n id: string,\n variables: Record<string, any>,\n options?: RequestOptions,\n ): Promise<PreviewTemplateResponse> {\n return this.client.post<PreviewTemplateResponse>(\n `${this.basePath}/${id}/preview`,\n variables,\n options,\n );\n }\n}\n","import { ApiClient } from './client';\nimport { GymSpaceConfig } from './types';\nimport { createAgentFetch } from './utils/agent-fetch';\nimport {\n AuthResource,\n OrganizationsResource,\n GymsResource,\n CollaboratorsResource,\n RolesResource,\n ClientsResource,\n MembershipPlansResource,\n ContractsResource,\n DashboardResource,\n CheckInsResource,\n InvitationsResource,\n AssetsResource,\n FilesResource,\n PublicCatalogResource,\n HealthResource,\n OnboardingResource,\n ProductsResource,\n SalesResource,\n SuppliersResource,\n UsersResource,\n SubscriptionsResource,\n SubscriptionPlansResource,\n AdminSubscriptionManagementResource,\n PaymentMethodsResource,\n WhatsAppResource,\n WhatsAppTemplatesResource,\n} from './resources';\n\nexport class GymSpaceSdk {\n public client: ApiClient;\n private expoFetch?: typeof globalThis.fetch;\n\n // Resources\n public auth: AuthResource;\n public organizations: OrganizationsResource;\n public gyms: GymsResource;\n public collaborators: CollaboratorsResource;\n public roles: RolesResource;\n public clients: ClientsResource;\n public membershipPlans: MembershipPlansResource;\n public contracts: ContractsResource;\n public dashboard: DashboardResource;\n public checkIns: CheckInsResource;\n public invitations: InvitationsResource;\n public assets: AssetsResource;\n public files: FilesResource;\n public publicCatalog: PublicCatalogResource;\n public health: HealthResource;\n public onboarding: OnboardingResource;\n public products: ProductsResource;\n public sales: SalesResource;\n public suppliers: SuppliersResource;\n public users: UsersResource;\n public subscriptions: SubscriptionsResource;\n public subscriptionPlans: SubscriptionPlansResource;\n public adminSubscriptionManagement: AdminSubscriptionManagementResource;\n public paymentMethods: PaymentMethodsResource;\n public whatsapp: WhatsAppResource;\n public whatsappTemplates: WhatsAppTemplatesResource;\n\n constructor(config: GymSpaceConfig) {\n this.client = new ApiClient(config);\n\n // Initialize resources\n this.auth = new AuthResource(this.client);\n this.organizations = new OrganizationsResource(this.client);\n this.gyms = new GymsResource(this.client);\n this.collaborators = new CollaboratorsResource(this.client);\n this.roles = new RolesResource(this.client);\n this.clients = new ClientsResource(this.client);\n this.membershipPlans = new MembershipPlansResource(this.client);\n this.contracts = new ContractsResource(this.client);\n this.dashboard = new DashboardResource(this.client);\n this.checkIns = new CheckInsResource(this.client);\n this.invitations = new InvitationsResource(this.client);\n this.assets = new AssetsResource(this.client);\n this.files = new FilesResource(this.client);\n this.publicCatalog = new PublicCatalogResource(this.client);\n this.health = new HealthResource(this.client);\n this.onboarding = new OnboardingResource(this.client);\n this.products = new ProductsResource(this.client);\n this.sales = new SalesResource(this.client);\n this.suppliers = new SuppliersResource(this.client);\n this.users = new UsersResource(this.client);\n this.subscriptions = new SubscriptionsResource(this.client);\n this.subscriptionPlans = new SubscriptionPlansResource(this.client);\n this.adminSubscriptionManagement = new AdminSubscriptionManagementResource(this.client);\n this.paymentMethods = new PaymentMethodsResource(this.client);\n this.whatsapp = new WhatsAppResource(this.client);\n this.whatsappTemplates = new WhatsAppTemplatesResource(this.client);\n }\n\n /**\n * Set the authentication token\n */\n setAuthToken(token: string): void {\n this.client.setAuthToken(token);\n }\n\n /**\n * Set the refresh token\n */\n setRefreshToken(token: string | null): void {\n this.client.setRefreshToken(token);\n }\n\n /**\n * Get the current refresh token\n */\n getRefreshToken(): string | null {\n return this.client.getRefreshToken();\n }\n\n /**\n * Set the current gym context\n */\n setGymId(gymId: string): void {\n this.client.setGymId(gymId);\n }\n\n /**\n * Clear authentication\n */\n clearAuth(): void {\n this.client.clearAuth();\n }\n\n /**\n * Set Expo fetch for React Native environments\n * Should be called once during app initialization\n */\n setExpoFetch(fetchFn: typeof globalThis.fetch): void {\n this.expoFetch = fetchFn;\n }\n\n /**\n * Create a fetch function for agent endpoints\n * Uses the /agent/* proxy that includes request context\n * Automatically uses Expo fetch if set\n */\n createAgentFetch() {\n return createAgentFetch(this.client, this.expoFetch);\n }\n\n /**\n * Set callback for when tokens are refreshed by backend\n */\n setOnTokenRefreshed(callback: (accessToken: string, refreshToken?: string) => void): void {\n this.client.setOnTokenRefreshed(callback);\n }\n\n /**\n * Get the underlying API client\n */\n getClient(): ApiClient {\n return this.client;\n }\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}","// 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 // 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} 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;","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}","export interface StartOnboardingData {\n name: string;\n email: string;\n phone: string;\n password: string;\n organizationName: string;\n country: string;\n currency: string;\n timezone: string;\n}\n\nexport interface StartOnboardingResponse {\n success: boolean;\n access_token: string;\n refresh_token: string;\n user: {\n id: string;\n email: string;\n name: string;\n userType: string;\n };\n organization: {\n id: string;\n name: string;\n organizationCode: string;\n };\n gym: {\n id: string;\n name: string;\n };\n onboardingStatus: OnboardingStatus;\n}\n\nexport interface BusinessHours {\n open: string;\n close: string;\n closed: boolean;\n}\n\nexport interface WeeklySchedule {\n monday: BusinessHours;\n tuesday: BusinessHours;\n wednesday: BusinessHours;\n thursday: BusinessHours;\n friday: BusinessHours;\n saturday: BusinessHours;\n sunday: BusinessHours;\n}\n\nexport interface Amenities {\n hasParking: boolean;\n hasShowers: boolean;\n hasLockers: boolean;\n hasPool: boolean;\n hasSauna: boolean;\n hasWifi: boolean;\n hasChildcare: boolean;\n hasCafeteria: boolean;\n}\n\nexport interface SocialMedia {\n facebook?: string;\n instagram?: string;\n twitter?: string;\n website?: string;\n}\n\nexport interface UpdateGymSettingsData {\n gymId: string;\n name: string;\n address: string;\n city: string;\n state: string;\n postalCode: string;\n phone: string;\n email: string;\n businessHours: WeeklySchedule;\n capacity: number;\n description?: string;\n amenities: Amenities;\n socialMedia?: SocialMedia;\n logo?: string;\n coverPhoto?: string;\n primaryColor?: string;\n}\n\nexport interface ClientManagementFeatures {\n enabled: boolean;\n requireDocumentId: boolean;\n enablePhotos: boolean;\n trackEmergencyContacts: boolean;\n trackMedicalConditions: boolean;\n}\n\nexport interface MembershipManagementFeatures {\n enabled: boolean;\n allowCustomPricing: boolean;\n allowContractFreezing: boolean;\n expiryWarningDays: number;\n autoRenewalReminders: boolean;\n}\n\nexport interface CheckInSystemFeatures {\n enabled: boolean;\n requireActiveContract: boolean;\n trackCheckInTime: boolean;\n allowMultiplePerDay: boolean;\n}\n\n\nexport interface NotificationSettings {\n emailEnabled: boolean;\n smsEnabled: boolean;\n welcomeEmails: boolean;\n contractExpiryAlerts: boolean;\n}\n\nexport interface ConfigureFeaturesData {\n gymId: string;\n clientManagement: ClientManagementFeatures;\n membershipManagement: MembershipManagementFeatures;\n checkInSystem: CheckInSystemFeatures;\n notifications: NotificationSettings;\n}\n\nexport interface CompleteGuidedSetupData {\n gymId: string;\n}\n\nexport enum OnboardingStep {\n ACCOUNT_CREATED = 'account_created',\n GYM_SETTINGS = 'gym_settings',\n FEATURES_CONFIGURED = 'features_configured',\n COMPLETED = 'completed',\n}\n\nexport interface OnboardingStatus {\n organizationId: string;\n gymId: string;\n currentStep: OnboardingStep;\n accountCreated: boolean;\n gymSettingsCompleted: boolean;\n featuresConfigured: boolean;\n isCompleted: boolean;\n nextAction: string;\n completionPercentage: number;\n}\n\nexport interface OnboardingResponse {\n success: boolean;\n gym?: any;\n onboardingStatus: OnboardingStatus;\n message?: string;\n}"]}