import OBACore from "@onebro/oba-core"; import { UserAcctFactory } from "./01-user-acct"; import { UserProfileFactory } from "./01-user-profile"; import { VendorFactory } from "./04-vendor"; import { UploadFactory } from "./02-upload"; import { ServiceRequestFactory } from "./03-service-req"; import { PostFactory } from "./05-post"; import { OrderFactory } from "./04-order"; import { VendorItemFactory } from "./04-vendor-item"; import { FinancialDocFactory } from "./06-fin-doc"; import { FinancialDocItemFactory } from "./06-fin-doc-item"; export interface ModelFactories { users:UserAcctFactory; profiles:UserProfileFactory; uploads:UploadFactory; serviceReqs:ServiceRequestFactory; orders:OrderFactory; vendors:VendorFactory; vendorItems:VendorItemFactory; finDocs:FinancialDocFactory; finDocItems:FinancialDocItemFactory; posts:PostFactory; init:(api:OBACore) => Promise; } export class ModelFactories { init = async (api:OBACore) => { this.users = await new UserAcctFactory(api).init(); this.profiles = await new UserProfileFactory(api).init(); this.uploads = await new UploadFactory(api).init(); this.serviceReqs = await new ServiceRequestFactory(api).init(); this.orders = await new OrderFactory(api).init(); this.vendors = await new VendorFactory(api).init(); this.vendorItems = await new VendorItemFactory(api).init(); this.finDocs = await new FinancialDocFactory(api).init(); this.finDocItems = await new FinancialDocItemFactory(api).init(); this.posts = await new PostFactory(api).init(); return this as ModelFactories; } } export * from "./01-user-acct"; export * from "./01-user-profile"; export * from "./04-vendor"; export * from "./02-upload"; export * from "./03-service-req"; export * from "./05-post"; export * from "./04-order"; export * from "./04-vendor-item"; export * from "./06-fin-doc"; export * from "./06-fin-doc-item";