@gymspace/shared 1.2.12 → 1.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +118 -5
- package/dist/index.d.ts +118 -5
- package/dist/index.js +177 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +173 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/constants/bulk-message-variables.ts +164 -0
- package/src/constants.ts +3 -0
- package/src/events/bulk-messaging.events.ts +56 -0
- package/src/events/index.ts +1 -0
- package/src/index.ts +4 -0
- package/src/schemas/bulk-message.schema.ts +24 -0
- package/src/schemas/index.ts +1 -0
- package/src/types.ts +3 -1
package/dist/index.d.mts
CHANGED
|
@@ -213,7 +213,7 @@ interface TemplateMetadata {
|
|
|
213
213
|
type UUID = string;
|
|
214
214
|
type Currency = 'USD' | 'EUR' | 'PEN' | 'MXN' | 'COP' | 'ARS' | 'CLP';
|
|
215
215
|
type EntityType = 'user' | 'organization' | 'gym' | 'collaborator' | 'client' | 'contract' | 'asset';
|
|
216
|
-
type Permission = 'SUPER_ADMIN' | 'OWNER' | 'ORGANIZATIONS_CREATE' | 'ORGANIZATIONS_READ' | 'ORGANIZATIONS_UPDATE' | 'ORGANIZATIONS_DELETE' | 'GYMS_CREATE' | 'GYMS_READ' | 'GYMS_UPDATE' | 'GYMS_DELETE' | 'COLLABORATORS_CREATE' | 'COLLABORATORS_READ' | 'COLLABORATORS_UPDATE' | 'COLLABORATORS_DELETE' | 'CLIENTS_CREATE' | 'CLIENTS_READ' | 'CLIENTS_UPDATE' | 'CLIENTS_DELETE' | 'CONTRACTS_CREATE' | 'CONTRACTS_READ' | 'CONTRACTS_UPDATE' | 'CONTRACTS_APPROVE' | 'CONTRACTS_CANCEL' | 'CHECKINS_CREATE' | 'CHECKINS_READ' | 'REPORTS_VIEW' | 'REPORTS_FINANCIAL' | 'SETTINGS_UPDATE' | 'ASSETS_CREATE' | 'ASSETS_READ' | 'ASSETS_DELETE' | 'FILES_CREATE' | 'FILES_READ' | 'FILES_DELETE' | 'PRODUCTS_CREATE' | 'PRODUCTS_READ' | 'PRODUCTS_UPDATE' | 'PRODUCTS_DELETE' | 'PRODUCT_CATEGORIES_CREATE' | 'PRODUCT_CATEGORIES_READ' | 'PRODUCT_CATEGORIES_UPDATE' | 'PRODUCT_CATEGORIES_DELETE' | 'SALES_CREATE' | 'SALES_READ' | 'SALES_UPDATE' | 'SALES_DELETE' | 'SUPPLIERS_CREATE' | 'SUPPLIERS_READ' | 'SUPPLIERS_UPDATE' | 'SUPPLIERS_DELETE' | 'PAYMENT_METHODS_CREATE' | 'PAYMENT_METHODS_READ' | 'PAYMENT_METHODS_UPDATE' | 'PAYMENT_METHODS_DELETE' | 'WHATSAPP_READ' | 'WHATSAPP_SEND' | 'WHATSAPP_MANAGE';
|
|
216
|
+
type Permission = 'SUPER_ADMIN' | 'OWNER' | 'ORGANIZATIONS_CREATE' | 'ORGANIZATIONS_READ' | 'ORGANIZATIONS_UPDATE' | 'ORGANIZATIONS_DELETE' | 'GYMS_CREATE' | 'GYMS_READ' | 'GYMS_UPDATE' | 'GYMS_DELETE' | 'COLLABORATORS_CREATE' | 'COLLABORATORS_READ' | 'COLLABORATORS_UPDATE' | 'COLLABORATORS_DELETE' | 'CLIENTS_CREATE' | 'CLIENTS_READ' | 'CLIENTS_UPDATE' | 'CLIENTS_DELETE' | 'CONTRACTS_CREATE' | 'CONTRACTS_READ' | 'CONTRACTS_UPDATE' | 'CONTRACTS_APPROVE' | 'CONTRACTS_CANCEL' | 'CHECKINS_CREATE' | 'CHECKINS_READ' | 'REPORTS_VIEW' | 'REPORTS_FINANCIAL' | 'SETTINGS_UPDATE' | 'ASSETS_CREATE' | 'ASSETS_READ' | 'ASSETS_DELETE' | 'FILES_CREATE' | 'FILES_READ' | 'FILES_DELETE' | 'PRODUCTS_CREATE' | 'PRODUCTS_READ' | 'PRODUCTS_UPDATE' | 'PRODUCTS_DELETE' | 'PRODUCT_CATEGORIES_CREATE' | 'PRODUCT_CATEGORIES_READ' | 'PRODUCT_CATEGORIES_UPDATE' | 'PRODUCT_CATEGORIES_DELETE' | 'SALES_CREATE' | 'SALES_READ' | 'SALES_UPDATE' | 'SALES_DELETE' | 'SUPPLIERS_CREATE' | 'SUPPLIERS_READ' | 'SUPPLIERS_UPDATE' | 'SUPPLIERS_DELETE' | 'PAYMENT_METHODS_CREATE' | 'PAYMENT_METHODS_READ' | 'PAYMENT_METHODS_UPDATE' | 'PAYMENT_METHODS_DELETE' | 'WHATSAPP_READ' | 'WHATSAPP_SEND' | 'WHATSAPP_MANAGE' | 'WHATSAPP_BULK_SEND' | 'WHATSAPP_BULK_MANAGE';
|
|
217
217
|
interface AuditFields {
|
|
218
218
|
createdByUserId: UUID;
|
|
219
219
|
updatedByUserId?: UUID;
|
|
@@ -558,6 +558,24 @@ declare const TEMPLATE_METADATA: {
|
|
|
558
558
|
};
|
|
559
559
|
};
|
|
560
560
|
|
|
561
|
+
interface BulkMessageVariable {
|
|
562
|
+
name: string;
|
|
563
|
+
placeholder: string;
|
|
564
|
+
description: string;
|
|
565
|
+
example: string;
|
|
566
|
+
category: 'client' | 'gym' | 'membership' | 'datetime' | 'custom';
|
|
567
|
+
required: boolean;
|
|
568
|
+
formatter?: 'text' | 'currency' | 'date' | 'number';
|
|
569
|
+
}
|
|
570
|
+
declare const BULK_MESSAGE_VARIABLES: BulkMessageVariable[];
|
|
571
|
+
declare const BULK_MESSAGE_VARIABLE_CATEGORIES: {
|
|
572
|
+
readonly client: "Cliente";
|
|
573
|
+
readonly gym: "Gimnasio";
|
|
574
|
+
readonly membership: "Membresía";
|
|
575
|
+
readonly datetime: "Fecha/Hora";
|
|
576
|
+
readonly custom: "Personalizado";
|
|
577
|
+
};
|
|
578
|
+
|
|
561
579
|
declare const PERMISSIONS: {
|
|
562
580
|
readonly ORGANIZATIONS_CREATE: "ORGANIZATIONS_CREATE";
|
|
563
581
|
readonly ORGANIZATIONS_READ: "ORGANIZATIONS_READ";
|
|
@@ -614,12 +632,14 @@ declare const PERMISSIONS: {
|
|
|
614
632
|
readonly WHATSAPP_READ: "WHATSAPP_READ";
|
|
615
633
|
readonly WHATSAPP_SEND: "WHATSAPP_SEND";
|
|
616
634
|
readonly WHATSAPP_MANAGE: "WHATSAPP_MANAGE";
|
|
635
|
+
readonly WHATSAPP_BULK_SEND: "WHATSAPP_BULK_SEND";
|
|
636
|
+
readonly WHATSAPP_BULK_MANAGE: "WHATSAPP_BULK_MANAGE";
|
|
617
637
|
readonly SUPER_ADMIN: "SUPER_ADMIN";
|
|
618
638
|
readonly OWNER: "OWNER";
|
|
619
639
|
readonly All: "ALL";
|
|
620
640
|
};
|
|
621
641
|
declare const ROLE_PERMISSIONS: {
|
|
622
|
-
readonly ADMIN: ("SUPER_ADMIN" | "OWNER" | "ORGANIZATIONS_CREATE" | "ORGANIZATIONS_READ" | "ORGANIZATIONS_UPDATE" | "ORGANIZATIONS_DELETE" | "GYMS_CREATE" | "GYMS_READ" | "GYMS_UPDATE" | "GYMS_DELETE" | "COLLABORATORS_CREATE" | "COLLABORATORS_READ" | "COLLABORATORS_UPDATE" | "COLLABORATORS_DELETE" | "CLIENTS_CREATE" | "CLIENTS_READ" | "CLIENTS_UPDATE" | "CLIENTS_DELETE" | "CONTRACTS_CREATE" | "CONTRACTS_READ" | "CONTRACTS_UPDATE" | "CONTRACTS_APPROVE" | "CONTRACTS_CANCEL" | "CHECKINS_CREATE" | "CHECKINS_READ" | "REPORTS_VIEW" | "REPORTS_FINANCIAL" | "SETTINGS_UPDATE" | "ASSETS_CREATE" | "ASSETS_READ" | "ASSETS_DELETE" | "FILES_CREATE" | "FILES_READ" | "FILES_DELETE" | "PRODUCTS_CREATE" | "PRODUCTS_READ" | "PRODUCTS_UPDATE" | "PRODUCTS_DELETE" | "PRODUCT_CATEGORIES_CREATE" | "PRODUCT_CATEGORIES_READ" | "PRODUCT_CATEGORIES_UPDATE" | "PRODUCT_CATEGORIES_DELETE" | "SALES_CREATE" | "SALES_READ" | "SALES_UPDATE" | "SALES_DELETE" | "SUPPLIERS_CREATE" | "SUPPLIERS_READ" | "SUPPLIERS_UPDATE" | "SUPPLIERS_DELETE" | "PAYMENT_METHODS_CREATE" | "PAYMENT_METHODS_READ" | "PAYMENT_METHODS_UPDATE" | "PAYMENT_METHODS_DELETE" | "WHATSAPP_READ" | "WHATSAPP_SEND" | "WHATSAPP_MANAGE" | "ALL")[];
|
|
642
|
+
readonly ADMIN: ("SUPER_ADMIN" | "OWNER" | "ORGANIZATIONS_CREATE" | "ORGANIZATIONS_READ" | "ORGANIZATIONS_UPDATE" | "ORGANIZATIONS_DELETE" | "GYMS_CREATE" | "GYMS_READ" | "GYMS_UPDATE" | "GYMS_DELETE" | "COLLABORATORS_CREATE" | "COLLABORATORS_READ" | "COLLABORATORS_UPDATE" | "COLLABORATORS_DELETE" | "CLIENTS_CREATE" | "CLIENTS_READ" | "CLIENTS_UPDATE" | "CLIENTS_DELETE" | "CONTRACTS_CREATE" | "CONTRACTS_READ" | "CONTRACTS_UPDATE" | "CONTRACTS_APPROVE" | "CONTRACTS_CANCEL" | "CHECKINS_CREATE" | "CHECKINS_READ" | "REPORTS_VIEW" | "REPORTS_FINANCIAL" | "SETTINGS_UPDATE" | "ASSETS_CREATE" | "ASSETS_READ" | "ASSETS_DELETE" | "FILES_CREATE" | "FILES_READ" | "FILES_DELETE" | "PRODUCTS_CREATE" | "PRODUCTS_READ" | "PRODUCTS_UPDATE" | "PRODUCTS_DELETE" | "PRODUCT_CATEGORIES_CREATE" | "PRODUCT_CATEGORIES_READ" | "PRODUCT_CATEGORIES_UPDATE" | "PRODUCT_CATEGORIES_DELETE" | "SALES_CREATE" | "SALES_READ" | "SALES_UPDATE" | "SALES_DELETE" | "SUPPLIERS_CREATE" | "SUPPLIERS_READ" | "SUPPLIERS_UPDATE" | "SUPPLIERS_DELETE" | "PAYMENT_METHODS_CREATE" | "PAYMENT_METHODS_READ" | "PAYMENT_METHODS_UPDATE" | "PAYMENT_METHODS_DELETE" | "WHATSAPP_READ" | "WHATSAPP_SEND" | "WHATSAPP_MANAGE" | "WHATSAPP_BULK_SEND" | "WHATSAPP_BULK_MANAGE" | "ALL")[];
|
|
623
643
|
readonly MANAGER: readonly ["GYMS_READ", "COLLABORATORS_READ", "CLIENTS_CREATE", "CLIENTS_READ", "CLIENTS_UPDATE", "CONTRACTS_CREATE", "CONTRACTS_READ", "CHECKINS_CREATE", "CHECKINS_READ", "REPORTS_VIEW", "ASSETS_CREATE", "ASSETS_READ", "ASSETS_DELETE", "FILES_CREATE", "FILES_READ", "FILES_DELETE", "PRODUCTS_CREATE", "PRODUCTS_READ", "PRODUCTS_UPDATE", "PRODUCTS_DELETE", "PRODUCT_CATEGORIES_CREATE", "PRODUCT_CATEGORIES_READ", "PRODUCT_CATEGORIES_UPDATE", "PRODUCT_CATEGORIES_DELETE", "SALES_CREATE", "SALES_READ", "SALES_UPDATE", "SUPPLIERS_CREATE", "SUPPLIERS_READ", "SUPPLIERS_UPDATE", "SUPPLIERS_DELETE", "PAYMENT_METHODS_CREATE", "PAYMENT_METHODS_READ", "PAYMENT_METHODS_UPDATE", "PAYMENT_METHODS_DELETE"];
|
|
624
644
|
};
|
|
625
645
|
declare const CACHE_TTL: {
|
|
@@ -686,6 +706,61 @@ declare const WHATSAPP_EVENTS: {
|
|
|
686
706
|
readonly CONNECTION_UPDATE: "whatsapp/connection.update";
|
|
687
707
|
};
|
|
688
708
|
|
|
709
|
+
declare const BULK_MESSAGING_EVENTS: {
|
|
710
|
+
readonly GENERATE_BULK_MESSAGE: "whatsapp/bulk-message.generate";
|
|
711
|
+
readonly SEND_BULK_MESSAGES: "whatsapp/bulk-messages.send";
|
|
712
|
+
};
|
|
713
|
+
interface GenerateBulkMessageEvent {
|
|
714
|
+
name: typeof BULK_MESSAGING_EVENTS.GENERATE_BULK_MESSAGE;
|
|
715
|
+
data: {
|
|
716
|
+
gymId: string;
|
|
717
|
+
userId: string;
|
|
718
|
+
prompt: string;
|
|
719
|
+
includeVariables?: string[];
|
|
720
|
+
tone?: 'promotional' | 'informational' | 'reminder' | 'greeting' | 'custom' | 'friendly';
|
|
721
|
+
language?: string;
|
|
722
|
+
additionalRequirements?: string;
|
|
723
|
+
};
|
|
724
|
+
}
|
|
725
|
+
interface SendBulkMessagesEvent {
|
|
726
|
+
name: typeof BULK_MESSAGING_EVENTS.SEND_BULK_MESSAGES;
|
|
727
|
+
data: {
|
|
728
|
+
sendId: string;
|
|
729
|
+
gymId: string;
|
|
730
|
+
userId: string;
|
|
731
|
+
instanceName: string;
|
|
732
|
+
templateId?: string;
|
|
733
|
+
message: string;
|
|
734
|
+
clients: Array<{
|
|
735
|
+
clientId: string;
|
|
736
|
+
clientName: string;
|
|
737
|
+
phoneNumber: string;
|
|
738
|
+
data: {
|
|
739
|
+
id: string;
|
|
740
|
+
name: string;
|
|
741
|
+
email?: string;
|
|
742
|
+
phone: string;
|
|
743
|
+
activePlan?: {
|
|
744
|
+
name: string;
|
|
745
|
+
expirationDate?: Date;
|
|
746
|
+
amount?: number;
|
|
747
|
+
};
|
|
748
|
+
membershipStatus?: string;
|
|
749
|
+
metadata?: Record<string, any>;
|
|
750
|
+
};
|
|
751
|
+
}>;
|
|
752
|
+
gymData: {
|
|
753
|
+
name: string;
|
|
754
|
+
phone?: string;
|
|
755
|
+
address?: string;
|
|
756
|
+
countryConfig: {
|
|
757
|
+
currency: string;
|
|
758
|
+
locale: string;
|
|
759
|
+
};
|
|
760
|
+
};
|
|
761
|
+
};
|
|
762
|
+
}
|
|
763
|
+
|
|
689
764
|
declare const templateGenerationRequestSchema: z.ZodObject<{
|
|
690
765
|
templateCode: z.ZodString;
|
|
691
766
|
templateMetadata: z.ZodObject<{
|
|
@@ -734,16 +809,54 @@ declare const aiGeneratedTemplateSchema: z.ZodObject<{
|
|
|
734
809
|
suggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
735
810
|
}, "strip", z.ZodTypeAny, {
|
|
736
811
|
message: string;
|
|
737
|
-
tone: "
|
|
812
|
+
tone: "friendly" | "professional" | "casual" | "urgent";
|
|
738
813
|
usedVariables: string[];
|
|
739
814
|
suggestions?: string[] | undefined;
|
|
740
815
|
}, {
|
|
741
816
|
message: string;
|
|
742
|
-
tone: "
|
|
817
|
+
tone: "friendly" | "professional" | "casual" | "urgent";
|
|
743
818
|
usedVariables: string[];
|
|
744
819
|
suggestions?: string[] | undefined;
|
|
745
820
|
}>;
|
|
746
821
|
type TemplateGenerationRequest = z.infer<typeof templateGenerationRequestSchema>;
|
|
747
822
|
type AIGeneratedTemplate = z.infer<typeof aiGeneratedTemplateSchema>;
|
|
748
823
|
|
|
749
|
-
|
|
824
|
+
declare const bulkMessageGenerationRequestSchema: z.ZodObject<{
|
|
825
|
+
prompt: z.ZodString;
|
|
826
|
+
tone: z.ZodOptional<z.ZodEnum<["promotional", "informational", "reminder", "greeting", "friendly"]>>;
|
|
827
|
+
includeVariables: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
828
|
+
additionalRequirements: z.ZodOptional<z.ZodString>;
|
|
829
|
+
language: z.ZodDefault<z.ZodString>;
|
|
830
|
+
}, "strip", z.ZodTypeAny, {
|
|
831
|
+
language: string;
|
|
832
|
+
prompt: string;
|
|
833
|
+
tone?: "promotional" | "informational" | "reminder" | "greeting" | "friendly" | undefined;
|
|
834
|
+
includeVariables?: string[] | undefined;
|
|
835
|
+
additionalRequirements?: string | undefined;
|
|
836
|
+
}, {
|
|
837
|
+
prompt: string;
|
|
838
|
+
language?: string | undefined;
|
|
839
|
+
tone?: "promotional" | "informational" | "reminder" | "greeting" | "friendly" | undefined;
|
|
840
|
+
includeVariables?: string[] | undefined;
|
|
841
|
+
additionalRequirements?: string | undefined;
|
|
842
|
+
}>;
|
|
843
|
+
declare const bulkMessageSchema: z.ZodObject<{
|
|
844
|
+
message: z.ZodString;
|
|
845
|
+
tone: z.ZodEnum<["promotional", "informational", "reminder", "greeting", "friendly"]>;
|
|
846
|
+
usedVariables: z.ZodArray<z.ZodString, "many">;
|
|
847
|
+
suggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
848
|
+
}, "strip", z.ZodTypeAny, {
|
|
849
|
+
message: string;
|
|
850
|
+
tone: "promotional" | "informational" | "reminder" | "greeting" | "friendly";
|
|
851
|
+
usedVariables: string[];
|
|
852
|
+
suggestions?: string[] | undefined;
|
|
853
|
+
}, {
|
|
854
|
+
message: string;
|
|
855
|
+
tone: "promotional" | "informational" | "reminder" | "greeting" | "friendly";
|
|
856
|
+
usedVariables: string[];
|
|
857
|
+
suggestions?: string[] | undefined;
|
|
858
|
+
}>;
|
|
859
|
+
type BulkMessageGenerationRequest = z.infer<typeof bulkMessageGenerationRequestSchema>;
|
|
860
|
+
type BulkMessage = z.infer<typeof bulkMessageSchema>;
|
|
861
|
+
|
|
862
|
+
export { type AIGeneratedTemplate, type AcceptInvitationDto, type ActivityItem, type ActivityQueryParams, AssetCategory, AssetStatus, type AuditFields, BULK_MESSAGE_VARIABLES, BULK_MESSAGE_VARIABLE_CATEGORIES, BULK_MESSAGING_EVENTS, type BirthdayTemplateData, type BulkMessage, type BulkMessageGenerationRequest, type BulkMessageVariable, CACHE_TTL, ClientStatus, type Collaborator, type CollaboratorStats, CollaboratorStatus, ContractAssetType, ContractStatus, type CreateInvitationDto, type Currency, DATE_FORMATS, type EntityType, FILE_LIMITS, type GenerateBulkMessageEvent, HEADERS, type ICollaborator, type IGym, type IOrganization, type IRequestContext, type IRole, type ISubscription, type ISubscriptionPlan, type IUser, type Invitation, InvitationStatus, type ListCollaboratorsParams, type MembershipExpiringTemplateData, type MembershipPurchaseTemplateData, type MembershipRenewalTemplateData, PAGINATION_DEFAULTS, PERMISSIONS, type PaginatedResponse, type PaginationMeta, type PaginationParams, PaymentFrequency, type PaymentReceiptTemplateData, type PaymentReminderTemplateData, type Permission, PlanStatus, ROLE_NAMES, ROLE_PERMISSIONS, type Role, type RoleName, RoleNames, type SendBulkMessagesEvent, type StatsQueryParams, SubscriptionStatus, TEMPLATE_CODES, TEMPLATE_METADATA, TemplateCode, type TemplateGenerationRequest, type TemplateMetadata, TemplateType, type UUID, type UpdateCollaboratorDto, type UpdateCollaboratorRoleDto, type UpdateCollaboratorStatusDto, type User, UserType, type ValidateByCodeDto, WHATSAPP_EVENTS, WHATSAPP_TEMPLATE_EVENTS, type WelcomeTemplateData, type WhatsAppMessageSendEventData, type WhatsAppTemplateData, type WhatsAppTemplateEventData, aiGeneratedTemplateSchema, bulkMessageGenerationRequestSchema, bulkMessageSchema, canAccessFeature, getRoleCapabilities, getRoleDescription, getRoleDisplayName, isAdminRole, isEncargadoRole, templateGenerationRequestSchema };
|
package/dist/index.d.ts
CHANGED
|
@@ -213,7 +213,7 @@ interface TemplateMetadata {
|
|
|
213
213
|
type UUID = string;
|
|
214
214
|
type Currency = 'USD' | 'EUR' | 'PEN' | 'MXN' | 'COP' | 'ARS' | 'CLP';
|
|
215
215
|
type EntityType = 'user' | 'organization' | 'gym' | 'collaborator' | 'client' | 'contract' | 'asset';
|
|
216
|
-
type Permission = 'SUPER_ADMIN' | 'OWNER' | 'ORGANIZATIONS_CREATE' | 'ORGANIZATIONS_READ' | 'ORGANIZATIONS_UPDATE' | 'ORGANIZATIONS_DELETE' | 'GYMS_CREATE' | 'GYMS_READ' | 'GYMS_UPDATE' | 'GYMS_DELETE' | 'COLLABORATORS_CREATE' | 'COLLABORATORS_READ' | 'COLLABORATORS_UPDATE' | 'COLLABORATORS_DELETE' | 'CLIENTS_CREATE' | 'CLIENTS_READ' | 'CLIENTS_UPDATE' | 'CLIENTS_DELETE' | 'CONTRACTS_CREATE' | 'CONTRACTS_READ' | 'CONTRACTS_UPDATE' | 'CONTRACTS_APPROVE' | 'CONTRACTS_CANCEL' | 'CHECKINS_CREATE' | 'CHECKINS_READ' | 'REPORTS_VIEW' | 'REPORTS_FINANCIAL' | 'SETTINGS_UPDATE' | 'ASSETS_CREATE' | 'ASSETS_READ' | 'ASSETS_DELETE' | 'FILES_CREATE' | 'FILES_READ' | 'FILES_DELETE' | 'PRODUCTS_CREATE' | 'PRODUCTS_READ' | 'PRODUCTS_UPDATE' | 'PRODUCTS_DELETE' | 'PRODUCT_CATEGORIES_CREATE' | 'PRODUCT_CATEGORIES_READ' | 'PRODUCT_CATEGORIES_UPDATE' | 'PRODUCT_CATEGORIES_DELETE' | 'SALES_CREATE' | 'SALES_READ' | 'SALES_UPDATE' | 'SALES_DELETE' | 'SUPPLIERS_CREATE' | 'SUPPLIERS_READ' | 'SUPPLIERS_UPDATE' | 'SUPPLIERS_DELETE' | 'PAYMENT_METHODS_CREATE' | 'PAYMENT_METHODS_READ' | 'PAYMENT_METHODS_UPDATE' | 'PAYMENT_METHODS_DELETE' | 'WHATSAPP_READ' | 'WHATSAPP_SEND' | 'WHATSAPP_MANAGE';
|
|
216
|
+
type Permission = 'SUPER_ADMIN' | 'OWNER' | 'ORGANIZATIONS_CREATE' | 'ORGANIZATIONS_READ' | 'ORGANIZATIONS_UPDATE' | 'ORGANIZATIONS_DELETE' | 'GYMS_CREATE' | 'GYMS_READ' | 'GYMS_UPDATE' | 'GYMS_DELETE' | 'COLLABORATORS_CREATE' | 'COLLABORATORS_READ' | 'COLLABORATORS_UPDATE' | 'COLLABORATORS_DELETE' | 'CLIENTS_CREATE' | 'CLIENTS_READ' | 'CLIENTS_UPDATE' | 'CLIENTS_DELETE' | 'CONTRACTS_CREATE' | 'CONTRACTS_READ' | 'CONTRACTS_UPDATE' | 'CONTRACTS_APPROVE' | 'CONTRACTS_CANCEL' | 'CHECKINS_CREATE' | 'CHECKINS_READ' | 'REPORTS_VIEW' | 'REPORTS_FINANCIAL' | 'SETTINGS_UPDATE' | 'ASSETS_CREATE' | 'ASSETS_READ' | 'ASSETS_DELETE' | 'FILES_CREATE' | 'FILES_READ' | 'FILES_DELETE' | 'PRODUCTS_CREATE' | 'PRODUCTS_READ' | 'PRODUCTS_UPDATE' | 'PRODUCTS_DELETE' | 'PRODUCT_CATEGORIES_CREATE' | 'PRODUCT_CATEGORIES_READ' | 'PRODUCT_CATEGORIES_UPDATE' | 'PRODUCT_CATEGORIES_DELETE' | 'SALES_CREATE' | 'SALES_READ' | 'SALES_UPDATE' | 'SALES_DELETE' | 'SUPPLIERS_CREATE' | 'SUPPLIERS_READ' | 'SUPPLIERS_UPDATE' | 'SUPPLIERS_DELETE' | 'PAYMENT_METHODS_CREATE' | 'PAYMENT_METHODS_READ' | 'PAYMENT_METHODS_UPDATE' | 'PAYMENT_METHODS_DELETE' | 'WHATSAPP_READ' | 'WHATSAPP_SEND' | 'WHATSAPP_MANAGE' | 'WHATSAPP_BULK_SEND' | 'WHATSAPP_BULK_MANAGE';
|
|
217
217
|
interface AuditFields {
|
|
218
218
|
createdByUserId: UUID;
|
|
219
219
|
updatedByUserId?: UUID;
|
|
@@ -558,6 +558,24 @@ declare const TEMPLATE_METADATA: {
|
|
|
558
558
|
};
|
|
559
559
|
};
|
|
560
560
|
|
|
561
|
+
interface BulkMessageVariable {
|
|
562
|
+
name: string;
|
|
563
|
+
placeholder: string;
|
|
564
|
+
description: string;
|
|
565
|
+
example: string;
|
|
566
|
+
category: 'client' | 'gym' | 'membership' | 'datetime' | 'custom';
|
|
567
|
+
required: boolean;
|
|
568
|
+
formatter?: 'text' | 'currency' | 'date' | 'number';
|
|
569
|
+
}
|
|
570
|
+
declare const BULK_MESSAGE_VARIABLES: BulkMessageVariable[];
|
|
571
|
+
declare const BULK_MESSAGE_VARIABLE_CATEGORIES: {
|
|
572
|
+
readonly client: "Cliente";
|
|
573
|
+
readonly gym: "Gimnasio";
|
|
574
|
+
readonly membership: "Membresía";
|
|
575
|
+
readonly datetime: "Fecha/Hora";
|
|
576
|
+
readonly custom: "Personalizado";
|
|
577
|
+
};
|
|
578
|
+
|
|
561
579
|
declare const PERMISSIONS: {
|
|
562
580
|
readonly ORGANIZATIONS_CREATE: "ORGANIZATIONS_CREATE";
|
|
563
581
|
readonly ORGANIZATIONS_READ: "ORGANIZATIONS_READ";
|
|
@@ -614,12 +632,14 @@ declare const PERMISSIONS: {
|
|
|
614
632
|
readonly WHATSAPP_READ: "WHATSAPP_READ";
|
|
615
633
|
readonly WHATSAPP_SEND: "WHATSAPP_SEND";
|
|
616
634
|
readonly WHATSAPP_MANAGE: "WHATSAPP_MANAGE";
|
|
635
|
+
readonly WHATSAPP_BULK_SEND: "WHATSAPP_BULK_SEND";
|
|
636
|
+
readonly WHATSAPP_BULK_MANAGE: "WHATSAPP_BULK_MANAGE";
|
|
617
637
|
readonly SUPER_ADMIN: "SUPER_ADMIN";
|
|
618
638
|
readonly OWNER: "OWNER";
|
|
619
639
|
readonly All: "ALL";
|
|
620
640
|
};
|
|
621
641
|
declare const ROLE_PERMISSIONS: {
|
|
622
|
-
readonly ADMIN: ("SUPER_ADMIN" | "OWNER" | "ORGANIZATIONS_CREATE" | "ORGANIZATIONS_READ" | "ORGANIZATIONS_UPDATE" | "ORGANIZATIONS_DELETE" | "GYMS_CREATE" | "GYMS_READ" | "GYMS_UPDATE" | "GYMS_DELETE" | "COLLABORATORS_CREATE" | "COLLABORATORS_READ" | "COLLABORATORS_UPDATE" | "COLLABORATORS_DELETE" | "CLIENTS_CREATE" | "CLIENTS_READ" | "CLIENTS_UPDATE" | "CLIENTS_DELETE" | "CONTRACTS_CREATE" | "CONTRACTS_READ" | "CONTRACTS_UPDATE" | "CONTRACTS_APPROVE" | "CONTRACTS_CANCEL" | "CHECKINS_CREATE" | "CHECKINS_READ" | "REPORTS_VIEW" | "REPORTS_FINANCIAL" | "SETTINGS_UPDATE" | "ASSETS_CREATE" | "ASSETS_READ" | "ASSETS_DELETE" | "FILES_CREATE" | "FILES_READ" | "FILES_DELETE" | "PRODUCTS_CREATE" | "PRODUCTS_READ" | "PRODUCTS_UPDATE" | "PRODUCTS_DELETE" | "PRODUCT_CATEGORIES_CREATE" | "PRODUCT_CATEGORIES_READ" | "PRODUCT_CATEGORIES_UPDATE" | "PRODUCT_CATEGORIES_DELETE" | "SALES_CREATE" | "SALES_READ" | "SALES_UPDATE" | "SALES_DELETE" | "SUPPLIERS_CREATE" | "SUPPLIERS_READ" | "SUPPLIERS_UPDATE" | "SUPPLIERS_DELETE" | "PAYMENT_METHODS_CREATE" | "PAYMENT_METHODS_READ" | "PAYMENT_METHODS_UPDATE" | "PAYMENT_METHODS_DELETE" | "WHATSAPP_READ" | "WHATSAPP_SEND" | "WHATSAPP_MANAGE" | "ALL")[];
|
|
642
|
+
readonly ADMIN: ("SUPER_ADMIN" | "OWNER" | "ORGANIZATIONS_CREATE" | "ORGANIZATIONS_READ" | "ORGANIZATIONS_UPDATE" | "ORGANIZATIONS_DELETE" | "GYMS_CREATE" | "GYMS_READ" | "GYMS_UPDATE" | "GYMS_DELETE" | "COLLABORATORS_CREATE" | "COLLABORATORS_READ" | "COLLABORATORS_UPDATE" | "COLLABORATORS_DELETE" | "CLIENTS_CREATE" | "CLIENTS_READ" | "CLIENTS_UPDATE" | "CLIENTS_DELETE" | "CONTRACTS_CREATE" | "CONTRACTS_READ" | "CONTRACTS_UPDATE" | "CONTRACTS_APPROVE" | "CONTRACTS_CANCEL" | "CHECKINS_CREATE" | "CHECKINS_READ" | "REPORTS_VIEW" | "REPORTS_FINANCIAL" | "SETTINGS_UPDATE" | "ASSETS_CREATE" | "ASSETS_READ" | "ASSETS_DELETE" | "FILES_CREATE" | "FILES_READ" | "FILES_DELETE" | "PRODUCTS_CREATE" | "PRODUCTS_READ" | "PRODUCTS_UPDATE" | "PRODUCTS_DELETE" | "PRODUCT_CATEGORIES_CREATE" | "PRODUCT_CATEGORIES_READ" | "PRODUCT_CATEGORIES_UPDATE" | "PRODUCT_CATEGORIES_DELETE" | "SALES_CREATE" | "SALES_READ" | "SALES_UPDATE" | "SALES_DELETE" | "SUPPLIERS_CREATE" | "SUPPLIERS_READ" | "SUPPLIERS_UPDATE" | "SUPPLIERS_DELETE" | "PAYMENT_METHODS_CREATE" | "PAYMENT_METHODS_READ" | "PAYMENT_METHODS_UPDATE" | "PAYMENT_METHODS_DELETE" | "WHATSAPP_READ" | "WHATSAPP_SEND" | "WHATSAPP_MANAGE" | "WHATSAPP_BULK_SEND" | "WHATSAPP_BULK_MANAGE" | "ALL")[];
|
|
623
643
|
readonly MANAGER: readonly ["GYMS_READ", "COLLABORATORS_READ", "CLIENTS_CREATE", "CLIENTS_READ", "CLIENTS_UPDATE", "CONTRACTS_CREATE", "CONTRACTS_READ", "CHECKINS_CREATE", "CHECKINS_READ", "REPORTS_VIEW", "ASSETS_CREATE", "ASSETS_READ", "ASSETS_DELETE", "FILES_CREATE", "FILES_READ", "FILES_DELETE", "PRODUCTS_CREATE", "PRODUCTS_READ", "PRODUCTS_UPDATE", "PRODUCTS_DELETE", "PRODUCT_CATEGORIES_CREATE", "PRODUCT_CATEGORIES_READ", "PRODUCT_CATEGORIES_UPDATE", "PRODUCT_CATEGORIES_DELETE", "SALES_CREATE", "SALES_READ", "SALES_UPDATE", "SUPPLIERS_CREATE", "SUPPLIERS_READ", "SUPPLIERS_UPDATE", "SUPPLIERS_DELETE", "PAYMENT_METHODS_CREATE", "PAYMENT_METHODS_READ", "PAYMENT_METHODS_UPDATE", "PAYMENT_METHODS_DELETE"];
|
|
624
644
|
};
|
|
625
645
|
declare const CACHE_TTL: {
|
|
@@ -686,6 +706,61 @@ declare const WHATSAPP_EVENTS: {
|
|
|
686
706
|
readonly CONNECTION_UPDATE: "whatsapp/connection.update";
|
|
687
707
|
};
|
|
688
708
|
|
|
709
|
+
declare const BULK_MESSAGING_EVENTS: {
|
|
710
|
+
readonly GENERATE_BULK_MESSAGE: "whatsapp/bulk-message.generate";
|
|
711
|
+
readonly SEND_BULK_MESSAGES: "whatsapp/bulk-messages.send";
|
|
712
|
+
};
|
|
713
|
+
interface GenerateBulkMessageEvent {
|
|
714
|
+
name: typeof BULK_MESSAGING_EVENTS.GENERATE_BULK_MESSAGE;
|
|
715
|
+
data: {
|
|
716
|
+
gymId: string;
|
|
717
|
+
userId: string;
|
|
718
|
+
prompt: string;
|
|
719
|
+
includeVariables?: string[];
|
|
720
|
+
tone?: 'promotional' | 'informational' | 'reminder' | 'greeting' | 'custom' | 'friendly';
|
|
721
|
+
language?: string;
|
|
722
|
+
additionalRequirements?: string;
|
|
723
|
+
};
|
|
724
|
+
}
|
|
725
|
+
interface SendBulkMessagesEvent {
|
|
726
|
+
name: typeof BULK_MESSAGING_EVENTS.SEND_BULK_MESSAGES;
|
|
727
|
+
data: {
|
|
728
|
+
sendId: string;
|
|
729
|
+
gymId: string;
|
|
730
|
+
userId: string;
|
|
731
|
+
instanceName: string;
|
|
732
|
+
templateId?: string;
|
|
733
|
+
message: string;
|
|
734
|
+
clients: Array<{
|
|
735
|
+
clientId: string;
|
|
736
|
+
clientName: string;
|
|
737
|
+
phoneNumber: string;
|
|
738
|
+
data: {
|
|
739
|
+
id: string;
|
|
740
|
+
name: string;
|
|
741
|
+
email?: string;
|
|
742
|
+
phone: string;
|
|
743
|
+
activePlan?: {
|
|
744
|
+
name: string;
|
|
745
|
+
expirationDate?: Date;
|
|
746
|
+
amount?: number;
|
|
747
|
+
};
|
|
748
|
+
membershipStatus?: string;
|
|
749
|
+
metadata?: Record<string, any>;
|
|
750
|
+
};
|
|
751
|
+
}>;
|
|
752
|
+
gymData: {
|
|
753
|
+
name: string;
|
|
754
|
+
phone?: string;
|
|
755
|
+
address?: string;
|
|
756
|
+
countryConfig: {
|
|
757
|
+
currency: string;
|
|
758
|
+
locale: string;
|
|
759
|
+
};
|
|
760
|
+
};
|
|
761
|
+
};
|
|
762
|
+
}
|
|
763
|
+
|
|
689
764
|
declare const templateGenerationRequestSchema: z.ZodObject<{
|
|
690
765
|
templateCode: z.ZodString;
|
|
691
766
|
templateMetadata: z.ZodObject<{
|
|
@@ -734,16 +809,54 @@ declare const aiGeneratedTemplateSchema: z.ZodObject<{
|
|
|
734
809
|
suggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
735
810
|
}, "strip", z.ZodTypeAny, {
|
|
736
811
|
message: string;
|
|
737
|
-
tone: "
|
|
812
|
+
tone: "friendly" | "professional" | "casual" | "urgent";
|
|
738
813
|
usedVariables: string[];
|
|
739
814
|
suggestions?: string[] | undefined;
|
|
740
815
|
}, {
|
|
741
816
|
message: string;
|
|
742
|
-
tone: "
|
|
817
|
+
tone: "friendly" | "professional" | "casual" | "urgent";
|
|
743
818
|
usedVariables: string[];
|
|
744
819
|
suggestions?: string[] | undefined;
|
|
745
820
|
}>;
|
|
746
821
|
type TemplateGenerationRequest = z.infer<typeof templateGenerationRequestSchema>;
|
|
747
822
|
type AIGeneratedTemplate = z.infer<typeof aiGeneratedTemplateSchema>;
|
|
748
823
|
|
|
749
|
-
|
|
824
|
+
declare const bulkMessageGenerationRequestSchema: z.ZodObject<{
|
|
825
|
+
prompt: z.ZodString;
|
|
826
|
+
tone: z.ZodOptional<z.ZodEnum<["promotional", "informational", "reminder", "greeting", "friendly"]>>;
|
|
827
|
+
includeVariables: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
828
|
+
additionalRequirements: z.ZodOptional<z.ZodString>;
|
|
829
|
+
language: z.ZodDefault<z.ZodString>;
|
|
830
|
+
}, "strip", z.ZodTypeAny, {
|
|
831
|
+
language: string;
|
|
832
|
+
prompt: string;
|
|
833
|
+
tone?: "promotional" | "informational" | "reminder" | "greeting" | "friendly" | undefined;
|
|
834
|
+
includeVariables?: string[] | undefined;
|
|
835
|
+
additionalRequirements?: string | undefined;
|
|
836
|
+
}, {
|
|
837
|
+
prompt: string;
|
|
838
|
+
language?: string | undefined;
|
|
839
|
+
tone?: "promotional" | "informational" | "reminder" | "greeting" | "friendly" | undefined;
|
|
840
|
+
includeVariables?: string[] | undefined;
|
|
841
|
+
additionalRequirements?: string | undefined;
|
|
842
|
+
}>;
|
|
843
|
+
declare const bulkMessageSchema: z.ZodObject<{
|
|
844
|
+
message: z.ZodString;
|
|
845
|
+
tone: z.ZodEnum<["promotional", "informational", "reminder", "greeting", "friendly"]>;
|
|
846
|
+
usedVariables: z.ZodArray<z.ZodString, "many">;
|
|
847
|
+
suggestions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
848
|
+
}, "strip", z.ZodTypeAny, {
|
|
849
|
+
message: string;
|
|
850
|
+
tone: "promotional" | "informational" | "reminder" | "greeting" | "friendly";
|
|
851
|
+
usedVariables: string[];
|
|
852
|
+
suggestions?: string[] | undefined;
|
|
853
|
+
}, {
|
|
854
|
+
message: string;
|
|
855
|
+
tone: "promotional" | "informational" | "reminder" | "greeting" | "friendly";
|
|
856
|
+
usedVariables: string[];
|
|
857
|
+
suggestions?: string[] | undefined;
|
|
858
|
+
}>;
|
|
859
|
+
type BulkMessageGenerationRequest = z.infer<typeof bulkMessageGenerationRequestSchema>;
|
|
860
|
+
type BulkMessage = z.infer<typeof bulkMessageSchema>;
|
|
861
|
+
|
|
862
|
+
export { type AIGeneratedTemplate, type AcceptInvitationDto, type ActivityItem, type ActivityQueryParams, AssetCategory, AssetStatus, type AuditFields, BULK_MESSAGE_VARIABLES, BULK_MESSAGE_VARIABLE_CATEGORIES, BULK_MESSAGING_EVENTS, type BirthdayTemplateData, type BulkMessage, type BulkMessageGenerationRequest, type BulkMessageVariable, CACHE_TTL, ClientStatus, type Collaborator, type CollaboratorStats, CollaboratorStatus, ContractAssetType, ContractStatus, type CreateInvitationDto, type Currency, DATE_FORMATS, type EntityType, FILE_LIMITS, type GenerateBulkMessageEvent, HEADERS, type ICollaborator, type IGym, type IOrganization, type IRequestContext, type IRole, type ISubscription, type ISubscriptionPlan, type IUser, type Invitation, InvitationStatus, type ListCollaboratorsParams, type MembershipExpiringTemplateData, type MembershipPurchaseTemplateData, type MembershipRenewalTemplateData, PAGINATION_DEFAULTS, PERMISSIONS, type PaginatedResponse, type PaginationMeta, type PaginationParams, PaymentFrequency, type PaymentReceiptTemplateData, type PaymentReminderTemplateData, type Permission, PlanStatus, ROLE_NAMES, ROLE_PERMISSIONS, type Role, type RoleName, RoleNames, type SendBulkMessagesEvent, type StatsQueryParams, SubscriptionStatus, TEMPLATE_CODES, TEMPLATE_METADATA, TemplateCode, type TemplateGenerationRequest, type TemplateMetadata, TemplateType, type UUID, type UpdateCollaboratorDto, type UpdateCollaboratorRoleDto, type UpdateCollaboratorStatusDto, type User, UserType, type ValidateByCodeDto, WHATSAPP_EVENTS, WHATSAPP_TEMPLATE_EVENTS, type WelcomeTemplateData, type WhatsAppMessageSendEventData, type WhatsAppTemplateData, type WhatsAppTemplateEventData, aiGeneratedTemplateSchema, bulkMessageGenerationRequestSchema, bulkMessageSchema, canAccessFeature, getRoleCapabilities, getRoleDescription, getRoleDisplayName, isAdminRole, isEncargadoRole, templateGenerationRequestSchema };
|
package/dist/index.js
CHANGED
|
@@ -211,6 +211,157 @@ var TEMPLATE_METADATA = {
|
|
|
211
211
|
}
|
|
212
212
|
};
|
|
213
213
|
|
|
214
|
+
// src/constants/bulk-message-variables.ts
|
|
215
|
+
var BULK_MESSAGE_VARIABLES = [
|
|
216
|
+
// Variables de Cliente
|
|
217
|
+
{
|
|
218
|
+
name: "clientName",
|
|
219
|
+
placeholder: "{{clientName}}",
|
|
220
|
+
description: "Nombre completo del cliente",
|
|
221
|
+
example: "Juan P\xE9rez",
|
|
222
|
+
category: "client",
|
|
223
|
+
required: false,
|
|
224
|
+
formatter: "text"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
name: "clientEmail",
|
|
228
|
+
placeholder: "{{clientEmail}}",
|
|
229
|
+
description: "Email del cliente",
|
|
230
|
+
example: "juan@example.com",
|
|
231
|
+
category: "client",
|
|
232
|
+
required: false,
|
|
233
|
+
formatter: "text"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
name: "clientPhone",
|
|
237
|
+
placeholder: "{{clientPhone}}",
|
|
238
|
+
description: "Tel\xE9fono del cliente",
|
|
239
|
+
example: "+51 999 999 999",
|
|
240
|
+
category: "client",
|
|
241
|
+
required: false,
|
|
242
|
+
formatter: "text"
|
|
243
|
+
},
|
|
244
|
+
// Variables de Gimnasio
|
|
245
|
+
{
|
|
246
|
+
name: "gymName",
|
|
247
|
+
placeholder: "{{gymName}}",
|
|
248
|
+
description: "Nombre del gimnasio",
|
|
249
|
+
example: "Gym Fitness",
|
|
250
|
+
category: "gym",
|
|
251
|
+
required: false,
|
|
252
|
+
formatter: "text"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
name: "gymPhone",
|
|
256
|
+
placeholder: "{{gymPhone}}",
|
|
257
|
+
description: "Tel\xE9fono del gimnasio",
|
|
258
|
+
example: "+51 999 888 777",
|
|
259
|
+
category: "gym",
|
|
260
|
+
required: false,
|
|
261
|
+
formatter: "text"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
name: "gymAddress",
|
|
265
|
+
placeholder: "{{gymAddress}}",
|
|
266
|
+
description: "Direcci\xF3n del gimnasio",
|
|
267
|
+
example: "Av. Principal 123",
|
|
268
|
+
category: "gym",
|
|
269
|
+
required: false,
|
|
270
|
+
formatter: "text"
|
|
271
|
+
},
|
|
272
|
+
// Variables de Membresía
|
|
273
|
+
{
|
|
274
|
+
name: "planName",
|
|
275
|
+
placeholder: "{{planName}}",
|
|
276
|
+
description: "Nombre del plan de membres\xEDa",
|
|
277
|
+
example: "Plan Premium",
|
|
278
|
+
category: "membership",
|
|
279
|
+
required: false,
|
|
280
|
+
formatter: "text"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
name: "membershipStatus",
|
|
284
|
+
placeholder: "{{membershipStatus}}",
|
|
285
|
+
description: "Estado de la membres\xEDa",
|
|
286
|
+
example: "Activa",
|
|
287
|
+
category: "membership",
|
|
288
|
+
required: false,
|
|
289
|
+
formatter: "text"
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
name: "daysUntilExpiration",
|
|
293
|
+
placeholder: "{{daysUntilExpiration}}",
|
|
294
|
+
description: "D\xEDas restantes hasta vencimiento",
|
|
295
|
+
example: "15",
|
|
296
|
+
category: "membership",
|
|
297
|
+
required: false,
|
|
298
|
+
formatter: "number"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
name: "expirationDate",
|
|
302
|
+
placeholder: "{{expirationDate}}",
|
|
303
|
+
description: "Fecha de vencimiento",
|
|
304
|
+
example: "31/12/2024",
|
|
305
|
+
category: "membership",
|
|
306
|
+
required: false,
|
|
307
|
+
formatter: "date"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
name: "amount",
|
|
311
|
+
placeholder: "{{amount}}",
|
|
312
|
+
description: "Monto con formato de moneda",
|
|
313
|
+
example: "S/ 150.00",
|
|
314
|
+
category: "membership",
|
|
315
|
+
required: false,
|
|
316
|
+
formatter: "currency"
|
|
317
|
+
},
|
|
318
|
+
// Variables de Fecha/Hora
|
|
319
|
+
{
|
|
320
|
+
name: "date",
|
|
321
|
+
placeholder: "{{date}}",
|
|
322
|
+
description: "Fecha actual",
|
|
323
|
+
example: "15/10/2024",
|
|
324
|
+
category: "datetime",
|
|
325
|
+
required: false,
|
|
326
|
+
formatter: "date"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
name: "time",
|
|
330
|
+
placeholder: "{{time}}",
|
|
331
|
+
description: "Hora actual",
|
|
332
|
+
example: "14:30",
|
|
333
|
+
category: "datetime",
|
|
334
|
+
required: false,
|
|
335
|
+
formatter: "text"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
name: "dayOfWeek",
|
|
339
|
+
placeholder: "{{dayOfWeek}}",
|
|
340
|
+
description: "D\xEDa de la semana",
|
|
341
|
+
example: "Lunes",
|
|
342
|
+
category: "datetime",
|
|
343
|
+
required: false,
|
|
344
|
+
formatter: "text"
|
|
345
|
+
},
|
|
346
|
+
// Variables Personalizadas
|
|
347
|
+
{
|
|
348
|
+
name: "customField",
|
|
349
|
+
placeholder: "{{customField}}",
|
|
350
|
+
description: "Campo personalizado del cliente",
|
|
351
|
+
example: "Valor personalizado",
|
|
352
|
+
category: "custom",
|
|
353
|
+
required: false,
|
|
354
|
+
formatter: "text"
|
|
355
|
+
}
|
|
356
|
+
];
|
|
357
|
+
var BULK_MESSAGE_VARIABLE_CATEGORIES = {
|
|
358
|
+
client: "Cliente",
|
|
359
|
+
gym: "Gimnasio",
|
|
360
|
+
membership: "Membres\xEDa",
|
|
361
|
+
datetime: "Fecha/Hora",
|
|
362
|
+
custom: "Personalizado"
|
|
363
|
+
};
|
|
364
|
+
|
|
214
365
|
// src/constants.ts
|
|
215
366
|
var PERMISSIONS = {
|
|
216
367
|
// Organizations
|
|
@@ -284,6 +435,8 @@ var PERMISSIONS = {
|
|
|
284
435
|
WHATSAPP_READ: "WHATSAPP_READ",
|
|
285
436
|
WHATSAPP_SEND: "WHATSAPP_SEND",
|
|
286
437
|
WHATSAPP_MANAGE: "WHATSAPP_MANAGE",
|
|
438
|
+
WHATSAPP_BULK_SEND: "WHATSAPP_BULK_SEND",
|
|
439
|
+
WHATSAPP_BULK_MANAGE: "WHATSAPP_BULK_MANAGE",
|
|
287
440
|
// Special permissions
|
|
288
441
|
SUPER_ADMIN: "SUPER_ADMIN",
|
|
289
442
|
OWNER: "OWNER",
|
|
@@ -463,6 +616,12 @@ var WHATSAPP_EVENTS = {
|
|
|
463
616
|
MESSAGE_RECEIVED: "whatsapp/message.received",
|
|
464
617
|
CONNECTION_UPDATE: "whatsapp/connection.update"
|
|
465
618
|
};
|
|
619
|
+
|
|
620
|
+
// src/events/bulk-messaging.events.ts
|
|
621
|
+
var BULK_MESSAGING_EVENTS = {
|
|
622
|
+
GENERATE_BULK_MESSAGE: "whatsapp/bulk-message.generate",
|
|
623
|
+
SEND_BULK_MESSAGES: "whatsapp/bulk-messages.send"
|
|
624
|
+
};
|
|
466
625
|
var templateGenerationRequestSchema = zod.z.object({
|
|
467
626
|
templateCode: zod.z.string(),
|
|
468
627
|
templateMetadata: zod.z.object({
|
|
@@ -480,9 +639,25 @@ var aiGeneratedTemplateSchema = zod.z.object({
|
|
|
480
639
|
usedVariables: zod.z.array(zod.z.string()).describe("Variables utilizadas en el mensaje"),
|
|
481
640
|
suggestions: zod.z.array(zod.z.string()).optional().describe("Sugerencias adicionales")
|
|
482
641
|
});
|
|
642
|
+
var bulkMessageGenerationRequestSchema = zod.z.object({
|
|
643
|
+
prompt: zod.z.string().describe("Prompt or context for message generation"),
|
|
644
|
+
tone: zod.z.enum(["promotional", "informational", "reminder", "greeting", "friendly"]).optional().describe("Tone of the message"),
|
|
645
|
+
includeVariables: zod.z.array(zod.z.string()).optional().describe("Variables to include in the message"),
|
|
646
|
+
additionalRequirements: zod.z.string().optional().describe("Additional requirements for the message"),
|
|
647
|
+
language: zod.z.string().default("es").describe("Language for generation")
|
|
648
|
+
});
|
|
649
|
+
var bulkMessageSchema = zod.z.object({
|
|
650
|
+
message: zod.z.string().describe("Generated message with variables"),
|
|
651
|
+
tone: zod.z.enum(["promotional", "informational", "reminder", "greeting", "friendly"]).describe("Tone of the message"),
|
|
652
|
+
usedVariables: zod.z.array(zod.z.string()).describe("Variables used in the message"),
|
|
653
|
+
suggestions: zod.z.array(zod.z.string()).optional().describe("Additional message suggestions")
|
|
654
|
+
});
|
|
483
655
|
|
|
484
656
|
exports.AssetCategory = AssetCategory;
|
|
485
657
|
exports.AssetStatus = AssetStatus;
|
|
658
|
+
exports.BULK_MESSAGE_VARIABLES = BULK_MESSAGE_VARIABLES;
|
|
659
|
+
exports.BULK_MESSAGE_VARIABLE_CATEGORIES = BULK_MESSAGE_VARIABLE_CATEGORIES;
|
|
660
|
+
exports.BULK_MESSAGING_EVENTS = BULK_MESSAGING_EVENTS;
|
|
486
661
|
exports.CACHE_TTL = CACHE_TTL;
|
|
487
662
|
exports.ClientStatus = ClientStatus;
|
|
488
663
|
exports.CollaboratorStatus = CollaboratorStatus;
|
|
@@ -508,6 +683,8 @@ exports.UserType = UserType;
|
|
|
508
683
|
exports.WHATSAPP_EVENTS = WHATSAPP_EVENTS;
|
|
509
684
|
exports.WHATSAPP_TEMPLATE_EVENTS = WHATSAPP_TEMPLATE_EVENTS;
|
|
510
685
|
exports.aiGeneratedTemplateSchema = aiGeneratedTemplateSchema;
|
|
686
|
+
exports.bulkMessageGenerationRequestSchema = bulkMessageGenerationRequestSchema;
|
|
687
|
+
exports.bulkMessageSchema = bulkMessageSchema;
|
|
511
688
|
exports.canAccessFeature = canAccessFeature;
|
|
512
689
|
exports.getRoleCapabilities = getRoleCapabilities;
|
|
513
690
|
exports.getRoleDescription = getRoleDescription;
|