erp-pos-ecommerce-shared 0.2.18 → 0.2.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { AxiosInstance } from 'axios';
2
2
  import { I as IAttribute, d as IAttributeValue, c as IAttributeResponse, a as IAttributeFilter, g as ICategory, i as ICategoryResponse, l as IProduct, m as IProductDetails, n as IProductDetailsResponse, k as IFilterType, o as IProductResponse } from './filters.interface-BwMi9FRP.js';
3
- export { C as ChangeProductRequest, a as ChangeProductResponse, G as GetReturnsByOrderIdResponse, I as IExchange, b as IExchangeResponse, c as IUpdatePermission, L as LocationResponse, d as LoginResponse, M as MaterialResponse, P as PaymentType, e as PrintQRResponse, Q as QRBaseUrlResponse, R as Response, S as StateResponse, U as UpdateBatchData, W as WarehouseResponse, f as changeOrderProduct, g as closeShift, h as createBatch, i as createBatchAndUpdateOtherBatches, j as createExchangeRate, k as createLocation, l as createMaterial, m as createReturn, n as createWareHouse, o as deleteLocation, p as deleteMaterial, q as deleteWarehouse, r as getAllLocations, s as getAllMaterials, t as getAllPermissions, u as getAllStates, v as getBatches, w as getBatchesForSelect, x as getExchangeRate, y as getExchangeRates, z as getLocationById, A as getLocations, B as getLocationsForSelect, D as getMatchedBatches, E as getMaterialById, F as getMaterials, H as getMaterialsForSelect, J as getOrderById, K as getOrders, N as getOrdersStatusForSelect, O as getPaymentTypes, T as getPermissionRoleByRoleID, V as getQRBaseUrl, X as getReturnsByOrderId, Y as getWarehouseById, Z as getWarehouses, _ as getWarehousesForSelect, $ as login, a0 as makeNewCashMovement, a1 as printQR, a2 as restoreLocation, a3 as restoreWarehouse, a4 as setNewShift, a5 as undeleteMaterial, a6 as updateBatch, a7 as updateLocation, a8 as updateMaterial, a9 as updatePermission, aa as updateWarehouse } from './warehouse.service-C51KYjQB.js';
3
+ export { C as ChangeProductRequest, a as ChangeProductResponse, G as GetReturnsByOrderIdResponse, I as IExchange, b as IExchangeResponse, c as IUpdatePermission, L as LocationResponse, d as LoginResponse, M as MaterialResponse, P as PaymentType, e as PrintQRResponse, Q as QRBaseUrlResponse, R as Response, S as StateResponse, U as UpdateBatchData, W as WarehouseResponse, f as changeOrderProduct, g as closeShift, h as createBatch, i as createBatchAndUpdateOtherBatches, j as createExchangeRate, k as createLocation, l as createMaterial, m as createReturn, n as createWareHouse, o as deleteLocation, p as deleteMaterial, q as deleteWarehouse, r as getAllLocations, s as getAllMaterials, t as getAllPermissions, u as getAllStates, v as getBatchById, w as getBatches, x as getBatchesForSelect, y as getExchangeRate, z as getExchangeRates, A as getLocationById, B as getLocations, D as getLocationsForSelect, E as getMatchedBatches, F as getMaterialById, H as getMaterials, J as getMaterialsForSelect, K as getOrderById, N as getOrders, O as getOrdersStatusForSelect, T as getPaymentTypes, V as getPermissionRoleByRoleID, X as getQRBaseUrl, Y as getReturnsByOrderId, Z as getWarehouseById, _ as getWarehouses, $ as getWarehousesForSelect, a0 as login, a1 as makeNewCashMovement, a2 as printQR, a3 as restoreLocation, a4 as restoreWarehouse, a5 as setNewShift, a6 as undeleteMaterial, a7 as updateBatch, a8 as updateLocation, a9 as updateMaterial, aa as updatePermission, ab as updateWarehouse } from './warehouse.service-CV2UDqAD.js';
4
4
  import { e as IBankTerminalForm, d as IBankTerminal, a as BankTerminalResponse, B as BankTerminalQuery, g as IBankTerminalResponse, j as IClientRequest, k as IClientResponse, l as IClientResponseById, h as IClient, m as IGender, r as IModule, x as IPaymentMethod, y as IPaymentMethodAmountExpected, w as IPayment, ab as PricePerGramResponse, az as UpdatePriceRequest, E as IPricePerGramHistory, ag as SchedulePriceRequest, C as CalculatePriceRequest, a9 as PriceCalculationResponse, F as IPriceType, G as IPriceTypeResponse, Y as ITag, H as IPromotion, J as IPromotionResponse, K as IPromotionType, N as IProviderRequest, O as IProviderResponse, L as IProvider, M as IProviderForSelect, Q as IReportInventory, c as ComparisonBy, P as IReportComparisonByTimeFrame, R as IReportX, S as IReportZ, V as IStockByWarehouseReport, U as IRole, W as IStockMovement, X as IStockMovementResponse, Z as ITax, a0 as IUserForm, A as AgentResponse, $ as IUser, aA as UserResponse } from './warehouse.interface-S5seQY-_.js';
5
5
  import { I as IRequest } from './util.interface-AOzOjHR0.js';
6
6
 
package/dist/services.js CHANGED
@@ -249,6 +249,10 @@ var createBatchAndUpdateOtherBatches = async (batch) => {
249
249
  const { data } = await api.post("batch/create-batch-and-update-other-batches", batch);
250
250
  return data;
251
251
  };
