import { Schema } from "mongoose"; import { EnumMap,IJson,IDocument,IObject,IInstance,IModel,IAction,IActionTypes,MiscInfo } from "@onebro/oba-common"; import { FinavigatorUserProfile,FinavigatorUserProfilePreview } from "./profiles"; export enum FinavigatorTaskStatuses { N = "New", S = "Saved", Y = "Sent", Z = "Seen/Read", A = "Accepted", D = "Declined", R = "Revised", E = "Expired", C = "Cancelled",} export type FinavigatorTaskStatus = keyof typeof FinavigatorTaskStatuses; export type FinavigatorTaskConfig = { type:"article"|"opinion"|"tutorial"; author:string; title?:string;}; export type FinavigatorTaskType = IObject & Omit & { author:FinavigatorUserProfile; slug:string; featured:boolean; body:string; tags:string|MiscInfo[]; views:number;}; export interface FinavigatorTaskDocument extends IDocument,FinavigatorTaskType {} export interface FinavigatorTask extends IInstance,FinavigatorTaskDocument {} export interface FinavigatorTaskModel extends IModel {} export type FinavigatorTaskPublicKeys = "type"|"slug"|"title"|"featured"|"body"|"tags"|"views"; export type FinavigatortaskPublicData = Pick; export type FinavigatorTaskJson = IJson & FinavigatortaskPublicData & { published:Date; author:FinavigatorUserProfilePreview;}; export type FinavigatorTaskModelMap = {FinavigatorTask:FinavigatorTaskModel;}; export type FinavigatorTaskInstanceMap = {task:FinavigatorTask;}; export type FinavigatorTaskSchemaMap = {task:Schema;}; export type FinavigatorTaskActionTypes = IActionTypes; export type FinavigatorTaskActions = EnumMap;