import { Keys, Extends, PropSelector, } from "@onebro/oba-common"; import { Model, ModelSignature, ModelBaseTypeSig, Stages, ModelMiscReference, } from "@onebro/oba-mongoose"; import {DocStatuses} from "./00-common"; import {UploadAsProp} from "./02-upload"; export type VendorItemProps = { _type_:"vendor-item"; service:"dc"|"wnf"; type:string; price:number; cur:"USD"; prefs:Partial<{starch:boolean;detergent:string;softener:string;dryersheet:string}>; owner:ModelMiscReference<"UserProfile">; img:UploadAsProp[t]; published:Date; }; export type VendorItemConfigKeys = |"type"|"price"|"cur"|"owner"|"service"; export type VendorItemConfigOptKeys = |"img"|"prefs"; export type VendorItemInstanceKeys = VendorItemConfigKeys|VendorItemConfigOptKeys; export type VendorItemJsonKeys = VendorItemInstanceKeys|"_type_"|"published"; export type VendorItemPreviewKeys = |"service"|"type"|"price"|"img"|"prefs"; export type VendorItemSelfRefs = {}; export type VendorItemMethods = {}; export type VendorItemPropKeys = Keys>; export type VendorItemPropSelector< t extends Stages, k extends VendorItemPropKeys = undefined, j extends VendorItemPropKeys = undefined> = PropSelector,k,j>; export type VendorItemSignature = ModelSignature< VendorItemPropSelector<"C",VendorItemConfigKeys,VendorItemConfigOptKeys>, VendorItemPropSelector<"I",VendorItemInstanceKeys> & VendorItemMethods, VendorItemPropSelector<"J",VendorItemJsonKeys>, VendorItemPropSelector<"J",VendorItemPreviewKeys>, DocStatuses, VendorItemSelfRefs>; export type VendorItem = Model; export type VendorItemAsProp = ModelBaseTypeSig< Extends<[IsArr],[true|1],string[],string>, Extends<[IsArr],[true|1],VendorItem["instance"][],VendorItem["instance"]>, Extends<[IsArr],[true|1],VendorItem["preview"][],VendorItem["preview"]>>;