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 FinavigatorCommissionStatuses { N = "New", S = "Saved", Y = "Sent", Z = "Seen/Read", A = "Accepted", D = "Declined", R = "Revised", E = "Expired", C = "Cancelled",} export type FinavigatorCommissionStatus = keyof typeof FinavigatorCommissionStatuses; export type FinavigatorCommissionConfig = { payer:string; payee:string; }; export type FinavigatorCommissionType = IObject & { payer:FinavigatorUserProfile; payee:FinavigatorUserProfile; amt:number; reason:string; refId?:string; notes:FinavigatorMessage[];}; export interface FinavigatorCommissionDocument extends IDocument,FinavigatorCommissionType {} export interface FinavigatorCommission extends IInstance,FinavigatorCommissionDocument {} export interface FinavigatorCommissionModel extends IModel {} export type FinavigatorCommissionPublicKeys = "amt"|"refId"|"reason"; export type FinavigatorCommissionPublicData = Pick; export type FinavigatorCommissionJson = IJson & FinavigatorCommissionPublicData & { payer:FinavigatorUserProfilePreview; payee:FinavigatorUserProfilePreview; notes:FinavigatorMessageJson[];}; export type FinavigatorCommissionModelMap = {FinavigatorCommission:FinavigatorCommissionModel;}; export type FinavigatorCommissionInstanceMap = {comm:FinavigatorCommission;}; export type FinavigatorCommissionSchemaMap = {comm:Schema;}; export type FinavigatorCommissionActionTypes = IActionTypes; export type FinavigatorCommissionActions = EnumMap;