import { Schema } from "mongoose"; import { EnumMap,IJson,IDocument,IObject,IInstance,IModel,IAction,IActionTypes } from "@onebro/oba-common"; import { EnginamorUserProfile,EnginamorUserProfilePreview } from "./profiles"; export enum EnginamorProblemStatuses { N = "New", S = "Saved", Y = "Sent", Z = "Seen/Read", A = "Accepted", D = "Declined", R = "Revised", E = "Expired", C = "Cancelled",} export type EnginamorProblemStatus = keyof typeof EnginamorProblemStatuses; export type EnginamorProblemConfig = { type:"contactus"|"note"|"chat"|"buy-alert"|"sell-alert"; author:string; body:string; symbol:string; subscribers:string[]; sendAt:{time?:Date;price?:number;}; img?:string; link?:string;}; export type EnginamorProblemType = IObject & Omit & { author:EnginamorUserProfile; }; export interface EnginamorProblemDocument extends IDocument,EnginamorProblemType {} export interface EnginamorProblem extends IInstance,EnginamorProblemDocument {} export interface EnginamorProblemModel extends IModel {} export type EnginamorProblemPublicKeys = Exclude; export type EnginamorProblemPublicData = Pick; export type EnginamorProblemJson = IJson & EnginamorProblemPublicData & {published:Date;author:EnginamorUserProfilePreview;}; export type EnginamorProblemModelMap = {EnginamorProblem:EnginamorProblemModel;}; export type EnginamorProblemInstanceMap = {problem:EnginamorProblem;}; export type EnginamorProblemSchemaMap = {problem:Schema;}; export type EnginamorProblemActionTypes = IActionTypes; export type EnginamorProblemActions = EnumMap;