252
+ var getBatchById = async (batchId) => {
253
+ const { data } = await api.get(`batch/${batchId}`);
254
+ return data;
255
+ };
252
256
  var getMatchedBatches = async ({
253
257
  productDetailId
254
258
  }) => {
@@ -1320,6 +1324,6 @@ var restoreWarehouse = async ({
1320
1324
  await api.patch(`/warehouse/${warehouseId}`);
1321
1325
  };
1322
1326
 
1323
- export { api, changeOrderProduct, checkPendingReportZ, closeShift, configureApi, createAttribute, createAttributeValue, createAttributesForCategory, createAttributesValuesBatch, createBankTerminal, createBatch, createBatchAndUpdateOtherBatches, createCategory, createClient, createExchangeRate, createLocation, createMaterial, createMovement, createPriceType, createProduct, createProductVariant, createProductVariants, createPromotion, createProvider, createReturn, createRole, createUser, createWareHouse, deleteAttribute, deleteBankTerminal, deleteCategory, deleteClient, deleteImageFromProduct, deleteLocation, deleteMaterial, deletePriceType, deleteProduct, deleteProductVariant, deleteProvider, deleteRole, deleteUser, deleteWarehouse, getAllAgents, getAllBankTerminals, getAllCategories, getAllClients, getAllGenders, getAllLocations, getAllMaterials, getAllModules, getAllPermissions, getAllPriceTypes, getAllProviders, getAllStates, getAllTags, getAttributeById, getAttributeValues, getAttributes, getAttributesByCategoryID, getAttributesByProductID, getAttributesForSelect, getAttributesTable, getBankTerminalById, getBankTerminals, getBankTerminalsForSelect, getBatches, getBatchesForSelect, getCategories, getCategoriesForSelect, getCategoryById, getClientById, getClientsForSelect, getExchangeRate, getExchangeRates, getLocationById, getLocations, getLocationsForSelect, getMatchedBatches, getMaterialById, getMaterials, getMaterialsForSelect, getMovements, getOrderById, getOrders, getOrdersStatusForSelect, getPaymentMethods, getPaymentMethodsWithAmountExpected, getPaymentTypes, getPermissionRoleByRoleID, getPriceTypeById, getPriceTypesForSelect, getProductById, getProductVariantById, getProductVariants, getProductVariantsForSelect, getProducts, getProductsByCategory, getProductsForSelect, getProductsTable, getPromotionById, getPromotions, getPromotionsTypeForSelect, getProviderById, getProvidersForSelect, getQRBaseUrl, getReportByInventory, getReportComparisonByTimeFrame, getReportX, getReportZ, getReturnsByOrderId, getRoleByID, getRoles, getSellersOfDayForSelect, getSellersWithShift, getStockByWarehouseReport, getTaxesForSelect, getUserById, getUsers, getWarehouseById, getWarehouses, getWarehousesForSelect, healthService, isAValidDiscountCode, login, makeNewCashMovement, pricePerGramService, printProductTag, printQR, printReportX, printReportZ, restoreBankTerminal, restoreCategory, restoreClient, restoreLocation, restoreProduct, restoreProductVariant, restoreProvider, restoreUser, restoreWarehouse, sendCreditPaymentData, sendPaymentData, setNewShift, undeleteAttribute, undeleteMaterial, undeletePriceType, updateAttribute, updateAttributesForCategory, updateBankTerminal, updateBatch, updateCategory, updateClient, updateLocation, updateMaterial, updatePermission, updatePriceType, updateProduct, updateProductVariant, updatePromotion, updateProvider, updateRole, updateUser, updateWarehouse };
1327
+ export { api, changeOrderProduct, checkPendingReportZ, closeShift, configureApi, createAttribute, createAttributeValue, createAttributesForCategory, createAttributesValuesBatch, createBankTerminal, createBatch, createBatchAndUpdateOtherBatches, createCategory, createClient, createExchangeRate, createLocation, createMaterial, createMovement, createPriceType, createProduct, createProductVariant, createProductVariants, createPromotion, createProvider, createReturn, createRole, createUser, createWareHouse, deleteAttribute, deleteBankTerminal, deleteCategory, deleteClient, deleteImageFromProduct, deleteLocation, deleteMaterial, deletePriceType, deleteProduct, deleteProductVariant, deleteProvider, deleteRole, deleteUser, deleteWarehouse, getAllAgents, getAllBankTerminals, getAllCategories, getAllClients, getAllGenders, getAllLocations, getAllMaterials, getAllModules, getAllPermissions, getAllPriceTypes, getAllProviders, getAllStates, getAllTags, getAttributeById, getAttributeValues, getAttributes, getAttributesByCategoryID, getAttributesByProductID, getAttributesForSelect, getAttributesTable, getBankTerminalById, getBankTerminals, getBankTerminalsForSelect, getBatchById, getBatches, getBatchesForSelect, getCategories, getCategoriesForSelect, getCategoryById, getClientById, getClientsForSelect, getExchangeRate, getExchangeRates, getLocationById, getLocations, getLocationsForSelect, getMatchedBatches, getMaterialById, getMaterials, getMaterialsForSelect, getMovements, getOrderById, getOrders, getOrdersStatusForSelect, getPaymentMethods, getPaymentMethodsWithAmountExpected, getPaymentTypes, getPermissionRoleByRoleID, getPriceTypeById, getPriceTypesForSelect, getProductById, getProductVariantById, getProductVariants, getProductVariantsForSelect, getProducts, getProductsByCategory, getProductsForSelect, getProductsTable, getPromotionById, getPromotions, getPromotionsTypeForSelect, getProviderById, getProvidersForSelect, getQRBaseUrl, getReportByInventory, getReportComparisonByTimeFrame, getReportX, getReportZ, getReturnsByOrderId, getRoleByID, getRoles, getSellersOfDayForSelect, getSellersWithShift, getStockByWarehouseReport, getTaxesForSelect, getUserById, getUsers, getWarehouseById, getWarehouses, getWarehousesForSelect, healthService, isAValidDiscountCode, login, makeNewCashMovement, pricePerGramService, printProductTag, printQR, printReportX, printReportZ, restoreBankTerminal, restoreCategory, restoreClient, restoreLocation, restoreProduct, restoreProductVariant, restoreProvider, restoreUser, restoreWarehouse, sendCreditPaymentData, sendPaymentData, setNewShift, undeleteAttribute, undeleteMaterial, undeletePriceType, updateAttribute, updateAttributesForCategory, updateBankTerminal, updateBatch, updateCategory, updateClient, updateLocation, updateMaterial, updatePermission, updatePriceType, updateProduct, updateProductVariant, updatePromotion, updateProvider, updateRole, updateUser, updateWarehouse };
1324
1328
  //# sourceMappingURL=services.js.map
1325
1329
  //# sourceMappingURL=services.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/services/config.ts","../src/services/attributes.service.ts","../src/services/auth.service.ts","../src/services/bankTerminal.service.ts","../src/services/batch.service.ts","../src/services/category.service.ts","../src/services/client.service.ts","../src/services/exchange.service.ts","../src/services/gender.service.ts","../src/services/health.service.ts","../src/services/location.service.ts","../src/services/material.service.ts","../src/services/module.service.ts","../src/services/order.service.ts","../src/services/payment.service.ts","../src/services/permission.service.ts","../src/services/pricePerGram.service.ts","../src/services/priceType.service.ts","../src/services/product.service.ts","../src/services/productTags.service.ts","../src/services/promotion.service.ts","../src/services/provider.service.ts","../src/services/qr.service.ts","../src/services/report.service.ts","../src/services/return.service.ts","../src/services/role.service.ts","../src/services/stockmovement.service.ts","../src/services/shift.service.ts","../src/services/state.service.ts","../src/services/tax.service.ts","../src/services/user.service.ts","../src/services/warehouse.service.ts"],"names":[],"mappings":"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","file":"services.js","sourcesContent":["import axios, { type AxiosInstance } from 'axios'\n\n/**\n * Configuration for the shared API client.\n * Each consuming app must call configureApi() with its own baseURL and auth.\n */\nexport interface IApiConfig {\n /** Backend base URL (e.g. \"http://localhost:4000/\" or \"https://api.myapp.com/\") */\n baseURL: string\n /** Returns the current auth token for request headers */\n getToken: () => string | undefined\n /** Called when a new token is received after refresh (e.g. update your store) */\n onTokenRefresh?: (newToken: string) => void\n /** Called when refresh fails (e.g. clear session, redirect to login) */\n onUnauthorized?: () => void\n}\n\n// Default instance; replaced when configureApi() is called by the consuming app\nlet api: AxiosInstance = axios.create({\n baseURL: '',\n headers: { 'Content-Type': 'application/json' }\n})\n\n/**\n * Configure the shared API client. Must be called by the consuming app before using any service.\n * @example\n * // In your app (e.g. main.tsx or before first API call):\n * import { configureApi } from 'erp-pos-ecommerce-shared'\n * import { useAuthStore } from './store/authStore'\n *\n * configureApi({\n * baseURL: import.meta.env.VITE_API_URL ?? 'http://localhost:4000/',\n * getToken: () => useAuthStore.getState().token,\n * onTokenRefresh: (newToken) => useAuthStore.setState({ token: newToken }),\n * onUnauthorized: () => { useAuthStore.setState({ token: undefined }); redirectToLogin() }\n * })\n */\nexport function configureApi(config: IApiConfig): AxiosInstance {\n const { baseURL, getToken, onTokenRefresh, onUnauthorized } = config\n\n const newApi = axios.create({\n baseURL,\n headers: {\n 'Content-Type': 'application/json',\n ...(getToken() && { Authorization: `Bearer ${getToken()}` })\n }\n })\n\n newApi.interceptors.request.use((reqConfig) => {\n const token = getToken()\n if (token) {\n reqConfig.headers.Authorization = `Bearer ${token}`\n }\n return reqConfig\n })\n\n const refreshAxios = axios.create({ baseURL })\n\n newApi.interceptors.response.use(\n (response) => response,\n async (error) => {\n const originalRequest = error.config\n\n if (error.response?.status === 401 && !originalRequest._retry && onTokenRefresh && onUnauthorized) {\n originalRequest._retry = true\n\n try {\n const response = await refreshAxios.get('/auth/refresh', {\n headers: getToken() ? { Authorization: `Bearer ${getToken()}` } : {}\n })\n const newToken = response.data?.token\n if (newToken) {\n onTokenRefresh(newToken)\n originalRequest.headers.Authorization = `Bearer ${newToken}`\n return newApi(originalRequest)\n }\n } catch {\n onUnauthorized()\n return Promise.reject(error)\n }\n }\n\n return Promise.reject(error)\n }\n )\n\n api = newApi\n return api\n}\n\n/**\n * Shared axios instance used by all services.\n * Valid only after the consuming app has called configureApi().\n */\nexport { api }\n","import type {\n IAttribute,\n IAttributeFilter,\n IAttributeResponse,\n IAttributeValue\n} from '../interfaces/attribute.interface'\nimport { api } from './config'\n\nexport const getAttributes = async ({\n skip,\n limit,\n query\n}: {\n skip: number\n limit: number\n query: string\n}): Promise<IAttributeResponse> => {\n const { data } = await api.get('/attribute/category', { params: { skip, limit, query } })\n return data\n}\n\nexport const getAttributesForSelect = async (): Promise<IAttribute[]> => {\n const { data } = await api.get('/attribute/select')\n return data\n}\n\nexport const getAttributesTable = async ({\n skip,\n limit,\n filters\n}: {\n skip?: number\n limit?: number\n filters?: IAttributeFilter\n}): Promise<IAttributeResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip?.toString() ?? \"\",\n limit: limit?.toString() ?? \"\",\n ...(filters?.query && { query: filters.query }),\n ...(filters?.categoryId && { categoryId: filters.categoryId.toString() }),\n ...(filters?.productId && { productId: filters.productId.toString() }),\n ...(filters?.materialId && { materialId: filters.materialId.toString() }),\n })\n const { data } = await api.get(`/attribute?${queryParams}`)\n return data\n}\n\nexport const getAttributeById = async ({\n attributeId\n}: {\n attributeId: string\n}): Promise<IAttribute> => {\n const { data } = await api.get(`/attribute/${attributeId}`)\n return data\n}\n\nexport const getAttributesByProductID = async ({\n productId\n}: {\n productId: string\n}): Promise<IAttribute[]> => {\n const { data } = await api.get(`/attribute/${productId}/product`)\n return data\n}\n\nexport const getAttributesByCategoryID = async ({\n categoryID\n}: {\n categoryID: string\n}): Promise<IAttribute[]> => {\n const { data } = await api.get(`/attribute/${categoryID}/category/`)\n return data\n}\n\nexport const getAttributeValues = async ({\n attributeId\n}: {\n attributeId: string\n}): Promise<IAttributeValue[]> => {\n const { data } = await api.get(`/attribute/${attributeId}/values`)\n return data\n}\n\nexport const createAttribute = async ({\n attribute\n}: {\n attribute: {\n name: string\n values: string[]\n productId: number\n }\n}): Promise<IAttribute> => {\n const { data } = await api.post('/attribute', {\n name: attribute.name,\n values: attribute.values,\n productID: attribute.productId,\n })\n return data\n}\n\nexport const createAttributesValuesBatch = async ({\n productId,\n attributeValues,\n}: {\n productId: number;\n attributeValues: {\n attribute: string;\n values: string[];\n }[];\n}): Promise<IAttributeValue[]> => {\n const { data } = await api.post(`/attribute/batch`, {\n productId,\n attributeValues,\n });\n return data;\n};\n\nexport const createAttributesForCategory = async ({\n attributes\n}: {\n attributes: {\n categoryId: string\n attributes: {\n name: string\n values: string[]\n pricePerGram?: number | null\n }[]\n }\n}): Promise<IAttribute> => {\n const { data } = await api.post(`/attribute/category/`, {\n categoryID: attributes.categoryId,\n attributes: attributes.attributes\n })\n return data\n}\n\nexport const updateAttribute = async ({\n attributeId,\n attribute\n}: {\n attributeId: string\n attribute: IAttribute\n}): Promise<IAttribute> => {\n const { data } = await api.put(`/attribute/${attributeId}`, attribute)\n return data\n}\n\nexport const updateAttributesForCategory = async ({\n categoryId,\n attributes\n}: {\n categoryId: string\n attributes: {\n attributes: string[]\n }\n}): Promise<IAttribute> => {\n const { data } = await api.put(`/attribute/category/${categoryId}`, attributes)\n return data\n}\n\nexport const deleteAttribute = async ({\n attributeId\n}: {\n attributeId: string\n}): Promise<IAttribute> => {\n const { data } = await api.delete(`/attribute/${attributeId}`)\n return data\n}\n\nexport const undeleteAttribute = async ({\n attributeId\n}: {\n attributeId: string\n}): Promise<IAttribute> => {\n const { data } = await api.patch(`/attribute/${attributeId}`)\n return data\n}\n\n//create attribute value\nexport const createAttributeValue = async ({\n attributeId,\n value\n}: {\n attributeId: number\n value: string\n}): Promise<IAttributeValue> => {\n const { data } = await api.post(`/attribute/${attributeId}/values`, {\n attributeID: attributeId,\n value\n })\n return data\n}\n","import type { IUser } from '../interfaces/user.interface'\nimport { api } from './config'\n\nexport interface LoginResponse {\n user: IUser\n token: string\n}\n\nexport const login = async ({\n email,\n password\n}: {\n email: string\n password: string\n}): Promise<LoginResponse> => {\n const { data } = await api.post<LoginResponse>('auth/login', { email, password })\n return data\n}\n","import type {\n IBankTerminal,\n IBankTerminalResponse,\n IBankTerminalForm,\n BankTerminalQuery,\n BankTerminalResponse\n} from '../interfaces/bankTerminal.interface'\nimport { api } from './config'\n\nexport const getBankTerminalsForSelect = async (): Promise<BankTerminalResponse[]> => {\n const { data } = await api.get<BankTerminalResponse[]>('bank-terminals/bankTerminalsSelect')\n return data\n}\n\nexport const getAllBankTerminals = async (): Promise<BankTerminalResponse[]> => {\n const { data } = await api.get<BankTerminalResponse[]>('bank-terminals/')\n return data\n}\n\nexport const getBankTerminals = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: BankTerminalQuery): Promise<IBankTerminalResponse> => {\n const { data } = await api.get<IBankTerminalResponse>(\n `bank-terminals/bankTerminalsTable/?skip=${skip}&limit=${limit}&query=${query}`\n )\n\n return data\n}\n\nexport const getBankTerminalById = async ({\n terminalId\n}: {\n terminalId: number\n}): Promise<IBankTerminal> => {\n const { data } = await api.get(`/bank-terminals/${terminalId}`)\n return data.data\n}\n\nexport const updateBankTerminal = async ({\n terminalId,\n terminal\n}: {\n terminalId: number\n terminal: IBankTerminalForm\n}): Promise<IBankTerminal> => {\n const { data } = await api.put<IBankTerminal>(`/bank-terminals/${terminalId}`, terminal)\n return data\n}\n\nexport const createBankTerminal = async ({\n terminal\n}: {\n terminal: IBankTerminalForm\n}): Promise<IBankTerminal> => {\n const { data } = await api.post<IBankTerminal>('bank-terminals/', terminal)\n return data\n}\n\nexport const deleteBankTerminal = async ({ terminalId }: { terminalId: number }): Promise<void> => {\n await api.delete(`/bank-terminals/${terminalId}`)\n}\n\nexport const restoreBankTerminal = async ({\n terminalId\n}: {\n terminalId: number\n}): Promise<void> => {\n await api.patch(`/bank-terminals/${terminalId}`)\n}\n","import type { IBatch, IBatchResponse } from '../interfaces/batch.interface'\nimport { api } from './config'\n\ninterface BatchQuery {\n skip?: number\n limit?: number\n query?: string\n productId?: number\n}\n\nexport const getBatchesForSelect = async (): Promise<IBatch[]> => {\n const { data } = await api.get<IBatch[]>('batch/batches-for-select')\n return data\n}\n\nexport const getBatches = async ({\n skip = 0,\n limit = 10,\n query = '',\n productId = 0\n}: BatchQuery): Promise<IBatchResponse> => {\n const { data } = await api.get<IBatchResponse>(\n `batch?skip=${skip}&limit=${limit}&query=${query}&productID=${productId}`\n )\n return data\n}\n\nexport const createBatch = async (batch: FormData): Promise<IBatch> => {\n const { data } = await api.post<IBatch>('batch/', batch)\n return data\n}\n\nexport const createBatchAndUpdateOtherBatches = async (batch: FormData): Promise<IBatch> => {\n const { data } = await api.post<IBatch>('batch/create-batch-and-update-other-batches', batch)\n return data\n}\n\nexport const getMatchedBatches = async ({\n productDetailId\n}: {\n productDetailId: number\n}): Promise<IBatch[]> => {\n const { data } = await api.get<IBatch[]>(\n `batch/matched-batches?productDetailID=${productDetailId}`\n )\n return data\n}\n\nexport interface UpdateBatchData {\n unitCost?: number\n unitSellingPrice?: number\n profitPercentage?: number\n}\n\nexport const updateBatch = async ({\n batchId,\n batchData\n}: {\n batchId: number\n batchData: UpdateBatchData\n}): Promise<IBatch> => {\n const { data } = await api.put<IBatch>(`batch/${batchId}`, batchData)\n return data\n}\n","import type {\n ICategory,\n ICategoryResponse,\n} from '../interfaces/category.interface'\nimport { api } from './config'\n\ninterface CategoryQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport const getCategoriesForSelect = async (): Promise<ICategory[]> => {\n const { data } = await api.get<ICategory[]>('category/categoriesSelect')\n return data\n}\n\nexport const getAllCategories = async (): Promise<ICategory[]> => {\n const { data } = await api.get<ICategory[]>('category/')\n return data\n}\n\nexport const getCategories = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: CategoryQuery): Promise<ICategoryResponse> => {\n const { data } = await api.get<ICategoryResponse>(\n `category/categoriesTable?skip=${skip}&limit=${limit}&query=${query}`\n )\n\n return data\n}\n\nexport const getCategoryById = async ({\n categoryId\n}: {\n categoryId: number\n}): Promise<ICategory> => {\n const { data } = await api.get(`/category/${categoryId}`)\n return data.data\n}\n\nexport const updateCategory = async ({\n categoryId,\n category\n}: {\n categoryId: number\n category: ICategory\n}): Promise<ICategory> => {\n const { data } = await api.put<ICategory>(`/category/${categoryId}`, category)\n return data\n}\n\nexport const createCategory = async ({ category }: { category: ICategory }): Promise<ICategory> => {\n const { data } = await api.post<ICategory>('category/', category)\n return data\n}\n\nexport const deleteCategory = async ({ categoryId }: { categoryId: number }): Promise<void> => {\n await api.delete(`/category/${categoryId}`)\n}\n\nexport const restoreCategory = async ({ categoryId }: { categoryId: number }): Promise<void> => {\n await api.patch(`/category/${categoryId}`)\n}\n","import type {\n IClient,\n IClientRequest,\n IClientResponse,\n IClientResponseById\n} from '../interfaces/client.interface'\nimport { api } from './config'\n\nexport const getAllClients = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: {\n skip: number\n limit: number\n query?: string\n}): Promise<IClientResponse> => {\n const { data } = await api.get<IClientResponse>(\n `client/?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getClientsForSelect = async (): Promise<IClient[]> => {\n const { data } = await api.get<IClient[]>('client/select')\n return data\n}\n\nexport const getClientById = async ({\n clientId\n}: {\n clientId: number\n}): Promise<IClientResponseById> => {\n const { data } = await api.get<IClientResponseById>(`client/${clientId}`)\n return data\n}\n\nexport const createClient = async (client: IClientRequest): Promise<IClientResponse> => {\n const { data } = await api.post<IClientResponse>('client/', client)\n return data\n}\n\nexport const updateClient = async ({\n client,\n id\n}: {\n id: string\n client: IClient\n}): Promise<IClientResponse> => {\n const { data } = await api.put<IClientResponse>(`client/${id}`, client)\n return data\n}\n\nexport const deleteClient = async ({\n clientId\n}: {\n clientId: number\n}): Promise<IClientResponse> => {\n const { data } = await api.delete<IClientResponse>(`client/${clientId}`)\n return data\n}\n\nexport const restoreClient = async ({\n clientId\n}: {\n clientId: number\n}): Promise<IClientResponse> => {\n const { data } = await api.patch<IClientResponse>(`client/${clientId}`)\n return data\n}\n","import { api } from './config'\n\ninterface ExchangeQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport interface IExchange {\n exchangeRateID: number\n valorEnPesos: number\n fromDate: string\n toDate: string\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport interface PaymentType {\n value: number\n label: string\n}\n\nexport interface IExchangeResponse {\n total: number\n data: IExchange[]\n skip: number\n limit: number\n}\n\nexport const getPaymentTypes = async (): Promise<PaymentType[]> => {\n const { data } = await api.get<PaymentType[]>('exchange/getPaymentTypes')\n return data\n}\n\nexport const getExchangeRates = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: ExchangeQuery): Promise<IExchangeResponse> => {\n const { data } = await api.get<IExchangeResponse>(\n `exchange/exchangesTable?skip=${skip}&limit=${limit}&query=${query}`\n )\n\n return data\n}\n\n//obtener el exchange rate mediante fehca y hora\nexport const getExchangeRate = async (): Promise<IExchange> => {\n const { data } = await api.get<IExchange>('exchange/getExchangeRate')\n return data\n}\n\nexport const createExchangeRate = async ({\n exchangeRate\n}: {\n exchangeRate: IExchange\n}): Promise<IExchange> => {\n const { data } = await api.post<IExchange>('exchange/', exchangeRate)\n return data\n}\n","import type { IGender } from '../interfaces/gender.interface'\nimport { api } from './config'\n\ninterface GenderResponse {\n data: IGender[]\n}\n\nexport const getAllGenders = async (): Promise<GenderResponse> => {\n const { data } = await api.get('gender/')\n return data\n}\n","import { api } from './config'\n\ninterface HealthCheckResponse {\n status: string\n timestamp: string\n services: {\n backend: {\n status: string\n message?: string\n }\n database: {\n status: string\n message?: string\n }\n }\n}\n\nconst HEALTH_CHECK_TIMEOUT_MS = 10000\n\nexport const healthService = {\n async check(): Promise<HealthCheckResponse> {\n try {\n const response = await api.get<HealthCheckResponse>('/api/health', {\n timeout: HEALTH_CHECK_TIMEOUT_MS\n })\n return response.data\n } catch (error) {\n const isTimeoutError =\n error instanceof Error &&\n (error.message.includes('timeout') || error.message.includes('Network Error'))\n\n return {\n status: 'error',\n timestamp: new Date().toISOString(),\n services: {\n backend: {\n status: 'error',\n message: isTimeoutError\n ? 'No se pudo conectar con el backend. Verifica que el servidor esté corriendo y la URL configurada.'\n : error instanceof Error\n ? error.message\n : 'Error de conexión con el backend'\n },\n database: {\n status: 'unknown',\n message: 'No se puede verificar la base de datos porque el backend no responde'\n }\n }\n }\n }\n }\n}\n","import type { ILocation, ILocationResponse } from '../interfaces/location.interface'\nimport { api } from './config'\n\ninterface LocationQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport interface LocationResponse {\n physicalLocationID: number\n name: string\n addressID: number\n isOpen: boolean\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport const getAllLocations = async (): Promise<LocationResponse[]> => {\n const { data } = await api.get<LocationResponse[]>('location/')\n return data\n}\n\nexport const getLocationsForSelect = async (): Promise<LocationResponse[]> => {\n const { data } = await api.get<LocationResponse[]>('location/locationsForSelect')\n return data\n}\n\nexport const getLocations = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: LocationQuery): Promise<ILocationResponse> => {\n const { data } = await api.get<ILocationResponse>(\n `location/locations?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getLocationById = async ({\n locationId\n}: {\n locationId: number\n}): Promise<ILocation> => {\n const { data } = await api.get(`/location/${locationId}`)\n return data.data\n}\n\nexport const updateLocation = async ({\n locationId,\n location\n}: {\n locationId: number\n location: FormData\n}): Promise<ILocation> => {\n const { data } = await api.put<ILocation>(`/location/${locationId}`, location, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const createLocation = async (location: FormData): Promise<ILocation> => {\n const { data } = await api.post<ILocation>('location/', location, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const deleteLocation = async ({\n physicalLocationId\n}: {\n physicalLocationId: number\n}): Promise<void> => {\n await api.delete(`/location/${physicalLocationId}`)\n}\n\nexport const restoreLocation = async ({\n physicalLocationId\n}: {\n physicalLocationId: number\n}): Promise<void> => {\n await api.patch(`/location/${physicalLocationId}`)\n}\n","import type { IMaterial } from '../interfaces/material.interface'\nimport { api } from './config'\n\nexport interface MaterialResponse {\n data: IMaterial[]\n total: number\n skip: number\n limit: number\n}\n\ninterface MaterialQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport const getAllMaterials = async (): Promise<IMaterial[]> => {\n const { data } = await api.get<IMaterial[]>('material/')\n return data\n}\n\nexport const getMaterials = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: MaterialQuery): Promise<MaterialResponse> => {\n const { data } = await api.get<MaterialResponse>(\n `material/materialsTable?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getMaterialById = async ({\n materialId\n}: {\n materialId: number\n}): Promise<IMaterial> => {\n const { data } = await api.get(`material/${materialId}`)\n return data.data\n}\n\nexport const getMaterialsForSelect = async (): Promise<IMaterial[]> => {\n const { data } = await api.get<IMaterial[]>('material/select')\n return data\n}\n\nexport const createMaterial = async ({ material }: { material: IMaterial }): Promise<IMaterial> => {\n const { data } = await api.post<IMaterial>('material/', material)\n return data\n}\n\nexport const updateMaterial = async ({\n materialId,\n material\n}: {\n materialId: number\n material: IMaterial\n}): Promise<IMaterial> => {\n const { data } = await api.put<IMaterial>(`material/${materialId}`, material)\n return data\n}\n\nexport const deleteMaterial = async ({ materialId }: { materialId: number }): Promise<void> => {\n await api.delete(`material/${materialId}`)\n}\nexport const undeleteMaterial = async ({ materialId }: { materialId: number }): Promise<void> => {\n await api.patch(`material/${materialId}`)\n}\n","import type { IModule } from '../interfaces/module.interface'\nimport { api } from './config'\n\nexport const getAllModules = async (): Promise<IModule[]> => {\n const { data } = await api.get<IModule[]>('module/')\n return data\n}\n","import type { IOrder, IOrderResponse, TblOrderStatus } from '../interfaces/order.interface'\nimport { api } from './config'\n\nexport const getOrders = async ({\n skip = 0,\n limit = 10,\n query = '',\n commissionedBy = '',\n orderStatus = [],\n startDate = '',\n endDate = '',\n showOnlyReturns = false\n}: {\n skip?: number\n limit?: number\n query?: string\n commissionedBy?: string\n orderStatus?: string[]\n startDate?: string | null\n endDate?: string | null\n showOnlyReturns?: boolean\n}): Promise<IOrderResponse> => {\n const { data } = await api.get<IOrderResponse>('order', {\n params: { skip, limit, query, commissionedBy, orderStatus, startDate, endDate, showOnlyReturns }\n })\n return data\n}\n\nexport const getOrderById = async ({ orderId }: { orderId: number }): Promise<IOrder> => {\n const { data } = await api.get<IOrder>(`order/${orderId}`)\n return data\n}\n\nexport const getOrdersStatusForSelect = async (): Promise<TblOrderStatus[]> => {\n const { data } = await api.get<TblOrderStatus[]>('order/status')\n return data\n}\n\nexport interface ChangeProductRequest {\n orderID: number\n oldOrderDetailID: number\n newProductDetailID: number\n quantity: number\n reason?: string\n}\n\nexport interface ChangeProductResponse {\n success: boolean\n message: string\n priceDifference: number\n requiresAdditionalPayment: boolean\n requiresRefund: boolean\n order: IOrder\n}\n\nexport const changeOrderProduct = async (\n changeData: ChangeProductRequest\n): Promise<ChangeProductResponse> => {\n const { data } = await api.post<ChangeProductResponse>('order/change-product', changeData)\n return data\n}\n","import { api } from './config'\nimport type {\n IPayment,\n IPaymentMethod,\n IPaymentMethodAmountExpected\n} from '../interfaces/payment.interface'\n\nexport const sendPaymentData = async ({ payment }: { payment: IPayment }): Promise<IPayment> => {\n const { data } = await api.post<IPayment>(\n 'payment/applypayment',\n {\n ...payment\n },\n {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n return data\n}\n\n//metodo para llamar a la api y obtener los metodos de pago\nexport const getPaymentMethods = async (): Promise<IPaymentMethod[]> => {\n const { data } = await api.get('payment/getpaymentmethods')\n return data\n}\n\n//metodo para llamar a la api y obtener los metodos de pago\nexport const getPaymentMethodsWithAmountExpected = async (): Promise<\n IPaymentMethodAmountExpected[]\n> => {\n const { data } = await api.get('payment/getpaymentmethodswithamountexpected')\n return data\n}\n\nexport const sendCreditPaymentData = async ({\n payment,\n orderId\n}: {\n payment: IPayment\n orderId: number\n}): Promise<IPayment> => {\n const { data } = await api.post<IPayment>(\n 'payment/applycreditpayment',\n {\n ...payment,\n orderID: orderId\n },\n {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n return data\n}\n","import type { IPermissionRole, PermissionRole } from '../interfaces/permission.interface'\nimport { api } from './config'\n\nexport interface IUpdatePermission {\n id: number\n hasPermission: boolean\n}\n\nexport const getAllPermissions = async (): Promise<IPermissionRole> => {\n const response = await api.get<IPermissionRole>('/permission-role/')\n return response.data\n}\n\nexport const updatePermission = async (\n permission: IUpdatePermission\n): Promise<IUpdatePermission> => {\n const response = await api.put<IUpdatePermission>('/permission-role', permission)\n return response.data\n}\n\nexport const getPermissionRoleByRoleID = async ({\n roleId\n}: {\n roleId: number\n}): Promise<PermissionRole[]> => {\n const { data } = await api.get<PermissionRole[]>(`permission-role/${roleId}`)\n return data\n}\n","import type {\n PricePerGramResponse,\n PriceCalculationResponse,\n UpdatePriceRequest,\n SchedulePriceRequest,\n CalculatePriceRequest,\n IPricePerGramHistory\n} from '../interfaces/pricePerGram.interface'\nimport { api } from './config'\n\nconst BASE_URL = 'price-per-gram'\n\nexport const pricePerGramService = {\n // 1. Obtener precio con fallback\n async getPrice(params: {\n productDetailId?: number\n productId?: number\n materialId?: number\n }): Promise<PricePerGramResponse> {\n const queryParams = new URLSearchParams()\n\n if (params.productDetailId)\n queryParams.append('productDetailID', params.productDetailId.toString())\n if (params.productId) queryParams.append('productID', params.productId.toString())\n if (params.materialId) queryParams.append('materialID', params.materialId.toString())\n\n const { data } = await api.get<PricePerGramResponse>(\n `${BASE_URL}/price?${queryParams.toString()}`\n )\n return data\n },\n\n // 2. Actualizar precio (crea histórico automáticamente)\n async updatePrice(request: UpdatePriceRequest): Promise<void> {\n await api.put(`${BASE_URL}/price`, request)\n },\n\n // 3. Ver histórico de precios\n async getHistory({\n entityType,\n entityId,\n limit\n }: {\n entityType: 'material' | 'product' | 'productDetail'\n entityId: number\n limit?: number\n }): Promise<IPricePerGramHistory[]> {\n const queryParams = new URLSearchParams()\n if (limit) queryParams.append('limit', limit.toString())\n\n const { data } = await api.get<{ success: boolean; data: IPricePerGramHistory[] }>(\n `${BASE_URL}/history/${entityType}/${entityId}?${queryParams.toString()}`\n )\n console.log('response data:', data)\n return data.data || []\n },\n\n // 4. Programar precio futuro\n async schedulePrice(request: SchedulePriceRequest): Promise<void> {\n await api.post(`${BASE_URL}/scheduled`, request)\n },\n\n // 5. Calcular precio para venta\n async calculatePrice(request: CalculatePriceRequest): Promise<PriceCalculationResponse> {\n const { data } = await api.post<PriceCalculationResponse>(`${BASE_URL}/calculate`, request)\n return data\n },\n\n // 6. Eliminar precio programado\n async deleteFuturePrice({\n historyId\n }: {\n historyId: number\n }): Promise<void> {\n await api.delete(`${BASE_URL}/scheduled/${historyId}`)\n },\n\n // 7. Actualizar precio programado\n async updateFuturePrice({\n historyId,\n request\n }: {\n historyId: number\n request: SchedulePriceRequest\n }): Promise<void> {\n await api.put(`${BASE_URL}/scheduled/${historyId}`, request)\n },\n\n // Verificar si un producto se vende por peso\n async isWeightBased({\n productDetailId\n }: {\n productDetailId: number\n }): Promise<boolean> {\n try {\n const priceInfo = await this.getPrice({ productDetailId })\n return priceInfo.pricePerGram !== null\n } catch (error) {\n console.error('Error verificando si es por peso:', error)\n return false\n }\n }\n}\n","import type { IPriceType, IPriceTypeResponse } from '../interfaces/priceType.interface'\nimport { api } from './config'\nimport type { IRequest } from '../interfaces/util.interface'\n\nexport const getPriceTypesForSelect = async (): Promise<IPriceType[]> => {\n const { data } = await api.get<IPriceType[]>('price-type/select')\n return data\n}\n\nexport const getAllPriceTypes = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: IRequest): Promise<IPriceTypeResponse> => {\n const { data } = await api.get<IPriceTypeResponse>(\n `price-type/?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const createPriceType = async ({\n priceType\n}: {\n priceType: IPriceType\n}): Promise<IPriceType> => {\n const { data } = await api.post<IPriceType>('price-type/', priceType)\n return data\n}\n\nexport const getPriceTypeById = async ({\n priceTypeId\n}: {\n priceTypeId: number\n}): Promise<IPriceType> => {\n const { data } = await api.get<IPriceType>(`price-type/${priceTypeId}`)\n return data\n}\n\nexport const updatePriceType = async ({\n priceTypeId,\n priceType\n}: {\n priceTypeId: number\n priceType: IPriceType\n}): Promise<IPriceType> => {\n const { data } = await api.put<IPriceType>(`price-type/${priceTypeId}`, priceType)\n return data\n}\n\nexport const deletePriceType = async ({ priceTypeId }: { priceTypeId: number }): Promise<void> => {\n await api.delete<void>(`price-type/${priceTypeId}`)\n}\n\nexport const undeletePriceType = async ({\n priceTypeId\n}: {\n priceTypeId: number\n}): Promise<void> => {\n await api.patch<void>(`price-type/${priceTypeId}`)\n}\n","import type { IFilterType } from '../interfaces/filters.interface'\nimport type {\n IProductResponse,\n IProduct,\n IProductDetailsResponse,\n IProductDetails\n} from '../interfaces/product.interface'\nimport { api } from './config'\n\ninterface ProductQuery {\n skip?: number\n limit?: number\n filters?: IFilterType\n}\n\ninterface CategoryQuery {\n category: number\n skip?: number\n limit?: number\n filters?: IFilterType\n}\n\nexport const getProductsForSelect = async (): Promise<IProduct[]> => {\n const { data } = await api.get<IProduct[]>('/product/select')\n return data\n}\n\nexport const getProducts = async ({\n skip = 0,\n limit = 16,\n filters\n}: ProductQuery): Promise<IProductDetailsResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip.toString(),\n limit: limit.toString(),\n ...(filters?.query && { query: filters.query }),\n ...(filters?.batchId && { batchId: filters.batchId }),\n ...(filters?.categoryId && { categoryId: filters.categoryId.toString() }),\n ...(filters?.supplierId && { supplierId: filters.supplierId.toString() }),\n ...(filters?.warehouseId && { warehouseId: filters.warehouseId.toString() }),\n ...(filters?.priceRangeMin && { minPrice: filters.priceRangeMin.toString() }),\n ...(filters?.priceRangeMax && { maxPrice: filters.priceRangeMax.toString() })\n })\n\n const { data } = await api.get<IProductDetailsResponse>(`product?${queryParams}`)\n return data\n}\n\nexport const getProductsTable = async ({\n skip = 0,\n limit = 16,\n filters\n}: ProductQuery): Promise<IProductResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip.toString(),\n limit: limit.toString(),\n ...(filters?.query && { query: filters.query }),\n ...(filters?.batchId && { batchId: filters.batchId }),\n ...(filters?.categoryId && { categoryId: filters.categoryId.toString() }),\n ...(filters?.supplierId && { supplierId: filters.supplierId.toString() }),\n ...(filters?.warehouseId && { warehouseId: filters.warehouseId.toString() }),\n ...(filters?.priceRangeMin && { minPrice: filters.priceRangeMin.toString() }),\n ...(filters?.priceRangeMax && { maxPrice: filters.priceRangeMax.toString() })\n })\n\n const { data } = await api.get<IProductResponse>(`product/table?${queryParams}`)\n return data\n}\n\nexport const getProductById = async ({\n productId\n}: {\n productId: number\n}): Promise<IProduct> => {\n const { data } = await api.get(`product/${productId}`)\n return data.data\n}\n\nexport const getProductVariants = async ({\n productId,\n skip = 0,\n limit = 10,\n query = ''\n}: {\n productId: number\n skip?: number\n limit?: number\n query?: string\n}): Promise<IProductDetailsResponse> => {\n const { data } = await api.get<IProductDetailsResponse>(`/product/variants/${productId}`, {\n params: {\n skip: skip.toString(),\n limit: limit.toString(),\n ...(query && { query })\n }\n })\n return data\n}\n\nexport const getProductVariantsForSelect = async ({\n productId\n}: {\n productId: number\n}): Promise<IProductDetails[]> => {\n const { data } = await api.get<IProductDetails[]>(`/product/variants/select/${productId}`)\n return data\n}\n\nexport const getProductVariantById = async ({\n productDetailId\n}: {\n productDetailId: number\n}): Promise<IProductDetails> => {\n const { data } = await api.get<IProductDetails>(`/product/variants/variant/${productDetailId}`)\n return data\n}\n\nexport const createProductVariant = async (variant: FormData): Promise<IProductDetails> => {\n const { data } = await api.post<IProductDetails>('product/variants', variant, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const createProductVariants = async (formData: FormData): Promise<IProductDetails[]> => {\n const { data } = await api.post<IProductDetails[]>('product/variants', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const updateProductVariant = async (data: FormData): Promise<IProductDetails> => {\n const { data: response } = await api.put<IProductDetails>(\n `product/variants/update/${data.get('productDetailID')}`,\n data,\n {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n }\n )\n return response\n}\n\nexport const deleteProductVariant = async ({\n productDetailId\n}: {\n productDetailId: number\n}): Promise<void> => {\n await api.delete(`/product/variants/${productDetailId}`)\n}\n\nexport const restoreProductVariant = async ({\n productDetailId\n}: {\n productDetailId: number\n}): Promise<void> => {\n await api.patch(`/product/variants/${productDetailId}`)\n}\n\nexport const createProduct = async (product: FormData): Promise<IProduct> => {\n const { data } = await api.post<IProduct>('product/', product, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const updateProduct = async ({\n productId,\n product\n}: {\n productId: number\n product: FormData\n}): Promise<IProduct> => {\n const { data } = await api.put<IProduct>(`/product/${productId}`, product, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const deleteImageFromProduct = async ({\n imageId\n}: {\n imageId: number\n}): Promise<void> => {\n await api.delete(`/product/images/${imageId}`)\n}\n\nexport const deleteProduct = async ({ productId }: { productId: number }): Promise<void> => {\n await api.delete(`/product/${productId}`)\n}\n\nexport const restoreProduct = async ({ productId }: { productId: number }): Promise<void> => {\n await api.patch(`/product/${productId}`)\n}\n\nexport const getProductsByCategory = async ({\n category,\n skip = 0,\n limit = 10,\n filters\n}: CategoryQuery): Promise<IProductResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip.toString(),\n limit: limit.toString(),\n ...(filters?.query && { query: filters.query }),\n ...(filters?.batchId && { batchId: filters.batchId }),\n ...(filters?.supplierId && { supplierId: filters.supplierId.toString() }),\n ...(filters?.warehouseId && { warehouseId: filters.warehouseId.toString() }),\n ...(filters?.priceRangeMin && { minPrice: filters.priceRangeMin.toString() }),\n ...(filters?.priceRangeMax && { maxPrice: filters.priceRangeMax.toString() })\n })\n\n const { data } = await api.get<IProductResponse>(`product/category/${category}?${queryParams}`)\n return data\n}\n\nexport interface PrintProductTagResponse {\n message?: string\n [key: string]: unknown\n}\n\nexport const printProductTag = async ({\n stockId,\n productId,\n isSmall\n}: {\n stockId: number\n productId: number\n isSmall: boolean\n}): Promise<PrintProductTagResponse> => {\n const { data } = await api.post<PrintProductTagResponse>(`/product/printproducttag/`, {\n stockID: stockId,\n productID: productId,\n isSmall\n })\n return data\n}\n","import type { ITag } from '../interfaces/tag.interface'\nimport { api } from './config'\n\nexport const getAllTags = async (): Promise<ITag[]> => {\n const { data } = await api.get<{ data: ITag[] }>('/product-tag')\n return data.data\n}\n","import type {\n IPromotion,\n IPromotionResponse,\n IPromotionType\n} from '../interfaces/promotion.interface'\nimport { api } from './config'\n\nexport const isAValidDiscountCode = async ({\n discountCode\n}: {\n discountCode: string\n}): Promise<boolean> => {\n const { data } = await api.post('promotion/discount-code', { discountCode })\n return data.isValid\n}\n\ninterface PromotionQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport const getPromotions = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: PromotionQuery): Promise<IPromotionResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip.toString(),\n limit: limit.toString(),\n query: query\n })\n const { data } = await api.get(`promotion?${queryParams}`)\n return data\n}\n\nexport const getPromotionsTypeForSelect = async (): Promise<IPromotionType[]> => {\n const { data } = await api.get('promotion/promotions-type/select')\n return data\n}\n\nexport const createPromotion = async (promotion: IPromotion): Promise<IPromotion> => {\n const { data } = await api.post('promotion', promotion)\n return data\n}\n\nexport const getPromotionById = async ({ id }: { id: string }): Promise<IPromotion> => {\n const { data } = await api.get(`promotion/${id}`)\n return data\n}\n\nexport const updatePromotion = async ({\n id,\n promotion\n}: {\n id: string\n promotion: IPromotion\n}): Promise<IPromotion> => {\n const { data } = await api.put(`promotion/${id}`, promotion)\n return data\n}\n","import type {\n IProvider,\n IProviderForSelect,\n IProviderRequest,\n IProviderResponse\n} from '../interfaces/provider.interface'\nimport { api } from './config'\n\nexport const getAllProviders = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: {\n skip: number\n limit: number\n query?: string\n}): Promise<IProviderResponse> => {\n const { data } = await api.get<IProviderResponse>(\n `provider/?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getProviderById = async ({\n providerId\n}: {\n providerId: number\n}): Promise<IProvider> => {\n const { data } = await api.get<IProvider>(`provider/${providerId}`)\n return data\n}\n\nexport const getProvidersForSelect = async (): Promise<IProviderForSelect[]> => {\n const { data } = await api.get<IProviderForSelect[]>('provider/providersForSelect')\n return data\n}\n\nexport const createProvider = async (provider: IProviderRequest): Promise<IProviderResponse> => {\n const { data } = await api.post<IProviderResponse>('provider/', provider)\n return data\n}\n\nexport const updateProvider = async ({\n providerId,\n provider\n}: {\n providerId: string\n provider: IProvider\n}): Promise<IProviderResponse> => {\n const { data } = await api.put<IProviderResponse>(`provider/${providerId}`, provider)\n return data\n}\n\nexport const deleteProvider = async ({\n providerId\n}: {\n providerId: number\n}): Promise<IProviderResponse> => {\n const { data } = await api.delete<IProviderResponse>(`provider/${providerId}`)\n return data\n}\n\nexport const restoreProvider = async ({\n providerId\n}: {\n providerId: number\n}): Promise<IProviderResponse> => {\n const { data } = await api.patch<IProviderResponse>(`provider/${providerId}`)\n return data\n}\n","import { api } from './config'\n\nexport interface QRBaseUrlResponse {\n success: boolean\n baseUrl: string\n}\n\nexport interface PrintQRResponse {\n success?: boolean\n message?: string\n data?: {\n url?: string\n productDetailID?: number\n printerResult?: boolean\n }\n [key: string]: unknown\n}\n\n/**\n * Obtiene la URL base configurada para los códigos QR (QR_BASE_URL del backend).\n */\nexport const getQRBaseUrl = async (): Promise<string> => {\n const { data } = await api.get<QRBaseUrlResponse>('/qr/base-url')\n return data?.baseUrl ?? ''\n}\n\n/**\n * Imprime un código QR en la impresora térmica.\n * El backend construye la URL: {QR_BASE_URL}/producto/{productDetailID}\n */\nexport const printQR = async ({\n productDetailId,\n printerName = '4BARCODE'\n}: {\n productDetailId: number\n printerName?: string\n}): Promise<PrintQRResponse> => {\n const { data } = await api.post<PrintQRResponse>('/qr/print', {\n productDetailID: productDetailId,\n printerName\n })\n return data\n}\n","import type {\n ComparisonBy,\n IReportComparisonByTimeFrame,\n IReportInventory,\n IReportX,\n IReportZ,\n IStockByWarehouseReport\n} from '../interfaces/report.interface'\nimport { api } from './config'\n\nexport const getStockByWarehouseReport = async ({\n limit = 2,\n allWarehouses = false\n}: {\n limit: number\n allWarehouses: boolean\n}): Promise<IStockByWarehouseReport[]> => {\n const response = await api.get(`/report?limit=${limit}&allWarehouses=${allWarehouses}`)\n return response.data\n}\n\nexport const getReportX = async ({\n startDate,\n sellerID,\n isShiftChange = false\n}: {\n startDate: string\n sellerID: number\n isShiftChange: boolean\n}): Promise<IReportX> => {\n const response = await api.get(\n `/report/report-x?startDate=${startDate}&sellerID=${sellerID}&isShiftChange=${isShiftChange}`\n )\n return response.data\n}\n\nexport const printReportX = async ({\n startDate,\n sellerID\n}: {\n startDate: string\n sellerID: number\n}): Promise<boolean> => {\n const response = await api.get(\n `/report/printReport-x?startDate=${startDate}&sellerID=${sellerID}`\n )\n return response.data\n}\n\nexport const getReportComparisonByTimeFrame = async ({\n startDate,\n endDate,\n comparisonBy,\n productIds\n}: {\n startDate: Date\n endDate: Date\n comparisonBy: ComparisonBy\n productIds: string[]\n}): Promise<IReportComparisonByTimeFrame> => {\n const response = await api.get(\n `/report/comparison?startDate=${startDate.toISOString()}&endDate=${endDate.toISOString()}&comparisonBy=${comparisonBy}&productIds=${productIds}`\n )\n return response.data\n}\n\nexport const getReportByInventory = async ({\n productIDs,\n categoryIDs,\n warehouseIDs,\n providerIDs\n}: {\n productIDs: number[] | null\n categoryIDs: number[] | null\n warehouseIDs: number[] | null\n providerIDs: number[] | null\n}): Promise<IReportInventory[]> => {\n const params = new URLSearchParams()\n \n if (productIDs && productIDs.length > 0) {\n params.append('productIDs', productIDs.join(','))\n }\n if (categoryIDs && categoryIDs.length > 0) {\n params.append('categoryIDs', categoryIDs.join(','))\n }\n if (warehouseIDs && warehouseIDs.length > 0) {\n params.append('warehouseIDs', warehouseIDs.join(','))\n }\n if (providerIDs && providerIDs.length > 0) {\n params.append('providerIDs', providerIDs.join(','))\n }\n\n const queryString = params.toString()\n const url = `/report/inventory${queryString ? `?${queryString}` : ''}`\n \n const response = await api.get(url)\n return response.data\n}\n\nexport const getReportZ = async ({\n startDate,\n sellerID,\n isShiftChange = false\n}: {\n startDate: string\n sellerID: number\n isShiftChange: boolean\n}): Promise<IReportZ> => {\n const response = await api.get(\n `/report/report-z?startDate=${startDate}&sellerID=${sellerID}&isShiftChange=${isShiftChange}`\n )\n return response.data\n}\n\nexport const printReportZ = async ({\n startDate,\n sellerID\n}: {\n startDate: string\n sellerID: number\n}): Promise<boolean> => {\n const response = await api.get(\n `/report/printReport-z?startDate=${startDate}&sellerID=${sellerID}`\n )\n return response.data\n}\n\nexport const checkPendingReportZ = async (): Promise<Date[]> => {\n const response = await api.get('/report/pending-report-z')\n return response.data\n}\n","import type { TblOrderDetail, TblReturn } from '../interfaces/order.interface'\nimport { api } from './config'\n\nexport const createReturn = async ({\n orderId,\n returnReason,\n orderDetails,\n warehouseDestinationID\n}: {\n orderId: number\n returnReason: string\n orderDetails: TblOrderDetail[]\n warehouseDestinationID: number\n}): Promise<void> => {\n const response = await api.post(`/returns`, {\n orderId,\n returnReason,\n orderDetails,\n warehouseDestinationID\n })\n return response.data\n}\n\nexport interface GetReturnsByOrderIdResponse {\n message: string\n data: TblReturn[]\n}\n\nexport const getReturnsByOrderId = async ({\n orderId\n}: {\n orderId: number\n}): Promise<GetReturnsByOrderIdResponse> => {\n const response = await api.get(`/returns/order/${orderId}`)\n return response.data\n}\n","import type { IRole } from '../interfaces/role.interface'\nimport { api } from './config'\n\nexport const getRoles = async (): Promise<IRole[]> => {\n const response = await api.get('/role')\n return response.data\n}\n\nexport const getRoleByID = async ({\n roleId\n}: {\n roleId: number\n}): Promise<IRole> => {\n const response = await api.get(`/role/${roleId}`)\n return response.data\n}\n\nexport const createRole = async (role: IRole): Promise<IRole> => {\n const response = await api.post('/role', role)\n return response.data\n}\n\nexport const updateRole = async ({\n roleId,\n role\n}: {\n roleId: number\n role: IRole\n}): Promise<IRole> => {\n const response = await api.put(`/role/${roleId}`, role)\n return response.data\n}\n\nexport const deleteRole = async ({\n roleId\n}: {\n roleId: number\n}): Promise<void> => {\n await api.delete(`/role/${roleId}`)\n}\n","import type { IStockMovement, IStockMovementResponse } from '../interfaces/stockmovement.interface'\nimport { api } from './config'\n\ninterface MovementQuery {\n skip?: number\n limit?: number\n query?: string\n movementType?: number\n}\n\nexport interface MovementResponse {\n stockMovementID: number\n quantity: number\n addressID: number\n isOpen: boolean\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport const createMovement = async (movement: FormData): Promise<IStockMovement> => {\n const { data } = await api.post<IStockMovement>('movement/', movement, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\n// export const getAllLocations = async (): Promise<LocationResponse[]> => {\n// const { data } = await api.get<LocationResponse[]>('location/')\n// return data\n// }\n\n// export const getLocationsForSelect = async (): Promise<LocationResponse[]> => {\n// const { data } = await api.get<LocationResponse[]>('location/locationsForSelect')\n// return data\n// }\n\nexport const getMovements = async ({\n skip = 0,\n limit = 10,\n query = '',\n movementType = 1\n}: MovementQuery): Promise<IStockMovementResponse> => {\n const { data } = await api.get<IStockMovementResponse>(\n `movement/movements?skip=${skip}&limit=${limit}&query=${query}&movementTypeID=${movementType}`\n )\n return data\n}","import { api } from './config'\n\nexport interface Response {\n status: boolean\n httpStatus: number\n message: string\n data: unknown\n}\n\ninterface CloseShiftData {\n sellerID: number\n date: string\n paymentMethods: {\n paymentMethodId: number\n amount: number\n }[]\n cashBreakdown?: {\n coinsTotal: number\n bills: {\n denomination: number\n quantity: number\n }[]\n }\n}\n\nexport const closeShift = async (data: CloseShiftData): Promise<Response> => {\n const response = await api.post<Response>('/shift/close', data, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n return response.data\n}\n\nexport const makeNewCashMovement = async ({\n userID,\n amount,\n comment,\n isWithdrawal\n}: {\n userID: number | undefined\n amount: number\n comment?: string\n isWithdrawal: boolean\n}): Promise<Response> => {\n const { data } = await api.post<Response>(\n 'shift/cashmovement',\n {\n userID,\n amount,\n comment,\n isWithdrawal\n },\n {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n return data\n}\n\nexport const setNewShift = async ({\n userID,\n initialCash\n}: {\n userID: number | undefined\n initialCash: number\n}): Promise<Response> => {\n const { data } = await api.post<Response>(\n 'shift/',\n {\n userID,\n initialCash\n },\n {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n return data\n}\n","import { api } from './config'\n\nexport interface StateResponse {\n stateID: number\n state: string\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport const getAllStates = async (): Promise<StateResponse[]> => {\n const { data } = await api.get<StateResponse[]>('state/')\n return data\n}\n","import type { ITax } from '../interfaces/tax.interface'\nimport { api } from './config'\n\nexport const getTaxesForSelect = async (): Promise<ITax[]> => {\n const { data } = await api.get<ITax[]>('tax/taxesForSelect')\n return data\n}\n","import type { AgentResponse, IUser, IUserForm, UserResponse } from '../interfaces/user.interface'\nimport { api } from './config'\n\ninterface UserQuery {\n skip?: number\n limit?: number\n query?: string\n roleId?: string\n}\n\nexport const getSellersWithShift = async (): Promise<AgentResponse> => {\n const { data } = await api.get<AgentResponse>(`user/getSellersWithShift/`)\n return data\n}\n\nexport const getSellersOfDayForSelect = async ({\n date\n}: {\n date: string\n}): Promise<AgentResponse> => {\n const { data } = await api.get<AgentResponse>(`user/getSellersOfDayForSelect/${date}`)\n return data\n}\n\nexport const getAllAgents = async (): Promise<AgentResponse> => {\n const { data } = await api.get<AgentResponse>('user/getallagents')\n return data\n}\n\nexport const getUsers = async ({\n skip = 0,\n limit = 10,\n query = '',\n roleId,\n}: UserQuery): Promise<UserResponse> => {\n const params = new URLSearchParams({\n skip: String(skip),\n limit: String(limit),\n ...(query && { query }),\n ...(roleId && { roleId }),\n });\n const { data } = await api.get<UserResponse>(`user/?${params}`)\n return data\n}\n\nexport const getUserById = async ({ userId }: { userId: number }): Promise<IUser> => {\n const { data } = await api.get<IUser>(`user/${userId}`)\n return data\n}\n\nexport const createUser = async ({ user }: { user: IUserForm }): Promise<void> => {\n await api.post('user/', user)\n}\n\nexport const updateUser = async ({\n userId,\n user\n}: {\n userId: number\n user: IUserForm\n}): Promise<void> => {\n await api.put(`user/${userId}`, user)\n}\n\nexport const deleteUser = async ({ userId }: { userId: number }): Promise<void> => {\n await api.delete(`user/${userId}`)\n}\nexport const restoreUser = async ({ userId }: { userId: number }): Promise<void> => {\n await api.patch(`user/${userId}`)\n}\n","import type { IWareHouse, IWareHouseResponse } from '../interfaces/warehouse.interface'\nimport { api } from './config'\n\ninterface WareHouseQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport interface WarehouseResponse {\n wareHouseID: number\n wareHouse: string\n wareHouseWithLocation: string\n physicialLocationID: number\n isShowroom: boolean\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport const getWarehousesForSelect = async (): Promise<WarehouseResponse[]> => {\n const { data } = await api.get<WarehouseResponse[]>('warehouse/warehousesForSelect')\n return data\n}\n\nexport const getWarehouses = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: WareHouseQuery): Promise<IWareHouseResponse> => {\n const { data } = await api.get<IWareHouseResponse>(\n `warehouse/warehouses?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getWarehouseById = async ({\n warehouseId\n}: {\n warehouseId: number\n}): Promise<IWareHouse> => {\n const { data } = await api.get(`/warehouse/${warehouseId}`)\n return data.data\n}\n\nexport const updateWarehouse = async ({\n warehouseId,\n warehouse\n}: {\n warehouseId: number\n warehouse: FormData\n}): Promise<IWareHouse> => {\n const { data } = await api.put<IWareHouse>(`/warehouse/${warehouseId}`, warehouse, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const createWareHouse = async (warehouse: FormData): Promise<IWareHouse> => {\n const { data } = await api.post<IWareHouse>('warehouse/', warehouse, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const deleteWarehouse = async ({\n warehouseId\n}: {\n warehouseId: number\n}): Promise<void> => {\n await api.delete(`/warehouse/${warehouseId}`)\n}\n\nexport const restoreWarehouse = async ({\n warehouseId\n}: {\n warehouseId: number\n}): Promise<void> => {\n await api.patch(`/warehouse/${warehouseId}`)\n}\n"]}
1
+ {"version":3,"sources":["../src/services/config.ts","../src/services/attributes.service.ts","../src/services/auth.service.ts","../src/services/bankTerminal.service.ts","../src/services/batch.service.ts","../src/services/category.service.ts","../src/services/client.service.ts","../src/services/exchange.service.ts","../src/services/gender.service.ts","../src/services/health.service.ts","../src/services/location.service.ts","../src/services/material.service.ts","../src/services/module.service.ts","../src/services/order.service.ts","../src/services/payment.service.ts","../src/services/permission.service.ts","../src/services/pricePerGram.service.ts","../src/services/priceType.service.ts","../src/services/product.service.ts","../src/services/productTags.service.ts","../src/services/promotion.service.ts","../src/services/provider.service.ts","../src/services/qr.service.ts","../src/services/report.service.ts","../src/services/return.service.ts","../src/services/role.service.ts","../src/services/stockmovement.service.ts","../src/services/shift.service.ts","../src/services/state.service.ts","../src/services/tax.service.ts","../src/services/user.service.ts","../src/services/warehouse.service.ts"],"names":[],"mappings":"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","file":"services.js","sourcesContent":["import axios, { type AxiosInstance } from 'axios'\n\n/**\n * Configuration for the shared API client.\n * Each consuming app must call configureApi() with its own baseURL and auth.\n */\nexport interface IApiConfig {\n /** Backend base URL (e.g. \"http://localhost:4000/\" or \"https://api.myapp.com/\") */\n baseURL: string\n /** Returns the current auth token for request headers */\n getToken: () => string | undefined\n /** Called when a new token is received after refresh (e.g. update your store) */\n onTokenRefresh?: (newToken: string) => void\n /** Called when refresh fails (e.g. clear session, redirect to login) */\n onUnauthorized?: () => void\n}\n\n// Default instance; replaced when configureApi() is called by the consuming app\nlet api: AxiosInstance = axios.create({\n baseURL: '',\n headers: { 'Content-Type': 'application/json' }\n})\n\n/**\n * Configure the shared API client. Must be called by the consuming app before using any service.\n * @example\n * // In your app (e.g. main.tsx or before first API call):\n * import { configureApi } from 'erp-pos-ecommerce-shared'\n * import { useAuthStore } from './store/authStore'\n *\n * configureApi({\n * baseURL: import.meta.env.VITE_API_URL ?? 'http://localhost:4000/',\n * getToken: () => useAuthStore.getState().token,\n * onTokenRefresh: (newToken) => useAuthStore.setState({ token: newToken }),\n * onUnauthorized: () => { useAuthStore.setState({ token: undefined }); redirectToLogin() }\n * })\n */\nexport function configureApi(config: IApiConfig): AxiosInstance {\n const { baseURL, getToken, onTokenRefresh, onUnauthorized } = config\n\n const newApi = axios.create({\n baseURL,\n headers: {\n 'Content-Type': 'application/json',\n ...(getToken() && { Authorization: `Bearer ${getToken()}` })\n }\n })\n\n newApi.interceptors.request.use((reqConfig) => {\n const token = getToken()\n if (token) {\n reqConfig.headers.Authorization = `Bearer ${token}`\n }\n return reqConfig\n })\n\n const refreshAxios = axios.create({ baseURL })\n\n newApi.interceptors.response.use(\n (response) => response,\n async (error) => {\n const originalRequest = error.config\n\n if (error.response?.status === 401 && !originalRequest._retry && onTokenRefresh && onUnauthorized) {\n originalRequest._retry = true\n\n try {\n const response = await refreshAxios.get('/auth/refresh', {\n headers: getToken() ? { Authorization: `Bearer ${getToken()}` } : {}\n })\n const newToken = response.data?.token\n if (newToken) {\n onTokenRefresh(newToken)\n originalRequest.headers.Authorization = `Bearer ${newToken}`\n return newApi(originalRequest)\n }\n } catch {\n onUnauthorized()\n return Promise.reject(error)\n }\n }\n\n return Promise.reject(error)\n }\n )\n\n api = newApi\n return api\n}\n\n/**\n * Shared axios instance used by all services.\n * Valid only after the consuming app has called configureApi().\n */\nexport { api }\n","import type {\n IAttribute,\n IAttributeFilter,\n IAttributeResponse,\n IAttributeValue\n} from '../interfaces/attribute.interface'\nimport { api } from './config'\n\nexport const getAttributes = async ({\n skip,\n limit,\n query\n}: {\n skip: number\n limit: number\n query: string\n}): Promise<IAttributeResponse> => {\n const { data } = await api.get('/attribute/category', { params: { skip, limit, query } })\n return data\n}\n\nexport const getAttributesForSelect = async (): Promise<IAttribute[]> => {\n const { data } = await api.get('/attribute/select')\n return data\n}\n\nexport const getAttributesTable = async ({\n skip,\n limit,\n filters\n}: {\n skip?: number\n limit?: number\n filters?: IAttributeFilter\n}): Promise<IAttributeResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip?.toString() ?? \"\",\n limit: limit?.toString() ?? \"\",\n ...(filters?.query && { query: filters.query }),\n ...(filters?.categoryId && { categoryId: filters.categoryId.toString() }),\n ...(filters?.productId && { productId: filters.productId.toString() }),\n ...(filters?.materialId && { materialId: filters.materialId.toString() }),\n })\n const { data } = await api.get(`/attribute?${queryParams}`)\n return data\n}\n\nexport const getAttributeById = async ({\n attributeId\n}: {\n attributeId: string\n}): Promise<IAttribute> => {\n const { data } = await api.get(`/attribute/${attributeId}`)\n return data\n}\n\nexport const getAttributesByProductID = async ({\n productId\n}: {\n productId: string\n}): Promise<IAttribute[]> => {\n const { data } = await api.get(`/attribute/${productId}/product`)\n return data\n}\n\nexport const getAttributesByCategoryID = async ({\n categoryID\n}: {\n categoryID: string\n}): Promise<IAttribute[]> => {\n const { data } = await api.get(`/attribute/${categoryID}/category/`)\n return data\n}\n\nexport const getAttributeValues = async ({\n attributeId\n}: {\n attributeId: string\n}): Promise<IAttributeValue[]> => {\n const { data } = await api.get(`/attribute/${attributeId}/values`)\n return data\n}\n\nexport const createAttribute = async ({\n attribute\n}: {\n attribute: {\n name: string\n values: string[]\n productId: number\n }\n}): Promise<IAttribute> => {\n const { data } = await api.post('/attribute', {\n name: attribute.name,\n values: attribute.values,\n productID: attribute.productId,\n })\n return data\n}\n\nexport const createAttributesValuesBatch = async ({\n productId,\n attributeValues,\n}: {\n productId: number;\n attributeValues: {\n attribute: string;\n values: string[];\n }[];\n}): Promise<IAttributeValue[]> => {\n const { data } = await api.post(`/attribute/batch`, {\n productId,\n attributeValues,\n });\n return data;\n};\n\nexport const createAttributesForCategory = async ({\n attributes\n}: {\n attributes: {\n categoryId: string\n attributes: {\n name: string\n values: string[]\n pricePerGram?: number | null\n }[]\n }\n}): Promise<IAttribute> => {\n const { data } = await api.post(`/attribute/category/`, {\n categoryID: attributes.categoryId,\n attributes: attributes.attributes\n })\n return data\n}\n\nexport const updateAttribute = async ({\n attributeId,\n attribute\n}: {\n attributeId: string\n attribute: IAttribute\n}): Promise<IAttribute> => {\n const { data } = await api.put(`/attribute/${attributeId}`, attribute)\n return data\n}\n\nexport const updateAttributesForCategory = async ({\n categoryId,\n attributes\n}: {\n categoryId: string\n attributes: {\n attributes: string[]\n }\n}): Promise<IAttribute> => {\n const { data } = await api.put(`/attribute/category/${categoryId}`, attributes)\n return data\n}\n\nexport const deleteAttribute = async ({\n attributeId\n}: {\n attributeId: string\n}): Promise<IAttribute> => {\n const { data } = await api.delete(`/attribute/${attributeId}`)\n return data\n}\n\nexport const undeleteAttribute = async ({\n attributeId\n}: {\n attributeId: string\n}): Promise<IAttribute> => {\n const { data } = await api.patch(`/attribute/${attributeId}`)\n return data\n}\n\n//create attribute value\nexport const createAttributeValue = async ({\n attributeId,\n value\n}: {\n attributeId: number\n value: string\n}): Promise<IAttributeValue> => {\n const { data } = await api.post(`/attribute/${attributeId}/values`, {\n attributeID: attributeId,\n value\n })\n return data\n}\n","import type { IUser } from '../interfaces/user.interface'\nimport { api } from './config'\n\nexport interface LoginResponse {\n user: IUser\n token: string\n}\n\nexport const login = async ({\n email,\n password\n}: {\n email: string\n password: string\n}): Promise<LoginResponse> => {\n const { data } = await api.post<LoginResponse>('auth/login', { email, password })\n return data\n}\n","import type {\n IBankTerminal,\n IBankTerminalResponse,\n IBankTerminalForm,\n BankTerminalQuery,\n BankTerminalResponse\n} from '../interfaces/bankTerminal.interface'\nimport { api } from './config'\n\nexport const getBankTerminalsForSelect = async (): Promise<BankTerminalResponse[]> => {\n const { data } = await api.get<BankTerminalResponse[]>('bank-terminals/bankTerminalsSelect')\n return data\n}\n\nexport const getAllBankTerminals = async (): Promise<BankTerminalResponse[]> => {\n const { data } = await api.get<BankTerminalResponse[]>('bank-terminals/')\n return data\n}\n\nexport const getBankTerminals = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: BankTerminalQuery): Promise<IBankTerminalResponse> => {\n const { data } = await api.get<IBankTerminalResponse>(\n `bank-terminals/bankTerminalsTable/?skip=${skip}&limit=${limit}&query=${query}`\n )\n\n return data\n}\n\nexport const getBankTerminalById = async ({\n terminalId\n}: {\n terminalId: number\n}): Promise<IBankTerminal> => {\n const { data } = await api.get(`/bank-terminals/${terminalId}`)\n return data.data\n}\n\nexport const updateBankTerminal = async ({\n terminalId,\n terminal\n}: {\n terminalId: number\n terminal: IBankTerminalForm\n}): Promise<IBankTerminal> => {\n const { data } = await api.put<IBankTerminal>(`/bank-terminals/${terminalId}`, terminal)\n return data\n}\n\nexport const createBankTerminal = async ({\n terminal\n}: {\n terminal: IBankTerminalForm\n}): Promise<IBankTerminal> => {\n const { data } = await api.post<IBankTerminal>('bank-terminals/', terminal)\n return data\n}\n\nexport const deleteBankTerminal = async ({ terminalId }: { terminalId: number }): Promise<void> => {\n await api.delete(`/bank-terminals/${terminalId}`)\n}\n\nexport const restoreBankTerminal = async ({\n terminalId\n}: {\n terminalId: number\n}): Promise<void> => {\n await api.patch(`/bank-terminals/${terminalId}`)\n}\n","import type { IBatch, IBatchResponse } from '../interfaces/batch.interface'\nimport { api } from './config'\n\ninterface BatchQuery {\n skip?: number\n limit?: number\n query?: string\n productId?: number\n}\n\nexport const getBatchesForSelect = async (): Promise<IBatch[]> => {\n const { data } = await api.get<IBatch[]>('batch/batches-for-select')\n return data\n}\n\nexport const getBatches = async ({\n skip = 0,\n limit = 10,\n query = '',\n productId = 0\n}: BatchQuery): Promise<IBatchResponse> => {\n const { data } = await api.get<IBatchResponse>(\n `batch?skip=${skip}&limit=${limit}&query=${query}&productID=${productId}`\n )\n return data\n}\n\nexport const createBatch = async (batch: FormData): Promise<IBatch> => {\n const { data } = await api.post<IBatch>('batch/', batch)\n return data\n}\n\nexport const createBatchAndUpdateOtherBatches = async (batch: FormData): Promise<IBatch> => {\n const { data } = await api.post<IBatch>('batch/create-batch-and-update-other-batches', batch)\n return data\n}\n\nexport const getBatchById = async (batchId: number): Promise<IBatch> => {\n const { data } = await api.get<IBatch>(`batch/${batchId}`)\n return data\n}\n\nexport const getMatchedBatches = async ({\n productDetailId\n}: {\n productDetailId: number\n}): Promise<IBatch[]> => {\n const { data } = await api.get<IBatch[]>(\n `batch/matched-batches?productDetailID=${productDetailId}`\n )\n return data\n}\n\nexport interface UpdateBatchData {\n unitCost?: number\n unitSellingPrice?: number\n profitPercentage?: number\n}\n\nexport const updateBatch = async ({\n batchId,\n batchData\n}: {\n batchId: number\n batchData: UpdateBatchData\n}): Promise<IBatch> => {\n const { data } = await api.put<IBatch>(`batch/${batchId}`, batchData)\n return data\n}\n","import type {\n ICategory,\n ICategoryResponse,\n} from '../interfaces/category.interface'\nimport { api } from './config'\n\ninterface CategoryQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport const getCategoriesForSelect = async (): Promise<ICategory[]> => {\n const { data } = await api.get<ICategory[]>('category/categoriesSelect')\n return data\n}\n\nexport const getAllCategories = async (): Promise<ICategory[]> => {\n const { data } = await api.get<ICategory[]>('category/')\n return data\n}\n\nexport const getCategories = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: CategoryQuery): Promise<ICategoryResponse> => {\n const { data } = await api.get<ICategoryResponse>(\n `category/categoriesTable?skip=${skip}&limit=${limit}&query=${query}`\n )\n\n return data\n}\n\nexport const getCategoryById = async ({\n categoryId\n}: {\n categoryId: number\n}): Promise<ICategory> => {\n const { data } = await api.get(`/category/${categoryId}`)\n return data.data\n}\n\nexport const updateCategory = async ({\n categoryId,\n category\n}: {\n categoryId: number\n category: ICategory\n}): Promise<ICategory> => {\n const { data } = await api.put<ICategory>(`/category/${categoryId}`, category)\n return data\n}\n\nexport const createCategory = async ({ category }: { category: ICategory }): Promise<ICategory> => {\n const { data } = await api.post<ICategory>('category/', category)\n return data\n}\n\nexport const deleteCategory = async ({ categoryId }: { categoryId: number }): Promise<void> => {\n await api.delete(`/category/${categoryId}`)\n}\n\nexport const restoreCategory = async ({ categoryId }: { categoryId: number }): Promise<void> => {\n await api.patch(`/category/${categoryId}`)\n}\n","import type {\n IClient,\n IClientRequest,\n IClientResponse,\n IClientResponseById\n} from '../interfaces/client.interface'\nimport { api } from './config'\n\nexport const getAllClients = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: {\n skip: number\n limit: number\n query?: string\n}): Promise<IClientResponse> => {\n const { data } = await api.get<IClientResponse>(\n `client/?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getClientsForSelect = async (): Promise<IClient[]> => {\n const { data } = await api.get<IClient[]>('client/select')\n return data\n}\n\nexport const getClientById = async ({\n clientId\n}: {\n clientId: number\n}): Promise<IClientResponseById> => {\n const { data } = await api.get<IClientResponseById>(`client/${clientId}`)\n return data\n}\n\nexport const createClient = async (client: IClientRequest): Promise<IClientResponse> => {\n const { data } = await api.post<IClientResponse>('client/', client)\n return data\n}\n\nexport const updateClient = async ({\n client,\n id\n}: {\n id: string\n client: IClient\n}): Promise<IClientResponse> => {\n const { data } = await api.put<IClientResponse>(`client/${id}`, client)\n return data\n}\n\nexport const deleteClient = async ({\n clientId\n}: {\n clientId: number\n}): Promise<IClientResponse> => {\n const { data } = await api.delete<IClientResponse>(`client/${clientId}`)\n return data\n}\n\nexport const restoreClient = async ({\n clientId\n}: {\n clientId: number\n}): Promise<IClientResponse> => {\n const { data } = await api.patch<IClientResponse>(`client/${clientId}`)\n return data\n}\n","import { api } from './config'\n\ninterface ExchangeQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport interface IExchange {\n exchangeRateID: number\n valorEnPesos: number\n fromDate: string\n toDate: string\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport interface PaymentType {\n value: number\n label: string\n}\n\nexport interface IExchangeResponse {\n total: number\n data: IExchange[]\n skip: number\n limit: number\n}\n\nexport const getPaymentTypes = async (): Promise<PaymentType[]> => {\n const { data } = await api.get<PaymentType[]>('exchange/getPaymentTypes')\n return data\n}\n\nexport const getExchangeRates = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: ExchangeQuery): Promise<IExchangeResponse> => {\n const { data } = await api.get<IExchangeResponse>(\n `exchange/exchangesTable?skip=${skip}&limit=${limit}&query=${query}`\n )\n\n return data\n}\n\n//obtener el exchange rate mediante fehca y hora\nexport const getExchangeRate = async (): Promise<IExchange> => {\n const { data } = await api.get<IExchange>('exchange/getExchangeRate')\n return data\n}\n\nexport const createExchangeRate = async ({\n exchangeRate\n}: {\n exchangeRate: IExchange\n}): Promise<IExchange> => {\n const { data } = await api.post<IExchange>('exchange/', exchangeRate)\n return data\n}\n","import type { IGender } from '../interfaces/gender.interface'\nimport { api } from './config'\n\ninterface GenderResponse {\n data: IGender[]\n}\n\nexport const getAllGenders = async (): Promise<GenderResponse> => {\n const { data } = await api.get('gender/')\n return data\n}\n","import { api } from './config'\n\ninterface HealthCheckResponse {\n status: string\n timestamp: string\n services: {\n backend: {\n status: string\n message?: string\n }\n database: {\n status: string\n message?: string\n }\n }\n}\n\nconst HEALTH_CHECK_TIMEOUT_MS = 10000\n\nexport const healthService = {\n async check(): Promise<HealthCheckResponse> {\n try {\n const response = await api.get<HealthCheckResponse>('/api/health', {\n timeout: HEALTH_CHECK_TIMEOUT_MS\n })\n return response.data\n } catch (error) {\n const isTimeoutError =\n error instanceof Error &&\n (error.message.includes('timeout') || error.message.includes('Network Error'))\n\n return {\n status: 'error',\n timestamp: new Date().toISOString(),\n services: {\n backend: {\n status: 'error',\n message: isTimeoutError\n ? 'No se pudo conectar con el backend. Verifica que el servidor esté corriendo y la URL configurada.'\n : error instanceof Error\n ? error.message\n : 'Error de conexión con el backend'\n },\n database: {\n status: 'unknown',\n message: 'No se puede verificar la base de datos porque el backend no responde'\n }\n }\n }\n }\n }\n}\n","import type { ILocation, ILocationResponse } from '../interfaces/location.interface'\nimport { api } from './config'\n\ninterface LocationQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport interface LocationResponse {\n physicalLocationID: number\n name: string\n addressID: number\n isOpen: boolean\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport const getAllLocations = async (): Promise<LocationResponse[]> => {\n const { data } = await api.get<LocationResponse[]>('location/')\n return data\n}\n\nexport const getLocationsForSelect = async (): Promise<LocationResponse[]> => {\n const { data } = await api.get<LocationResponse[]>('location/locationsForSelect')\n return data\n}\n\nexport const getLocations = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: LocationQuery): Promise<ILocationResponse> => {\n const { data } = await api.get<ILocationResponse>(\n `location/locations?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getLocationById = async ({\n locationId\n}: {\n locationId: number\n}): Promise<ILocation> => {\n const { data } = await api.get(`/location/${locationId}`)\n return data.data\n}\n\nexport const updateLocation = async ({\n locationId,\n location\n}: {\n locationId: number\n location: FormData\n}): Promise<ILocation> => {\n const { data } = await api.put<ILocation>(`/location/${locationId}`, location, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const createLocation = async (location: FormData): Promise<ILocation> => {\n const { data } = await api.post<ILocation>('location/', location, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const deleteLocation = async ({\n physicalLocationId\n}: {\n physicalLocationId: number\n}): Promise<void> => {\n await api.delete(`/location/${physicalLocationId}`)\n}\n\nexport const restoreLocation = async ({\n physicalLocationId\n}: {\n physicalLocationId: number\n}): Promise<void> => {\n await api.patch(`/location/${physicalLocationId}`)\n}\n","import type { IMaterial } from '../interfaces/material.interface'\nimport { api } from './config'\n\nexport interface MaterialResponse {\n data: IMaterial[]\n total: number\n skip: number\n limit: number\n}\n\ninterface MaterialQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport const getAllMaterials = async (): Promise<IMaterial[]> => {\n const { data } = await api.get<IMaterial[]>('material/')\n return data\n}\n\nexport const getMaterials = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: MaterialQuery): Promise<MaterialResponse> => {\n const { data } = await api.get<MaterialResponse>(\n `material/materialsTable?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getMaterialById = async ({\n materialId\n}: {\n materialId: number\n}): Promise<IMaterial> => {\n const { data } = await api.get(`material/${materialId}`)\n return data.data\n}\n\nexport const getMaterialsForSelect = async (): Promise<IMaterial[]> => {\n const { data } = await api.get<IMaterial[]>('material/select')\n return data\n}\n\nexport const createMaterial = async ({ material }: { material: IMaterial }): Promise<IMaterial> => {\n const { data } = await api.post<IMaterial>('material/', material)\n return data\n}\n\nexport const updateMaterial = async ({\n materialId,\n material\n}: {\n materialId: number\n material: IMaterial\n}): Promise<IMaterial> => {\n const { data } = await api.put<IMaterial>(`material/${materialId}`, material)\n return data\n}\n\nexport const deleteMaterial = async ({ materialId }: { materialId: number }): Promise<void> => {\n await api.delete(`material/${materialId}`)\n}\nexport const undeleteMaterial = async ({ materialId }: { materialId: number }): Promise<void> => {\n await api.patch(`material/${materialId}`)\n}\n","import type { IModule } from '../interfaces/module.interface'\nimport { api } from './config'\n\nexport const getAllModules = async (): Promise<IModule[]> => {\n const { data } = await api.get<IModule[]>('module/')\n return data\n}\n","import type { IOrder, IOrderResponse, TblOrderStatus } from '../interfaces/order.interface'\nimport { api } from './config'\n\nexport const getOrders = async ({\n skip = 0,\n limit = 10,\n query = '',\n commissionedBy = '',\n orderStatus = [],\n startDate = '',\n endDate = '',\n showOnlyReturns = false\n}: {\n skip?: number\n limit?: number\n query?: string\n commissionedBy?: string\n orderStatus?: string[]\n startDate?: string | null\n endDate?: string | null\n showOnlyReturns?: boolean\n}): Promise<IOrderResponse> => {\n const { data } = await api.get<IOrderResponse>('order', {\n params: { skip, limit, query, commissionedBy, orderStatus, startDate, endDate, showOnlyReturns }\n })\n return data\n}\n\nexport const getOrderById = async ({ orderId }: { orderId: number }): Promise<IOrder> => {\n const { data } = await api.get<IOrder>(`order/${orderId}`)\n return data\n}\n\nexport const getOrdersStatusForSelect = async (): Promise<TblOrderStatus[]> => {\n const { data } = await api.get<TblOrderStatus[]>('order/status')\n return data\n}\n\nexport interface ChangeProductRequest {\n orderID: number\n oldOrderDetailID: number\n newProductDetailID: number\n quantity: number\n reason?: string\n}\n\nexport interface ChangeProductResponse {\n success: boolean\n message: string\n priceDifference: number\n requiresAdditionalPayment: boolean\n requiresRefund: boolean\n order: IOrder\n}\n\nexport const changeOrderProduct = async (\n changeData: ChangeProductRequest\n): Promise<ChangeProductResponse> => {\n const { data } = await api.post<ChangeProductResponse>('order/change-product', changeData)\n return data\n}\n","import { api } from './config'\nimport type {\n IPayment,\n IPaymentMethod,\n IPaymentMethodAmountExpected\n} from '../interfaces/payment.interface'\n\nexport const sendPaymentData = async ({ payment }: { payment: IPayment }): Promise<IPayment> => {\n const { data } = await api.post<IPayment>(\n 'payment/applypayment',\n {\n ...payment\n },\n {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n return data\n}\n\n//metodo para llamar a la api y obtener los metodos de pago\nexport const getPaymentMethods = async (): Promise<IPaymentMethod[]> => {\n const { data } = await api.get('payment/getpaymentmethods')\n return data\n}\n\n//metodo para llamar a la api y obtener los metodos de pago\nexport const getPaymentMethodsWithAmountExpected = async (): Promise<\n IPaymentMethodAmountExpected[]\n> => {\n const { data } = await api.get('payment/getpaymentmethodswithamountexpected')\n return data\n}\n\nexport const sendCreditPaymentData = async ({\n payment,\n orderId\n}: {\n payment: IPayment\n orderId: number\n}): Promise<IPayment> => {\n const { data } = await api.post<IPayment>(\n 'payment/applycreditpayment',\n {\n ...payment,\n orderID: orderId\n },\n {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n return data\n}\n","import type { IPermissionRole, PermissionRole } from '../interfaces/permission.interface'\nimport { api } from './config'\n\nexport interface IUpdatePermission {\n id: number\n hasPermission: boolean\n}\n\nexport const getAllPermissions = async (): Promise<IPermissionRole> => {\n const response = await api.get<IPermissionRole>('/permission-role/')\n return response.data\n}\n\nexport const updatePermission = async (\n permission: IUpdatePermission\n): Promise<IUpdatePermission> => {\n const response = await api.put<IUpdatePermission>('/permission-role', permission)\n return response.data\n}\n\nexport const getPermissionRoleByRoleID = async ({\n roleId\n}: {\n roleId: number\n}): Promise<PermissionRole[]> => {\n const { data } = await api.get<PermissionRole[]>(`permission-role/${roleId}`)\n return data\n}\n","import type {\n PricePerGramResponse,\n PriceCalculationResponse,\n UpdatePriceRequest,\n SchedulePriceRequest,\n CalculatePriceRequest,\n IPricePerGramHistory\n} from '../interfaces/pricePerGram.interface'\nimport { api } from './config'\n\nconst BASE_URL = 'price-per-gram'\n\nexport const pricePerGramService = {\n // 1. Obtener precio con fallback\n async getPrice(params: {\n productDetailId?: number\n productId?: number\n materialId?: number\n }): Promise<PricePerGramResponse> {\n const queryParams = new URLSearchParams()\n\n if (params.productDetailId)\n queryParams.append('productDetailID', params.productDetailId.toString())\n if (params.productId) queryParams.append('productID', params.productId.toString())\n if (params.materialId) queryParams.append('materialID', params.materialId.toString())\n\n const { data } = await api.get<PricePerGramResponse>(\n `${BASE_URL}/price?${queryParams.toString()}`\n )\n return data\n },\n\n // 2. Actualizar precio (crea histórico automáticamente)\n async updatePrice(request: UpdatePriceRequest): Promise<void> {\n await api.put(`${BASE_URL}/price`, request)\n },\n\n // 3. Ver histórico de precios\n async getHistory({\n entityType,\n entityId,\n limit\n }: {\n entityType: 'material' | 'product' | 'productDetail'\n entityId: number\n limit?: number\n }): Promise<IPricePerGramHistory[]> {\n const queryParams = new URLSearchParams()\n if (limit) queryParams.append('limit', limit.toString())\n\n const { data } = await api.get<{ success: boolean; data: IPricePerGramHistory[] }>(\n `${BASE_URL}/history/${entityType}/${entityId}?${queryParams.toString()}`\n )\n console.log('response data:', data)\n return data.data || []\n },\n\n // 4. Programar precio futuro\n async schedulePrice(request: SchedulePriceRequest): Promise<void> {\n await api.post(`${BASE_URL}/scheduled`, request)\n },\n\n // 5. Calcular precio para venta\n async calculatePrice(request: CalculatePriceRequest): Promise<PriceCalculationResponse> {\n const { data } = await api.post<PriceCalculationResponse>(`${BASE_URL}/calculate`, request)\n return data\n },\n\n // 6. Eliminar precio programado\n async deleteFuturePrice({\n historyId\n }: {\n historyId: number\n }): Promise<void> {\n await api.delete(`${BASE_URL}/scheduled/${historyId}`)\n },\n\n // 7. Actualizar precio programado\n async updateFuturePrice({\n historyId,\n request\n }: {\n historyId: number\n request: SchedulePriceRequest\n }): Promise<void> {\n await api.put(`${BASE_URL}/scheduled/${historyId}`, request)\n },\n\n // Verificar si un producto se vende por peso\n async isWeightBased({\n productDetailId\n }: {\n productDetailId: number\n }): Promise<boolean> {\n try {\n const priceInfo = await this.getPrice({ productDetailId })\n return priceInfo.pricePerGram !== null\n } catch (error) {\n console.error('Error verificando si es por peso:', error)\n return false\n }\n }\n}\n","import type { IPriceType, IPriceTypeResponse } from '../interfaces/priceType.interface'\nimport { api } from './config'\nimport type { IRequest } from '../interfaces/util.interface'\n\nexport const getPriceTypesForSelect = async (): Promise<IPriceType[]> => {\n const { data } = await api.get<IPriceType[]>('price-type/select')\n return data\n}\n\nexport const getAllPriceTypes = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: IRequest): Promise<IPriceTypeResponse> => {\n const { data } = await api.get<IPriceTypeResponse>(\n `price-type/?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const createPriceType = async ({\n priceType\n}: {\n priceType: IPriceType\n}): Promise<IPriceType> => {\n const { data } = await api.post<IPriceType>('price-type/', priceType)\n return data\n}\n\nexport const getPriceTypeById = async ({\n priceTypeId\n}: {\n priceTypeId: number\n}): Promise<IPriceType> => {\n const { data } = await api.get<IPriceType>(`price-type/${priceTypeId}`)\n return data\n}\n\nexport const updatePriceType = async ({\n priceTypeId,\n priceType\n}: {\n priceTypeId: number\n priceType: IPriceType\n}): Promise<IPriceType> => {\n const { data } = await api.put<IPriceType>(`price-type/${priceTypeId}`, priceType)\n return data\n}\n\nexport const deletePriceType = async ({ priceTypeId }: { priceTypeId: number }): Promise<void> => {\n await api.delete<void>(`price-type/${priceTypeId}`)\n}\n\nexport const undeletePriceType = async ({\n priceTypeId\n}: {\n priceTypeId: number\n}): Promise<void> => {\n await api.patch<void>(`price-type/${priceTypeId}`)\n}\n","import type { IFilterType } from '../interfaces/filters.interface'\nimport type {\n IProductResponse,\n IProduct,\n IProductDetailsResponse,\n IProductDetails\n} from '../interfaces/product.interface'\nimport { api } from './config'\n\ninterface ProductQuery {\n skip?: number\n limit?: number\n filters?: IFilterType\n}\n\ninterface CategoryQuery {\n category: number\n skip?: number\n limit?: number\n filters?: IFilterType\n}\n\nexport const getProductsForSelect = async (): Promise<IProduct[]> => {\n const { data } = await api.get<IProduct[]>('/product/select')\n return data\n}\n\nexport const getProducts = async ({\n skip = 0,\n limit = 16,\n filters\n}: ProductQuery): Promise<IProductDetailsResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip.toString(),\n limit: limit.toString(),\n ...(filters?.query && { query: filters.query }),\n ...(filters?.batchId && { batchId: filters.batchId }),\n ...(filters?.categoryId && { categoryId: filters.categoryId.toString() }),\n ...(filters?.supplierId && { supplierId: filters.supplierId.toString() }),\n ...(filters?.warehouseId && { warehouseId: filters.warehouseId.toString() }),\n ...(filters?.priceRangeMin && { minPrice: filters.priceRangeMin.toString() }),\n ...(filters?.priceRangeMax && { maxPrice: filters.priceRangeMax.toString() })\n })\n\n const { data } = await api.get<IProductDetailsResponse>(`product?${queryParams}`)\n return data\n}\n\nexport const getProductsTable = async ({\n skip = 0,\n limit = 16,\n filters\n}: ProductQuery): Promise<IProductResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip.toString(),\n limit: limit.toString(),\n ...(filters?.query && { query: filters.query }),\n ...(filters?.batchId && { batchId: filters.batchId }),\n ...(filters?.categoryId && { categoryId: filters.categoryId.toString() }),\n ...(filters?.supplierId && { supplierId: filters.supplierId.toString() }),\n ...(filters?.warehouseId && { warehouseId: filters.warehouseId.toString() }),\n ...(filters?.priceRangeMin && { minPrice: filters.priceRangeMin.toString() }),\n ...(filters?.priceRangeMax && { maxPrice: filters.priceRangeMax.toString() })\n })\n\n const { data } = await api.get<IProductResponse>(`product/table?${queryParams}`)\n return data\n}\n\nexport const getProductById = async ({\n productId\n}: {\n productId: number\n}): Promise<IProduct> => {\n const { data } = await api.get(`product/${productId}`)\n return data.data\n}\n\nexport const getProductVariants = async ({\n productId,\n skip = 0,\n limit = 10,\n query = ''\n}: {\n productId: number\n skip?: number\n limit?: number\n query?: string\n}): Promise<IProductDetailsResponse> => {\n const { data } = await api.get<IProductDetailsResponse>(`/product/variants/${productId}`, {\n params: {\n skip: skip.toString(),\n limit: limit.toString(),\n ...(query && { query })\n }\n })\n return data\n}\n\nexport const getProductVariantsForSelect = async ({\n productId\n}: {\n productId: number\n}): Promise<IProductDetails[]> => {\n const { data } = await api.get<IProductDetails[]>(`/product/variants/select/${productId}`)\n return data\n}\n\nexport const getProductVariantById = async ({\n productDetailId\n}: {\n productDetailId: number\n}): Promise<IProductDetails> => {\n const { data } = await api.get<IProductDetails>(`/product/variants/variant/${productDetailId}`)\n return data\n}\n\nexport const createProductVariant = async (variant: FormData): Promise<IProductDetails> => {\n const { data } = await api.post<IProductDetails>('product/variants', variant, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const createProductVariants = async (formData: FormData): Promise<IProductDetails[]> => {\n const { data } = await api.post<IProductDetails[]>('product/variants', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const updateProductVariant = async (data: FormData): Promise<IProductDetails> => {\n const { data: response } = await api.put<IProductDetails>(\n `product/variants/update/${data.get('productDetailID')}`,\n data,\n {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n }\n )\n return response\n}\n\nexport const deleteProductVariant = async ({\n productDetailId\n}: {\n productDetailId: number\n}): Promise<void> => {\n await api.delete(`/product/variants/${productDetailId}`)\n}\n\nexport const restoreProductVariant = async ({\n productDetailId\n}: {\n productDetailId: number\n}): Promise<void> => {\n await api.patch(`/product/variants/${productDetailId}`)\n}\n\nexport const createProduct = async (product: FormData): Promise<IProduct> => {\n const { data } = await api.post<IProduct>('product/', product, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const updateProduct = async ({\n productId,\n product\n}: {\n productId: number\n product: FormData\n}): Promise<IProduct> => {\n const { data } = await api.put<IProduct>(`/product/${productId}`, product, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const deleteImageFromProduct = async ({\n imageId\n}: {\n imageId: number\n}): Promise<void> => {\n await api.delete(`/product/images/${imageId}`)\n}\n\nexport const deleteProduct = async ({ productId }: { productId: number }): Promise<void> => {\n await api.delete(`/product/${productId}`)\n}\n\nexport const restoreProduct = async ({ productId }: { productId: number }): Promise<void> => {\n await api.patch(`/product/${productId}`)\n}\n\nexport const getProductsByCategory = async ({\n category,\n skip = 0,\n limit = 10,\n filters\n}: CategoryQuery): Promise<IProductResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip.toString(),\n limit: limit.toString(),\n ...(filters?.query && { query: filters.query }),\n ...(filters?.batchId && { batchId: filters.batchId }),\n ...(filters?.supplierId && { supplierId: filters.supplierId.toString() }),\n ...(filters?.warehouseId && { warehouseId: filters.warehouseId.toString() }),\n ...(filters?.priceRangeMin && { minPrice: filters.priceRangeMin.toString() }),\n ...(filters?.priceRangeMax && { maxPrice: filters.priceRangeMax.toString() })\n })\n\n const { data } = await api.get<IProductResponse>(`product/category/${category}?${queryParams}`)\n return data\n}\n\nexport interface PrintProductTagResponse {\n message?: string\n [key: string]: unknown\n}\n\nexport const printProductTag = async ({\n stockId,\n productId,\n isSmall\n}: {\n stockId: number\n productId: number\n isSmall: boolean\n}): Promise<PrintProductTagResponse> => {\n const { data } = await api.post<PrintProductTagResponse>(`/product/printproducttag/`, {\n stockID: stockId,\n productID: productId,\n isSmall\n })\n return data\n}\n","import type { ITag } from '../interfaces/tag.interface'\nimport { api } from './config'\n\nexport const getAllTags = async (): Promise<ITag[]> => {\n const { data } = await api.get<{ data: ITag[] }>('/product-tag')\n return data.data\n}\n","import type {\n IPromotion,\n IPromotionResponse,\n IPromotionType\n} from '../interfaces/promotion.interface'\nimport { api } from './config'\n\nexport const isAValidDiscountCode = async ({\n discountCode\n}: {\n discountCode: string\n}): Promise<boolean> => {\n const { data } = await api.post('promotion/discount-code', { discountCode })\n return data.isValid\n}\n\ninterface PromotionQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport const getPromotions = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: PromotionQuery): Promise<IPromotionResponse> => {\n const queryParams = new URLSearchParams({\n skip: skip.toString(),\n limit: limit.toString(),\n query: query\n })\n const { data } = await api.get(`promotion?${queryParams}`)\n return data\n}\n\nexport const getPromotionsTypeForSelect = async (): Promise<IPromotionType[]> => {\n const { data } = await api.get('promotion/promotions-type/select')\n return data\n}\n\nexport const createPromotion = async (promotion: IPromotion): Promise<IPromotion> => {\n const { data } = await api.post('promotion', promotion)\n return data\n}\n\nexport const getPromotionById = async ({ id }: { id: string }): Promise<IPromotion> => {\n const { data } = await api.get(`promotion/${id}`)\n return data\n}\n\nexport const updatePromotion = async ({\n id,\n promotion\n}: {\n id: string\n promotion: IPromotion\n}): Promise<IPromotion> => {\n const { data } = await api.put(`promotion/${id}`, promotion)\n return data\n}\n","import type {\n IProvider,\n IProviderForSelect,\n IProviderRequest,\n IProviderResponse\n} from '../interfaces/provider.interface'\nimport { api } from './config'\n\nexport const getAllProviders = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: {\n skip: number\n limit: number\n query?: string\n}): Promise<IProviderResponse> => {\n const { data } = await api.get<IProviderResponse>(\n `provider/?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getProviderById = async ({\n providerId\n}: {\n providerId: number\n}): Promise<IProvider> => {\n const { data } = await api.get<IProvider>(`provider/${providerId}`)\n return data\n}\n\nexport const getProvidersForSelect = async (): Promise<IProviderForSelect[]> => {\n const { data } = await api.get<IProviderForSelect[]>('provider/providersForSelect')\n return data\n}\n\nexport const createProvider = async (provider: IProviderRequest): Promise<IProviderResponse> => {\n const { data } = await api.post<IProviderResponse>('provider/', provider)\n return data\n}\n\nexport const updateProvider = async ({\n providerId,\n provider\n}: {\n providerId: string\n provider: IProvider\n}): Promise<IProviderResponse> => {\n const { data } = await api.put<IProviderResponse>(`provider/${providerId}`, provider)\n return data\n}\n\nexport const deleteProvider = async ({\n providerId\n}: {\n providerId: number\n}): Promise<IProviderResponse> => {\n const { data } = await api.delete<IProviderResponse>(`provider/${providerId}`)\n return data\n}\n\nexport const restoreProvider = async ({\n providerId\n}: {\n providerId: number\n}): Promise<IProviderResponse> => {\n const { data } = await api.patch<IProviderResponse>(`provider/${providerId}`)\n return data\n}\n","import { api } from './config'\n\nexport interface QRBaseUrlResponse {\n success: boolean\n baseUrl: string\n}\n\nexport interface PrintQRResponse {\n success?: boolean\n message?: string\n data?: {\n url?: string\n productDetailID?: number\n printerResult?: boolean\n }\n [key: string]: unknown\n}\n\n/**\n * Obtiene la URL base configurada para los códigos QR (QR_BASE_URL del backend).\n */\nexport const getQRBaseUrl = async (): Promise<string> => {\n const { data } = await api.get<QRBaseUrlResponse>('/qr/base-url')\n return data?.baseUrl ?? ''\n}\n\n/**\n * Imprime un código QR en la impresora térmica.\n * El backend construye la URL: {QR_BASE_URL}/producto/{productDetailID}\n */\nexport const printQR = async ({\n productDetailId,\n printerName = '4BARCODE'\n}: {\n productDetailId: number\n printerName?: string\n}): Promise<PrintQRResponse> => {\n const { data } = await api.post<PrintQRResponse>('/qr/print', {\n productDetailID: productDetailId,\n printerName\n })\n return data\n}\n","import type {\n ComparisonBy,\n IReportComparisonByTimeFrame,\n IReportInventory,\n IReportX,\n IReportZ,\n IStockByWarehouseReport\n} from '../interfaces/report.interface'\nimport { api } from './config'\n\nexport const getStockByWarehouseReport = async ({\n limit = 2,\n allWarehouses = false\n}: {\n limit: number\n allWarehouses: boolean\n}): Promise<IStockByWarehouseReport[]> => {\n const response = await api.get(`/report?limit=${limit}&allWarehouses=${allWarehouses}`)\n return response.data\n}\n\nexport const getReportX = async ({\n startDate,\n sellerID,\n isShiftChange = false\n}: {\n startDate: string\n sellerID: number\n isShiftChange: boolean\n}): Promise<IReportX> => {\n const response = await api.get(\n `/report/report-x?startDate=${startDate}&sellerID=${sellerID}&isShiftChange=${isShiftChange}`\n )\n return response.data\n}\n\nexport const printReportX = async ({\n startDate,\n sellerID\n}: {\n startDate: string\n sellerID: number\n}): Promise<boolean> => {\n const response = await api.get(\n `/report/printReport-x?startDate=${startDate}&sellerID=${sellerID}`\n )\n return response.data\n}\n\nexport const getReportComparisonByTimeFrame = async ({\n startDate,\n endDate,\n comparisonBy,\n productIds\n}: {\n startDate: Date\n endDate: Date\n comparisonBy: ComparisonBy\n productIds: string[]\n}): Promise<IReportComparisonByTimeFrame> => {\n const response = await api.get(\n `/report/comparison?startDate=${startDate.toISOString()}&endDate=${endDate.toISOString()}&comparisonBy=${comparisonBy}&productIds=${productIds}`\n )\n return response.data\n}\n\nexport const getReportByInventory = async ({\n productIDs,\n categoryIDs,\n warehouseIDs,\n providerIDs\n}: {\n productIDs: number[] | null\n categoryIDs: number[] | null\n warehouseIDs: number[] | null\n providerIDs: number[] | null\n}): Promise<IReportInventory[]> => {\n const params = new URLSearchParams()\n \n if (productIDs && productIDs.length > 0) {\n params.append('productIDs', productIDs.join(','))\n }\n if (categoryIDs && categoryIDs.length > 0) {\n params.append('categoryIDs', categoryIDs.join(','))\n }\n if (warehouseIDs && warehouseIDs.length > 0) {\n params.append('warehouseIDs', warehouseIDs.join(','))\n }\n if (providerIDs && providerIDs.length > 0) {\n params.append('providerIDs', providerIDs.join(','))\n }\n\n const queryString = params.toString()\n const url = `/report/inventory${queryString ? `?${queryString}` : ''}`\n \n const response = await api.get(url)\n return response.data\n}\n\nexport const getReportZ = async ({\n startDate,\n sellerID,\n isShiftChange = false\n}: {\n startDate: string\n sellerID: number\n isShiftChange: boolean\n}): Promise<IReportZ> => {\n const response = await api.get(\n `/report/report-z?startDate=${startDate}&sellerID=${sellerID}&isShiftChange=${isShiftChange}`\n )\n return response.data\n}\n\nexport const printReportZ = async ({\n startDate,\n sellerID\n}: {\n startDate: string\n sellerID: number\n}): Promise<boolean> => {\n const response = await api.get(\n `/report/printReport-z?startDate=${startDate}&sellerID=${sellerID}`\n )\n return response.data\n}\n\nexport const checkPendingReportZ = async (): Promise<Date[]> => {\n const response = await api.get('/report/pending-report-z')\n return response.data\n}\n","import type { TblOrderDetail, TblReturn } from '../interfaces/order.interface'\nimport { api } from './config'\n\nexport const createReturn = async ({\n orderId,\n returnReason,\n orderDetails,\n warehouseDestinationID\n}: {\n orderId: number\n returnReason: string\n orderDetails: TblOrderDetail[]\n warehouseDestinationID: number\n}): Promise<void> => {\n const response = await api.post(`/returns`, {\n orderId,\n returnReason,\n orderDetails,\n warehouseDestinationID\n })\n return response.data\n}\n\nexport interface GetReturnsByOrderIdResponse {\n message: string\n data: TblReturn[]\n}\n\nexport const getReturnsByOrderId = async ({\n orderId\n}: {\n orderId: number\n}): Promise<GetReturnsByOrderIdResponse> => {\n const response = await api.get(`/returns/order/${orderId}`)\n return response.data\n}\n","import type { IRole } from '../interfaces/role.interface'\nimport { api } from './config'\n\nexport const getRoles = async (): Promise<IRole[]> => {\n const response = await api.get('/role')\n return response.data\n}\n\nexport const getRoleByID = async ({\n roleId\n}: {\n roleId: number\n}): Promise<IRole> => {\n const response = await api.get(`/role/${roleId}`)\n return response.data\n}\n\nexport const createRole = async (role: IRole): Promise<IRole> => {\n const response = await api.post('/role', role)\n return response.data\n}\n\nexport const updateRole = async ({\n roleId,\n role\n}: {\n roleId: number\n role: IRole\n}): Promise<IRole> => {\n const response = await api.put(`/role/${roleId}`, role)\n return response.data\n}\n\nexport const deleteRole = async ({\n roleId\n}: {\n roleId: number\n}): Promise<void> => {\n await api.delete(`/role/${roleId}`)\n}\n","import type { IStockMovement, IStockMovementResponse } from '../interfaces/stockmovement.interface'\nimport { api } from './config'\n\ninterface MovementQuery {\n skip?: number\n limit?: number\n query?: string\n movementType?: number\n}\n\nexport interface MovementResponse {\n stockMovementID: number\n quantity: number\n addressID: number\n isOpen: boolean\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport const createMovement = async (movement: FormData): Promise<IStockMovement> => {\n const { data } = await api.post<IStockMovement>('movement/', movement, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\n// export const getAllLocations = async (): Promise<LocationResponse[]> => {\n// const { data } = await api.get<LocationResponse[]>('location/')\n// return data\n// }\n\n// export const getLocationsForSelect = async (): Promise<LocationResponse[]> => {\n// const { data } = await api.get<LocationResponse[]>('location/locationsForSelect')\n// return data\n// }\n\nexport const getMovements = async ({\n skip = 0,\n limit = 10,\n query = '',\n movementType = 1\n}: MovementQuery): Promise<IStockMovementResponse> => {\n const { data } = await api.get<IStockMovementResponse>(\n `movement/movements?skip=${skip}&limit=${limit}&query=${query}&movementTypeID=${movementType}`\n )\n return data\n}","import { api } from './config'\n\nexport interface Response {\n status: boolean\n httpStatus: number\n message: string\n data: unknown\n}\n\ninterface CloseShiftData {\n sellerID: number\n date: string\n paymentMethods: {\n paymentMethodId: number\n amount: number\n }[]\n cashBreakdown?: {\n coinsTotal: number\n bills: {\n denomination: number\n quantity: number\n }[]\n }\n}\n\nexport const closeShift = async (data: CloseShiftData): Promise<Response> => {\n const response = await api.post<Response>('/shift/close', data, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n return response.data\n}\n\nexport const makeNewCashMovement = async ({\n userID,\n amount,\n comment,\n isWithdrawal\n}: {\n userID: number | undefined\n amount: number\n comment?: string\n isWithdrawal: boolean\n}): Promise<Response> => {\n const { data } = await api.post<Response>(\n 'shift/cashmovement',\n {\n userID,\n amount,\n comment,\n isWithdrawal\n },\n {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n return data\n}\n\nexport const setNewShift = async ({\n userID,\n initialCash\n}: {\n userID: number | undefined\n initialCash: number\n}): Promise<Response> => {\n const { data } = await api.post<Response>(\n 'shift/',\n {\n userID,\n initialCash\n },\n {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n )\n return data\n}\n","import { api } from './config'\n\nexport interface StateResponse {\n stateID: number\n state: string\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport const getAllStates = async (): Promise<StateResponse[]> => {\n const { data } = await api.get<StateResponse[]>('state/')\n return data\n}\n","import type { ITax } from '../interfaces/tax.interface'\nimport { api } from './config'\n\nexport const getTaxesForSelect = async (): Promise<ITax[]> => {\n const { data } = await api.get<ITax[]>('tax/taxesForSelect')\n return data\n}\n","import type { AgentResponse, IUser, IUserForm, UserResponse } from '../interfaces/user.interface'\nimport { api } from './config'\n\ninterface UserQuery {\n skip?: number\n limit?: number\n query?: string\n roleId?: string\n}\n\nexport const getSellersWithShift = async (): Promise<AgentResponse> => {\n const { data } = await api.get<AgentResponse>(`user/getSellersWithShift/`)\n return data\n}\n\nexport const getSellersOfDayForSelect = async ({\n date\n}: {\n date: string\n}): Promise<AgentResponse> => {\n const { data } = await api.get<AgentResponse>(`user/getSellersOfDayForSelect/${date}`)\n return data\n}\n\nexport const getAllAgents = async (): Promise<AgentResponse> => {\n const { data } = await api.get<AgentResponse>('user/getallagents')\n return data\n}\n\nexport const getUsers = async ({\n skip = 0,\n limit = 10,\n query = '',\n roleId,\n}: UserQuery): Promise<UserResponse> => {\n const params = new URLSearchParams({\n skip: String(skip),\n limit: String(limit),\n ...(query && { query }),\n ...(roleId && { roleId }),\n });\n const { data } = await api.get<UserResponse>(`user/?${params}`)\n return data\n}\n\nexport const getUserById = async ({ userId }: { userId: number }): Promise<IUser> => {\n const { data } = await api.get<IUser>(`user/${userId}`)\n return data\n}\n\nexport const createUser = async ({ user }: { user: IUserForm }): Promise<void> => {\n await api.post('user/', user)\n}\n\nexport const updateUser = async ({\n userId,\n user\n}: {\n userId: number\n user: IUserForm\n}): Promise<void> => {\n await api.put(`user/${userId}`, user)\n}\n\nexport const deleteUser = async ({ userId }: { userId: number }): Promise<void> => {\n await api.delete(`user/${userId}`)\n}\nexport const restoreUser = async ({ userId }: { userId: number }): Promise<void> => {\n await api.patch(`user/${userId}`)\n}\n","import type { IWareHouse, IWareHouseResponse } from '../interfaces/warehouse.interface'\nimport { api } from './config'\n\ninterface WareHouseQuery {\n skip?: number\n limit?: number\n query?: string\n}\n\nexport interface WarehouseResponse {\n wareHouseID: number\n wareHouse: string\n wareHouseWithLocation: string\n physicialLocationID: number\n isShowroom: boolean\n syncStatusID: number\n masterCodeID: null\n savedBy: null\n savedDate: null\n deletedBy: null\n deletedDate: null\n}\n\nexport const getWarehousesForSelect = async (): Promise<WarehouseResponse[]> => {\n const { data } = await api.get<WarehouseResponse[]>('warehouse/warehousesForSelect')\n return data\n}\n\nexport const getWarehouses = async ({\n skip = 0,\n limit = 10,\n query = ''\n}: WareHouseQuery): Promise<IWareHouseResponse> => {\n const { data } = await api.get<IWareHouseResponse>(\n `warehouse/warehouses?skip=${skip}&limit=${limit}&query=${query}`\n )\n return data\n}\n\nexport const getWarehouseById = async ({\n warehouseId\n}: {\n warehouseId: number\n}): Promise<IWareHouse> => {\n const { data } = await api.get(`/warehouse/${warehouseId}`)\n return data.data\n}\n\nexport const updateWarehouse = async ({\n warehouseId,\n warehouse\n}: {\n warehouseId: number\n warehouse: FormData\n}): Promise<IWareHouse> => {\n const { data } = await api.put<IWareHouse>(`/warehouse/${warehouseId}`, warehouse, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const createWareHouse = async (warehouse: FormData): Promise<IWareHouse> => {\n const { data } = await api.post<IWareHouse>('warehouse/', warehouse, {\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n })\n return data\n}\n\nexport const deleteWarehouse = async ({\n warehouseId\n}: {\n warehouseId: number\n}): Promise<void> => {\n await api.delete(`/warehouse/${warehouseId}`)\n}\n\nexport const restoreWarehouse = async ({\n warehouseId\n}: {\n warehouseId: number\n}): Promise<void> => {\n await api.patch(`/warehouse/${warehouseId}`)\n}\n"]}
@@ -3,7 +3,7 @@ import * as _tanstack_react_query from '@tanstack/react-query';
3
3
  import { QueryClient, UseMutationOptions } from '@tanstack/react-query';
4
4
  import { k as IFilterType, n as IProductDetailsResponse, o as IProductResponse, l as IProduct, m as IProductDetails } from './filters.interface-BwMi9FRP.js';
5
5
  import { v as IOrderResponse, u as IOrder, am as TblOrderStatus, m as IGender } from './warehouse.interface-S5seQY-_.js';
6
- import { a as ChangeProductResponse, C as ChangeProductRequest, R as Response } from './warehouse.service-C51KYjQB.js';
6
+ import { a as ChangeProductResponse, C as ChangeProductRequest, R as Response } from './warehouse.service-CV2UDqAD.js';
7
7
 
8
8
  interface ProductQueryParams {
9
9
  skip?: number;
@@ -20,6 +20,7 @@ declare const getBatchesForSelect: () => Promise<IBatch[]>;
20
20
  declare const getBatches: ({ skip, limit, query, productId }: BatchQuery) => Promise<IBatchResponse>;
21
21
  declare const createBatch: (batch: FormData) => Promise<IBatch>;
22
22
  declare const createBatchAndUpdateOtherBatches: (batch: FormData) => Promise<IBatch>;
23
+ declare const getBatchById: (batchId: number) => Promise<IBatch>;
23
24
  declare const getMatchedBatches: ({ productDetailId }: {
24
25
  productDetailId: number;
25
26
  }) => Promise<IBatch[]>;
@@ -295,4 +296,4 @@ declare const restoreWarehouse: ({ warehouseId }: {
295
296
  warehouseId: number;
296
297
  }) => Promise<void>;
297
298
 
298
- export { login as $, getLocations as A, getLocationsForSelect as B, type ChangeProductRequest as C, getMatchedBatches as D, getMaterialById as E, getMaterials as F, type GetReturnsByOrderIdResponse as G, getMaterialsForSelect as H, type IExchange as I, getOrderById as J, getOrders as K, type LocationResponse as L, type MaterialResponse as M, getOrdersStatusForSelect as N, getPaymentTypes as O, type PaymentType as P, type QRBaseUrlResponse as Q, type Response as R, type StateResponse as S, getPermissionRoleByRoleID as T, type UpdateBatchData as U, getQRBaseUrl as V, type WarehouseResponse as W, getReturnsByOrderId as X, getWarehouseById as Y, getWarehouses as Z, getWarehousesForSelect as _, type ChangeProductResponse as a, makeNewCashMovement as a0, printQR as a1, restoreLocation as a2, restoreWarehouse as a3, setNewShift as a4, undeleteMaterial as a5, updateBatch as a6, updateLocation as a7, updateMaterial as a8, updatePermission as a9, updateWarehouse as aa, type IExchangeResponse as b, type IUpdatePermission as c, type LoginResponse as d, type PrintQRResponse as e, changeOrderProduct as f, closeShift as g, createBatch as h, createBatchAndUpdateOtherBatches as i, createExchangeRate as j, createLocation as k, createMaterial as l, createReturn as m, createWareHouse as n, deleteLocation as o, deleteMaterial as p, deleteWarehouse as q, getAllLocations as r, getAllMaterials as s, getAllPermissions as t, getAllStates as u, getBatches as v, getBatchesForSelect as w, getExchangeRate as x, getExchangeRates as y, getLocationById as z };
299
+ export { getWarehousesForSelect as $, getLocationById as A, getLocations as B, type ChangeProductRequest as C, getLocationsForSelect as D, getMatchedBatches as E, getMaterialById as F, type GetReturnsByOrderIdResponse as G, getMaterials as H, type IExchange as I, getMaterialsForSelect as J, getOrderById as K, type LocationResponse as L, type MaterialResponse as M, getOrders as N, getOrdersStatusForSelect as O, type PaymentType as P, type QRBaseUrlResponse as Q, type Response as R, type StateResponse as S, getPaymentTypes as T, type UpdateBatchData as U, getPermissionRoleByRoleID as V, type WarehouseResponse as W, getQRBaseUrl as X, getReturnsByOrderId as Y, getWarehouseById as Z, getWarehouses as _, type ChangeProductResponse as a, login as a0, makeNewCashMovement as a1, printQR as a2, restoreLocation as a3, restoreWarehouse as a4, setNewShift as a5, undeleteMaterial as a6, updateBatch as a7, updateLocation as a8, updateMaterial as a9, updatePermission as aa, updateWarehouse as ab, type IExchangeResponse as b, type IUpdatePermission as c, type LoginResponse as d, type PrintQRResponse as e, changeOrderProduct as f, closeShift as g, createBatch as h, createBatchAndUpdateOtherBatches as i, createExchangeRate as j, createLocation as k, createMaterial as l, createReturn as m, createWareHouse as n, deleteLocation as o, deleteMaterial as p, deleteWarehouse as q, getAllLocations as r, getAllMaterials as s, getAllPermissions as t, getAllStates as u, getBatchById as v, getBatches as w, getBatchesForSelect as x, getExchangeRate as y, getExchangeRates as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erp-pos-ecommerce-shared",
3
- "version": "0.2.18",
3
+ "version": "0.2.19",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "repository": {