UNPKG

@accounter/server

Version:
35 lines (34 loc) 2.04 kB
import DataLoader from 'dataloader'; import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js'; import { AuthContextProvider } from '../../auth/providers/auth-context.provider.js'; import { BusinessesProvider } from '../../financial-entities/providers/businesses.provider.js'; import type { IGetAllOpenContractsResult, IInsertContractParams, IUpdateContractParams } from '../types.js'; /** Caller-facing filters for {@link ContractsProvider.getContractsByFilters}. */ export type ContractsFiltersParams = { ownerIds?: readonly string[] | null; clientIds?: readonly string[] | null; contractIds?: readonly string[] | null; isActive?: boolean | null; }; export declare class ContractsProvider { private db; private businessesProvider; private authContextProvider; private businessIdCache; constructor(db: TenantAwareDBClient, businessesProvider: BusinessesProvider, authContextProvider: AuthContextProvider); private getBusinessId; private allOpenContractsCache; getAllOpenContracts(): Promise<IGetAllOpenContractsResult[]>; private contractsByIds; getContractsByIdLoader: DataLoader<string, import("../types.js").IGetContractsByIdsResult | undefined, string>; private contractsByAdminBusinessIds; getContractsByAdminBusinessIdLoader: DataLoader<string, import("../types.js").IGetContractsByAdminBusinessIdsResult[], string>; private contractsByClients; getContractsByClientIdLoader: DataLoader<string, import("../types.js").IGetContractsByClientIdsResult[], string>; getContractsByFilters(params: ContractsFiltersParams): Promise<import("../types.js").IGetContractsByFiltersResult[]>; createContract(params: IInsertContractParams): Promise<import("../types.js").IInsertContractResult>; updateContract(params: IUpdateContractParams): Promise<import("../types.js").IUpdateContractResult>; deleteContract(contractId: string): Promise<boolean>; invalidateCacheForContract(contractId: string): Promise<void>; clearCache(): void; }