import { Schema } from "mongoose"; import { EnumMap,IJson,IDocument,IObject,IInstance,IModel,IAction,IActionTypes } from "@onebro/oba-common"; import { FinavigatorUserProfile,FinavigatorUserProfilePreview } from "./profiles"; export enum FinavigatorMessageStatuses { N = "New", S = "Saved", Y = "Sent", Z = "Seen/Read", A = "Accepted", D = "Declined", R = "Revised", E = "Expired", C = "Cancelled",} export type FinavigatorMessageStatus = keyof typeof FinavigatorMessageStatuses; export type FinavigatorMessageConfig = { type:"contactus"|"note"|"chat"; author:string; body:string}; export type FinavigatorMessageType = IObject & Pick & { author:FinavigatorUserProfile; }; export interface FinavigatorMessageDocument extends IDocument,FinavigatorMessageType {} export interface FinavigatorMessage extends IInstance,FinavigatorMessageDocument {} export interface FinavigatorMessageModel extends IModel {} export type FinavigatorMessagePublicKeys = "type"|"body"; export type FinavigatorMessagePublicData = Pick; export type FinavigatorMessageJson = IJson & FinavigatorMessagePublicData & { published:Date; author:FinavigatorUserProfilePreview;}; export type FinavigatorMessageModelMap = {FinavigatorMessage:FinavigatorMessageModel;}; export type FinavigatorMessageInstanceMap = {msg:FinavigatorMessage;}; export type FinavigatorMessageSchemaMap = {msg:Schema;}; export type FinavigatorMessageActionTypes = IActionTypes; export type FinavigatorMessageActions = EnumMap;