import { ConversationItem, GroupVisibility, MessageItem, MessageType } from "@droppii-org/wasm-client-sdk"; import { SessionStatusItem, TagItem } from "../store/type"; import { BusinessNotificationType, CannedResponseVisibleScope, DChatApplicationType, SessionStatus, SessionTag } from "./chat"; import type { DChatPlatform } from "./chat"; import type { ChatType, PeerType } from "./conversation"; export interface BaseResponse { statusCode: number; message: any; data: T; pageable?: Pageable; } export interface Pageable { pageNumber: number; pageSize: number; totalElements: number; totalPages: number; } export interface SearchMessageRequest { recvID?: string; searchTerm?: string; contentType: MessageType; page?: number; pageSize?: number; applicationType: DChatApplicationType; tag?: string; } export interface MessageResultItem { chatLog: MessageItem; isRevoked: boolean; displayTag?: string; tag?: string; } export interface PagedMessageResponse { data: MessageResultItem[]; pageable: Pageable; } export type SearchMessageItem = MessageResultItem; /** One hit of the app message search; `conversation` is null when chat-service can't build it. */ export interface AppSearchMessageItem { chatLog: MessageItem & { isRevoked?: boolean; }; conversation: (ConversationItem & { peerType?: PeerType | null; }) | null; } export interface AppSearchMessageResponse { data: AppSearchMessageItem[]; pageable: Pageable; } export type SearchMessageResponse = PagedMessageResponse; export interface MessageResourcesRequest { recvID: string; contentType: MessageType; chatType: ChatType; page?: number; pageSize?: number; applicationType: DChatApplicationType; } export type MessageResourcesItem = MessageResultItem; export type MessageResourcesResponse = PagedMessageResponse; export interface ISessionSummaryResponse { activeSessionCount: number; completedSessionCount: number; sessionStatuses: SessionStatusItem[]; tagCounts: TagItem[]; } export interface SessionByTagOrStatusRequest { applicationType: DChatApplicationType; tag?: SessionTag; status?: SessionStatus; page: number; pageSize: number; searchTerm?: string; conversationIds?: string[]; } export interface UpdateSessionResponse { id: string; botId: string; ownerId: string; supporterId?: string; conversationId: string; status: SessionStatus; startSeq: number; endSeq: number; tag: SessionTag; applicationType: DChatApplicationType; } export interface BusinessNotification { data: T; key: BusinessNotificationType; } export interface UpdateFcmTokenRequest { platformID: DChatPlatform; fcmToken: string; account: string; expireTime: number | null; } export interface IGetUserSideInfoResponse { id: string; username: string; fullName: string; note: { id: string; content: string; } | null; avatar: string; } export interface ISessionResponse { id: string; botId?: string; ownerId?: string; supporterId?: string; priorSupporterIds?: string[]; conversationId: string; status: SessionStatus; startSeq?: number; endSeq?: number; tag: SessionTag; applicationType: DChatApplicationType; createdDate: string; closedDate: string | null; issueDetail: string; note: string; supporter: { avatar: string; username: string; fullName: string; id: string; }; order: number; isClosed: boolean; labels: Array<{ id: string; name: string; }>; teamId?: string; } export interface IUpdateSessionInfoPayload { note?: string; issueDetail?: string; labelIds: string[]; applicationType: string; } export interface ILabelResponse { id: string; name: string; } export type SupporterStatus = "ONLINE" | "OFFLINE"; export interface ISupporterResponse { memberId: string; avatar: string | null; displayName: string; username?: string; status: SupporterStatus; openSessionCount?: number; } export interface IManualAssignPayload { applicationType: string; supporterId: string; } export interface IGroupCandidateResponse { id: string; username: string; fullName: string; avatar: string | null; accountType: string; } export interface IGroupCandidatesRequest { page: number; pageSize: number; searchTerm?: string; } export interface IMyTeamResponse { teamId: string; name: string; status: SupporterStatus; } export interface ITeamSessionSummaryItem { teamId: string; teamName: string; teamCode: string; summary: ISessionSummaryResponse; } export interface TeamSessionQueryRequest { teamId: string; applicationType: DChatApplicationType; page: number; pageSize: number; status?: SessionStatus; tag?: SessionTag; } export interface ICannedCategoryResponse { id: string; teamId: string; name: string; } export interface IFetchCannedResponseRequest { teamId?: string; categoryId?: string; visibilityScope: CannedResponseVisibleScope; searchTerm?: string; page?: number; pageSize?: number; shortcut?: string; } export interface IConversationImDetailRequestItem { ownerUserID: string; conversationID: string; } export interface IConversationImDetailRequest { applicationType: DChatApplicationType; conversations: IConversationImDetailRequestItem[]; } export interface IConversationImDetailItem { ownerUserID: string; conversationID: string; conversationType: number; userID: string; groupID: string; recvMsgOpt: number; groupAtType: number; isPinned: boolean; isPrivateChat: boolean; isMsgDestruct: boolean; burnDuration: number; msgDestructTime: number; attachedInfo: string; ex: string; minSeq: number; maxSeq: number; latestMsgDestructTime: number; } export interface IConversationGroupItem { groupId: string; conversationId: string; groupName: string; groupAvatar: string | null; applicationType: DChatApplicationType; latestMessageAt: string | null; visibility?: GroupVisibility | null; memberCount?: number; } export interface ICannedMedia { streamId: string; containerName: string; contentType: string; baseUrl: string; fullUrl: string; name?: string; fileName?: string; fileSize?: number; width?: number; height?: number; } export interface ICannedResponseItem { id: string; teamId: string; category: ICannedCategoryResponse | null; name: string; shortcut: string; content: string; visibilityScope: CannedResponseVisibleScope; ownerUserId: string | null; createdDate: string; modifiedDate: string; images?: ICannedMedia[] | null; files?: ICannedMedia[] | null; } export interface IUploadedFile { streamId: string; name: string; fileName: string; baseUrl: string; contentType: string; fileSize: number; width: number; height: number; publicUrl: string; } export declare enum ContactSearchType { Customer = "CUSTOMER", PdpBot = "PDP_BOT", Group = "GROUP", User = "USER" } export interface ContactSearchItem { id: string; type: ContactSearchType; targetUserId: string | null; targetCustomerId: string | null; targetGroupId: string | null; targetBotId: string | null; targetName: string; targetAvatar: string | null; applicationType: string; lastOnlineTime: string | null; memberCount: number | null; description?: string | null; } export interface SearchContactsRequest { applicationType: string; searchTerm: string; page: number; pageSize: number; type?: ContactSearchType; } export interface IJoinLinkResponse { code: string; status: "ACTIVE"; createdDate: string; createdUserId: string; } export interface IJoinLinkInfo { conversationId: string; groupId: string; groupName: string; groupDescription: string; groupVisibility: GroupVisibility; groupAvatar: string; isMember: boolean; groupTotalMember: number; } //# sourceMappingURL=dto.d.ts.map