import { BaseApiService } from '@/services/api/base'; import { BaseApiResponse } from '@/types/api/api-general'; import { LogisticPurchasePerSupplierReport } from '@/types/api/report/logistic-stock'; const baseLogisticApi = new BaseApiService< LogisticPurchasePerSupplierReport, unknown, unknown >('/reports'); export class LogisticApi extends BaseApiService< LogisticPurchasePerSupplierReport, unknown, unknown > { constructor(basePath: string = '') { super(basePath); } async getLogisticStockReport( area_id?: number, supplier_id?: number, product_id?: number, received_date?: string, po_date?: string, start_date?: string, end_date?: string ): Promise | undefined> { return await this.customRequest< BaseApiResponse >(`purchase-supplier`, { method: 'GET', params: { area_id: area_id, supplier_id: supplier_id, product_id: product_id, received_date: received_date, po_date: po_date, start_date: start_date, end_date: end_date, }, }); } } export const LogisticService = { basePath: baseLogisticApi.basePath, header: baseLogisticApi.header, getAllFetcher: baseLogisticApi.getAllFetcher.bind(baseLogisticApi), getSingle: baseLogisticApi.getSingle.bind(baseLogisticApi), create: baseLogisticApi.create.bind(baseLogisticApi), update: baseLogisticApi.update.bind(baseLogisticApi), delete: baseLogisticApi.delete.bind(baseLogisticApi), customRequest: baseLogisticApi.customRequest.bind(baseLogisticApi), // Custom method for specific endpoint getLogisticStockReport: ( area_id?: number, supplier_id?: number, product_id?: number, received_date?: string, po_date?: string, start_date?: string, end_date?: string ) => new LogisticApi().getLogisticStockReport( area_id, supplier_id, product_id, received_date, po_date, start_date, end_date ), };