import { EMicroServiceNames } from "../micro-services/index.js"; import { EBindKey, EExchangeNames, EExchangeTypes, IMessageEvent, TEventRetryCounts } from "../events/index.js"; import { ESmsDeliveryStatus, ESmsProvider } from "./support-events.js"; import { IComment, IPublishedPost, IReaction } from "./content/index.js"; import { ISupportTicket } from "./support/index.js"; import { ESmsType } from "./sms/index.js"; import { EGroupingType } from "./grouping/index.js"; export declare enum EAIQueryType { CREATE = "create", SUMMARY = "summary" } export declare enum ELogType { APPLICATION_STATUS = "application-status", APPLICATION_INSIGHTS = "application-insights", APPLICATION_ERROR = "application-error", CONSUMER_ERROR = "consumer-error", PUBLISHER_ERROR = "publisher-error", WORKER_JOB_FAILED = "worker-job-failed", SMS_REPORT = "sms-report", LOGGING_ERROR = "logging-error" } export declare enum EApplicationLogTypes { POST_PUBLISHED = "post-published", POST_UNPUBLISHED = "post-unpublished", POST_AUDIENCE = "post-audience", POST_AI_TOKEN_COUNT = "post-ai-token-count", COMMENT_CREATE = "comment-create", COMMENT_DELETE = "comment-delete", REACTION_CREATE = "reaction-create", REACTION_DELETE = "reaction-delete", GROUPING_CREATE = "grouping-create", GROUPING_DELETE = "grouping-delete", GROUPING_ACTIVE = "grouping-active", GROUPING_EDIT = "grouping-edit", GROUPING_USAGE = "grouping-usage", USER_INCREMENT = "user-increment", USER_DECREMENT = "user-decrement", USER_INVITE = "user-invite", USER_VERIFIED = "user-verified", USER_DISABLE = "user-disable", USER_ENABLE = "user-enable", USER_ACTIVITY = "user-activity", SUPPORT_TICKET_CREATE = "support-ticket-create", SUPPORT_TICKET_ASSIGN = "support-ticket-assign", SUPPORT_TICKET_RESOLVED = "support-ticket-resolved", SUPPORT_TICKET_IN_PROGRESS = "support-ticket-in-progress", SMS_TENANT_COUNT = "sms-tenant-count" } export type TPostPublishLogInfo = { service: EMicroServiceNames.CONTENT; subType: EApplicationLogTypes.POST_PUBLISHED; data: { post: IPublishedPost; grouping: { id: string; type: EGroupingType; }; }; }; export type TPostUnpublishLogInfo = { service: EMicroServiceNames.CONTENT; subType: EApplicationLogTypes.POST_UNPUBLISHED; data: { post: IPublishedPost; }; }; export type TPostAudienceLogInfo = { service: EMicroServiceNames.GROUPING; subType: EApplicationLogTypes.POST_AUDIENCE; data: { postId: string; audience: number; }; }; export type TReactionCreationLogInfo = { service: EMicroServiceNames.CONTENT; subType: EApplicationLogTypes.REACTION_CREATE; data: { reaction: IReaction; region: string; userId: string; postId: string; }; }; export type TReactionChangeLogInfo = { service: EMicroServiceNames.CONTENT; subType: EApplicationLogTypes.REACTION_DELETE; data: { reaction: IReaction; region: string; userId: string; postId: string; }; }; export type TCommentCreationLogInfo = { service: EMicroServiceNames.CONTENT; subType: EApplicationLogTypes.COMMENT_CREATE; data: { comment: IComment; region: string; userId: string; postId: string; }; }; export type TCommentDeleteLogInfo = { service: EMicroServiceNames.CONTENT; subType: EApplicationLogTypes.COMMENT_DELETE; data: { comment: IComment; region: string; userId: string; postId: string; }; }; export type TUserIncrementLogInfo = { service: EMicroServiceNames.PROFILE; subType: EApplicationLogTypes.USER_INCREMENT; data: { userId: string; region: string; count: number; }; }; export type TUserDecrementLogInfo = { service: EMicroServiceNames.PROFILE; subType: EApplicationLogTypes.USER_DECREMENT; data: { count: number; userId: string; region: string; }; }; export type TUserInviteLogInfo = { service: EMicroServiceNames.PROFILE; subType: EApplicationLogTypes.USER_INVITE; data: { userId: string; region: string; count: number; reInvited: boolean; }; }; export type TUserVerifiedLogInfo = { service: EMicroServiceNames.PROFILE; subType: EApplicationLogTypes.USER_VERIFIED; data: { userId: string; region: string; count: number; }; }; export type TUserDisableLogInfo = { service: EMicroServiceNames.PROFILE; subType: EApplicationLogTypes.USER_DISABLE; data: { userId: string; region: string; count: number; }; }; export type TUserEnableLogInfo = { service: EMicroServiceNames.PROFILE; subType: EApplicationLogTypes.USER_ENABLE; data: { userId: string; region: string; count: number; }; }; export type TUserActivityLogInfo = { service: EMicroServiceNames.INTERFACE; subType: EApplicationLogTypes.USER_ACTIVITY; data: { count: number; userId: string; region: string; month: string; year: string; day: string; }; }; export interface IInsightSupportTicket extends Pick { assignedTo: string | null; senderId: string; } export type TSupportTicketCreateLogInfo = { service: EMicroServiceNames.SUPPORT; subType: EApplicationLogTypes.SUPPORT_TICKET_CREATE; data: { ticket: IInsightSupportTicket; }; }; export type TSupportTicketAssignLogInfo = { service: EMicroServiceNames.SUPPORT; subType: EApplicationLogTypes.SUPPORT_TICKET_ASSIGN; data: { ticket: IInsightSupportTicket; }; }; export type TSupportTicketInProgressLogInfo = { service: EMicroServiceNames.SUPPORT; subType: EApplicationLogTypes.SUPPORT_TICKET_IN_PROGRESS; data: { ticket: IInsightSupportTicket; }; }; export type TSmsCountLogInfo = { service: EMicroServiceNames.REPORT; subType: EApplicationLogTypes.SMS_TENANT_COUNT; data: { smsType: ESmsType; userId: string; adminId: string; status: ESmsDeliveryStatus; }; }; export type TPostAiTokenCountLogInfo = { service: EMicroServiceNames.CONTENT; subType: EApplicationLogTypes.POST_AI_TOKEN_COUNT; data: { type: EAIQueryType; adminId: string; totalTokenCount: number; promptTokenCount: number; resultTokenCount: number; }; }; export type TSupportTicketResolvedLogInfo = { service: EMicroServiceNames.SUPPORT; subType: EApplicationLogTypes.SUPPORT_TICKET_RESOLVED; data: { ticket: IInsightSupportTicket; }; }; export type TGroupingTypeSave = { type: EGroupingType.SAVED; name: string; }; export type TGroupingTypeOnceOff = { type: EGroupingType.ONCE_OFF; onceOffContentId: string; directory: boolean; }; export type TGroupingInsight = { id: string; tenant: string; feedIdentity: string; active: boolean; dateCreated: number; usage: number; owner: string; type: TGroupingTypeSave | TGroupingTypeOnceOff; audienceCount: number; version: number; }; export type TGroupingCreateLogInfo = { service: EMicroServiceNames.GROUPING; subType: EApplicationLogTypes.GROUPING_CREATE; data: { group: TGroupingInsight; }; }; export type TGroupingEditLogInfo = { service: EMicroServiceNames.GROUPING; subType: EApplicationLogTypes.GROUPING_EDIT; data: { group: TGroupingInsight; }; }; export type TGroupingUsageLogInfo = { service: EMicroServiceNames.GROUPING; subType: EApplicationLogTypes.GROUPING_USAGE; data: { group: TGroupingInsight; }; }; export type TApplicationStatusLogData = { retry: TEventRetryCounts; type: ELogType.APPLICATION_STATUS; tenant: string; date: number; } & (TPostPublishLogInfo | TPostUnpublishLogInfo | TReactionCreationLogInfo | TReactionChangeLogInfo | TCommentCreationLogInfo | TCommentDeleteLogInfo | TUserIncrementLogInfo | TUserDecrementLogInfo | TUserInviteLogInfo | TUserVerifiedLogInfo | TUserDisableLogInfo | TUserEnableLogInfo | TUserActivityLogInfo | TSupportTicketCreateLogInfo | TSupportTicketAssignLogInfo | TSupportTicketResolvedLogInfo | TSupportTicketInProgressLogInfo); export type TApplicationInsightsLogData = { retry: TEventRetryCounts; type: ELogType.APPLICATION_INSIGHTS; tenant: string; date: number; } & (TPostPublishLogInfo | TPostUnpublishLogInfo | TReactionCreationLogInfo | TReactionChangeLogInfo | TCommentCreationLogInfo | TCommentDeleteLogInfo | TUserIncrementLogInfo | TUserDecrementLogInfo | TUserInviteLogInfo | TUserVerifiedLogInfo | TUserDisableLogInfo | TUserEnableLogInfo | TUserActivityLogInfo | TSupportTicketCreateLogInfo | TSupportTicketAssignLogInfo | TSupportTicketResolvedLogInfo | TSupportTicketInProgressLogInfo | TSmsCountLogInfo | TPostAiTokenCountLogInfo | TPostAudienceLogInfo | TGroupingCreateLogInfo | TGroupingEditLogInfo | TGroupingUsageLogInfo); export type TErrorInfo = { errorData: string | undefined; }; export type TErrorLog = { type: ELogType.APPLICATION_ERROR; logInfo: TErrorInfo; }; export type TConsumerErrorInfo = { exchangeName: EExchangeNames; queueName: string; bindKey: EBindKey; messageData: string; }; export type TConsumerErrorLogData = { type: ELogType.CONSUMER_ERROR; logInfo: TConsumerErrorInfo; }; export type TPublisherErrorInfo = { exchangeName: EExchangeNames; bindKey: EBindKey; isSetup: boolean; messageData: string; }; export type TPublisherErrorLogData = { type: ELogType.PUBLISHER_ERROR; logInfo: TPublisherErrorInfo; }; export type TLoggingErrorLogData = { type: ELogType.LOGGING_ERROR; logInfo: TErrorInfo; }; export type TWorkerFailInfo = { queueName: string; jobData: string; }; export type TWorkerJobFailedLogData = { type: ELogType.WORKER_JOB_FAILED; logInfo: TWorkerFailInfo; }; export type TSmsReportLogInfo = { provider: ESmsProvider; data: Record; }; export type TSmsReportLogData = { type: ELogType.SMS_REPORT; logInfo: TSmsReportLogInfo; }; export type TLogData = { retry: TEventRetryCounts; tenant: string | null; service: EMicroServiceNames; origin: string; message: string | undefined; date: number; } & (TErrorLog | TApplicationStatusLogData | TConsumerErrorLogData | TPublisherErrorLogData | TWorkerJobFailedLogData | TSmsReportLogData | TLoggingErrorLogData | TApplicationInsightsLogData); export interface IApplicationStatusLogEvent extends IMessageEvent { exchangeName: EExchangeNames.LOG_APPLICATION_STATUS; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.LOG_APPLICATION_STATUS; data?: TApplicationStatusLogData; } export interface IApplicationInsightsLogEvent extends IMessageEvent { exchangeName: EExchangeNames.LOG_APPLICATION_INSIGHTS; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.LOG_APPLICATION_INSIGHTS; data?: TApplicationInsightsLogData; } export interface IApplicationErrorLogEvent extends IMessageEvent { exchangeName: EExchangeNames.LOG_APPLICATION_ERROR; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.LOG_APPLICATION_ERROR; data?: TLogData & TErrorLog; } export interface IConsumerErrorLogEvent extends IMessageEvent { exchangeName: EExchangeNames.LOG_CONSUMER_ERROR; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.LOG_CONSUMER_ERROR; data?: TLogData & TConsumerErrorLogData; } export interface IPublisherErrorLogEvent extends IMessageEvent { exchangeName: EExchangeNames.LOG_PUBLISHER_ERROR; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.LOG_PUBLISHER_ERROR; data?: TLogData & TPublisherErrorLogData; } export interface IWorkerJobFailedLogEvent extends IMessageEvent { exchangeName: EExchangeNames.LOG_WORKER_JOB_FAILED; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.LOG_WORKER_JOB_FAILED; data?: TLogData & TWorkerJobFailedLogData; } export interface ISmsReportLoggerEvent extends IMessageEvent { exchangeName: EExchangeNames.LOG_REPORT_SMS; exchangeType: EExchangeTypes.DIRECT; key: EBindKey.LOG_REPORT_SMS; data?: TLogData & TSmsReportLogData; } //# sourceMappingURL=log-events.d.ts.map