import { IPaginatedBase } from "../content/index.js"; import { EUserRoles } from "../../middleware/index.js"; import { TAvatarImage, TCommunicationSettings } from "../user/index.js"; import { ESupportedLanguages } from "../translation/index.js"; export declare enum ESupportStatus { TO_DO = "to-do", IN_PROGRESS = "in-progress", RESOLVED = "resolved" } export declare enum ESupportCategory { ACCOUNT = "account", POST = "post", IMPORT = "import", GROUPING = "grouping", FEED = "feed", SUPPORT = "support" } export declare enum ESupportSubCategory { PASSWORD_RESET = "password-reset", LOGIN_FAILURE = "login-failure", EMAIL_VERIFICATION_FAILURE = "email-verification-failure", INCORRECT_DETAILS = "incorrect-details", GENERAL = "general", EDIT = "edit", CREATE = "create", DELETE = "delete", ARCHIVE = "archive", RESTORE = "restore", CATEGORY = "category", DISABLE_ENABLE = "disable-enable", ROLE_PROMOTE = "role-promote" } export declare enum ESupportElevatedLevel { L2 = "l2", L1 = "l1" } export type TSupportTicketPost = { category: ESupportCategory.POST; subCategory: ESupportSubCategory.CREATE | ESupportSubCategory.EDIT | ESupportSubCategory.DELETE | ESupportSubCategory.ARCHIVE | ESupportSubCategory.RESTORE | ESupportSubCategory.CATEGORY | ESupportSubCategory.GENERAL; }; export type TSupportTicketAccount = { category: ESupportCategory.ACCOUNT; subCategory: ESupportSubCategory.PASSWORD_RESET | ESupportSubCategory.LOGIN_FAILURE | ESupportSubCategory.EMAIL_VERIFICATION_FAILURE | ESupportSubCategory.INCORRECT_DETAILS | ESupportSubCategory.GENERAL; }; export type TSupportTicketImport = { category: ESupportCategory.IMPORT; subCategory: ESupportSubCategory.GENERAL; }; export type TSupportTicketSupport = { category: ESupportCategory.SUPPORT; subCategory: ESupportSubCategory.GENERAL; }; export type TSupportTicketGrouping = { category: ESupportCategory.GROUPING; subCategory: ESupportSubCategory.CREATE | ESupportSubCategory.EDIT | ESupportSubCategory.DELETE | ESupportSubCategory.GENERAL; }; export type TSupportTicketFeed = { category: ESupportCategory.FEED; subCategory: ESupportSubCategory.GENERAL; }; export type TSupportTicketUser = { category: ESupportCategory.FEED; subCategory: ESupportSubCategory.CREATE | ESupportSubCategory.EDIT | ESupportSubCategory.DELETE | ESupportSubCategory.DISABLE_ENABLE | ESupportSubCategory.ROLE_PROMOTE | ESupportSubCategory.GENERAL; }; export interface ISupportUserAttrs { _id: string; firstName: string; lastName: string; avatar: TAvatarImage; tenant: string; mobileNumber: string; role: EUserRoles; email?: string; emailVerified: boolean; support: { id: string | null; }; position: string; employeeId: string; department: string; communication: TCommunicationSettings; lng: ESupportedLanguages; enabled: boolean; version: number; } export interface ISupportUser { id: string; firstName: string; lastName: string; avatar: TAvatarImage; support: { id: string | null; }; communication: TCommunicationSettings; tenant: string; mobileNumber: string; employeeId: string; role: EUserRoles; email?: string; emailVerified: boolean; position: string; department: string; lng: ESupportedLanguages; enabled: boolean; version: number; } export type TSupportTicketAttrs = { senderId: string; readRole: EUserRoles.CLIENT_ADMIN | EUserRoles.CLIENT_OWNER; summary: string; number: string; description: string; elevated?: { date: number | null; level: ESupportElevatedLevel | null; elevatedBy: string | null; }; assignedTo?: string | null; status?: ESupportStatus; time: { dateCreated: number; assign: number | null; resolved: number | null; }; tenant: string; l2Feedback?: { userId: string | null; feedback: string | null; }; l1Feedback?: { userId: string | null; feedback: string | null; }; } & (TSupportTicketPost | TSupportTicketAccount | TSupportTicketImport | TSupportTicketGrouping | TSupportTicketFeed | TSupportTicketUser | TSupportTicketSupport); export interface ISupportTicket { id: string; senderId: string | ISupportUser | null; category: ESupportCategory; subCategory: ESupportSubCategory; summary: string; description: string; number: string; elevated: { date: number | null; level: ESupportElevatedLevel | null; elevatedBy: string | null; }; readRole: EUserRoles.CLIENT_ADMIN | EUserRoles.CLIENT_OWNER; status: ESupportStatus; assignedTo: string | null; time: { dateCreated: number; assign: number | null; resolved: number | null; }; tenant: string; l2Feedback: { userId: string | ISupportUser | null; feedback: string | null; }; l1Feedback: { userId: string | ISupportUser | null; feedback: string | null; }; version: number; } export interface ISupportTicketPaginateResult extends IPaginatedBase { docs: Partial[]; } //# sourceMappingURL=interfaces.d.ts.map