import { api, apiURL } from '@Services/Api'; /** * Servicio para gestionar devoluciones */ const returnsService = { /** * Obtener lista de devoluciones con paginación * @param {Object} filters - Filtros de búsqueda (page, q, status, etc.) * @returns {Promise} */ async getReturns(filters = {}) { return new Promise((resolve, reject) => { api.get(apiURL('returns'), { params: filters, onSuccess: (response) => { resolve(response.returns || response.models || response); }, onError: (error) => { reject(error); } }); }); }, /** * Obtener detalle completo de una devolución con items y seriales * @param {Number} returnId - ID de la devolución * @returns {Promise} */ async getReturnDetails(returnId) { return new Promise((resolve, reject) => { api.get(apiURL(`returns/${returnId}`), { onSuccess: (response) => { resolve(response.return || response.model || response); }, onError: (error) => { reject(error); } }); }); }, /** * Obtener items devolvibles de una venta * @param {Number} saleId - ID de la venta * @returns {Promise} */ async getReturnableItems(saleId) { return new Promise((resolve, reject) => { api.get(apiURL(`sales/${saleId}/returnable`), { onSuccess: (response) => { resolve(response); }, onError: (error) => { reject(error); } }); }); }, /** * Crear una nueva devolución * @param {Object} returnData - Datos de la devolución * @returns {Promise} */ async createReturn(returnData) { return new Promise((resolve, reject) => { api.post(apiURL('returns'), { data: returnData, onSuccess: (response) => { resolve(response.return || response.model || response); }, onError: (error) => { reject(error); } }); }); }, /** * Cancelar una devolución * @param {Number} returnId - ID de la devolución * @returns {Promise} */ async cancelReturn(returnId) { return new Promise((resolve, reject) => { api.put(apiURL(`returns/${returnId}/cancel`), { onSuccess: (response) => { resolve(response.return || response.model || response); }, onError: (error) => { reject(error); } }); }); } }; export default returnsService;