import type { BusinessPartnerQueries, ItemManagementQueries, OrganizationQueries } from "../module"; export type Company = NonNullable< Awaited>["value"]["company"] >; export type CustomerAccountReference = NonNullable< Awaited>["value"]["account"] >; export type Item = NonNullable< Awaited>["value"]["item"] >; export const mockOrgQueries = ( company: Company | null, ): Pick => ({ getCompany: () => Promise.resolve({ ok: true as const, value: { company } }), }); export const mockBPQueries = ( account: CustomerAccountReference | null, ): Pick => ({ getCustomerAccount: () => Promise.resolve({ ok: true as const, value: { account } }), }); // Item & Record: requires a full Item row but permits off-model extras // (companyId) that the command reads defensively. export const mockItemQueries = ( items: (Item & Record)[], ): Pick => ({ getItem: (_db, input) => Promise.resolve({ ok: true as const, value: { item: "id" in input ? (items.find((item) => item.id === input.id) ?? null) : null }, }), });