import { Keys, Extends, PropSelector, Status, Strings, Info, } from "@onebro/oba-common"; import { Model, ModelSignature, ModelBaseTypeSig, Stages, ModelMiscReference, StageGuard, } from "@onebro/oba-mongoose"; import {DocStatuses} from "./00-common"; import { UserAcctAsProp } from "./01-user-acct"; //import {MessageAsProp} from "./05-message"; export type PostProps = Record<"title"|"slug",string> & { _type_:"post"; domain:string; type:string; category:"tech"|"billing"|"invest"|"general"|"orders"|"service"|"partner"|"jobs"; body:string; author:UserAcctAsProp[t]; published:Date; }; export type PostConfigKeys = |"domain"|"type"|"title"|"author"|"body"; export type PostConfigOptKeys = |"slug"; export type PostInstanceKeys = PostConfigKeys|PostConfigOptKeys; export type PostJsonKeys = PostInstanceKeys|"_type_"|"published"; export type PostPreviewKeys = |"domain"|"type"|"title"|"author"|"body"|"published"; export type PostSelfRefs = {}; export type PostMethods = {}; export type PostPropKeys = Keys>; export type PostPropSelector< t extends Stages, k extends PostPropKeys = undefined, j extends PostPropKeys = undefined> = PropSelector,k,j>; export type PostSignature = ModelSignature< PostPropSelector<"C",PostConfigKeys,PostConfigOptKeys>, PostPropSelector<"I",PostInstanceKeys> & PostMethods, PostPropSelector<"J",PostJsonKeys>, PostPropSelector<"J",PostPreviewKeys>, DocStatuses, PostSelfRefs>; export type Post = Model; export type PostAsProp = ModelBaseTypeSig< Extends<[IsArr],[true|1],string[],string>, Extends<[IsArr],[true|1],Post["instance"][],Post["instance"]>, Extends<[IsArr],[true|1],Post["preview"][],Post["preview"]>>;