import { Schema } from "mongoose"; import { EnumMap,IJson,IDocument,IObject,IInstance,IModel,IAction,IActionTypes } from "@onebro/oba-common"; import { FinavigatorUserProfile,FinavigatorUserProfilePreview } from "./profiles"; import { FinavigatorMessage, FinavigatorMessageJson } from "./messages"; export enum FinavigatorServiceChatStatuses { N = "New", S = "Saved", Y = "Sent", Z = "Seen/Read", A = "Accepted", D = "Declined", R = "Revised", E = "Expired", C = "Cancelled",} export type FinavigatorServiceChatStatus = keyof typeof FinavigatorServiceChatStatuses; export type FinavigatorServiceChatConfig = { agent:string; client:string; }; export type FinavigatorServiceChatType = IObject & { agent:FinavigatorUserProfile; client:FinavigatorUserProfile; msgs:FinavigatorMessage[]; notes:FinavigatorMessage[];}; export interface FinavigatorServiceChatDocument extends IDocument,FinavigatorServiceChatType {} export interface FinavigatorServiceChat extends IInstance,FinavigatorServiceChatDocument {} export interface FinavigatorServiceChatModel extends IModel {} export type FinavigatorServiceChatPublicKeys = "created"; export type FinavigatorServiceChatPublicData = Pick; export type FinavigatorServiceChatJson = IJson & { agent:FinavigatorUserProfilePreview; client:FinavigatorUserProfilePreview; msgs:FinavigatorMessageJson[]; notes:FinavigatorMessageJson[];}; export type FinavigatorServiceChatModelMap = {FinavigatorServiceChat:FinavigatorServiceChatModel;}; export type FinavigatorServiceChatInstanceMap = {chat:FinavigatorServiceChat;}; export type FinavigatorServiceChatSchemaMap = {chat:Schema;}; export type FinavigatorServiceChatActionTypes = IActionTypes; export type FinavigatorServiceChatActions = EnumMap;