import { Keys, Extends, PropSelector, LocStr } from "@onebro/oba-common"; import { Model, ModelSignature, ModelBaseTypeSig, Stages } from "@onebro/oba-mongoose"; import { DocStatuses } from "./00-common"; import { UserAcctAsProp } from "./01-user-acct"; import { ServiceRequestAsProp } from "./03-service-req"; import { VendorAsProp } from "./04-vendor"; import { VendorItemAsProp } from "./04-vendor-item"; import { FinancialDocItemAsProp } from "./06-fin-doc-item"; export declare type OrderProps = { _type_: "order"; type: "dc" | "wnf"; addr: LocStr; reservation: Record; customer: UserAcctAsProp[t]; vendor: VendorAsProp[t]; items: VendorItemAsProp[t]; bags: (string | number)[]; tickets: string[]; mileage: number; rates: OrderRates; disc: number; tip: number; amt: OrderBreakdown; pmt: FinancialDocItemAsProp[t]; req: ServiceRequestAsProp[t]; score: number; published: Date; itemCt: number; }; export declare type OrderConfigKeys = "customer" | "bags" | "req" | "type" | "addr" | "reservation"; export declare type OrderConfigOptKeys = "vendor" | "items" | "score" | "rates" | "bags" | "tickets" | "mileage" | "pmt" | "disc" | "tip"; export declare type OrderInstanceKeys = OrderConfigKeys | OrderConfigOptKeys | "amt"; export declare type OrderJsonKeys = OrderInstanceKeys | "_type_" | "published" | "itemCt"; export declare type OrderPreviewKeys = "customer" | "bags" | "tickets" | "itemCt" | "published" | "amt" | "req"; export declare type OrderSelfRefs = {}; export declare type OrderMethods = { getAmt: () => OrderBreakdown; }; export declare type OrderPropKeys = Keys>; export declare type OrderPropSelector = undefined, j extends OrderPropKeys = undefined> = PropSelector, k, j>; export declare type OrderSignature = ModelSignature, OrderPropSelector<"I", OrderInstanceKeys> & OrderMethods, OrderPropSelector<"J", OrderJsonKeys>, OrderPropSelector<"J", OrderPreviewKeys>, DocStatuses, OrderSelfRefs>; export declare type Order = Model; export declare type OrderAsProp = ModelBaseTypeSig, Extends<[IsArr], [true | 1], Order["instance"][], Order["instance"]>, Extends<[IsArr], [true | 1], Order["preview"][], Order["preview"]>>; export declare type OrderRates = Record<"starchRate" | "transitRate" | "serviceRate" | "taxRate", number>; export declare type OrderBreakdown = Record<"starch" | "laundry" | "service" | "transit" | "tax" | "tip" | "disc" | "total", number>;