import { IInventoryDetailsQuery, IInvetoryItemDetailsTable, } from '@/interfaces'; import { Inject, Service } from 'typedi'; import { InventoryDetailsExportInjectable } from './InventoryDetailsExportInjectable'; import { InventoryDetailsTableInjectable } from './InventoryDetailsTableInjectable'; import { InventoryDetailsService } from './InventoryDetailsService'; @Service() export class InventortyDetailsApplication { @Inject() private inventoryDetailsExport: InventoryDetailsExportInjectable; @Inject() private inventoryDetailsTable: InventoryDetailsTableInjectable; @Inject() private inventoryDetails: InventoryDetailsService; /** * Retrieves the inventory details report in sheet format. * @param {number} tenantId * @param {IInventoryDetailsQuery} query * @returns {Promise} */ public sheet(tenantId: number, query: IInventoryDetailsQuery) { return this.inventoryDetails.inventoryDetails(tenantId, query); } /** * Retrieve the inventory details report in table format. * @param {number} tenantId * @param {IInventoryDetailsQuery} query * @returns */ public table( tenantId: number, query: IInventoryDetailsQuery ): Promise { return this.inventoryDetailsTable.table(tenantId, query); } /** * Retrieves the inventory details report in XLSX format. * @param {number} tenantId * @param {IInventoryDetailsQuery} query * @returns {Promise} */ public xlsx( tenantId: number, query: IInventoryDetailsQuery ): Promise { return this.inventoryDetailsExport.xlsx(tenantId, query); } /** * Retrieves the inventory details report in CSV format. * @param {number} tenantId * @param {IInventoryDetailsQuery} query * @returns {Promise} */ public csv(tenantId: number, query: IInventoryDetailsQuery): Promise { return this.inventoryDetailsExport.csv(tenantId, query); } }