import api from '@/services/api';
import { handleRequest } from '@/services/serviceUtils';

const ENDPOINT_CLAIMS = '/sinistro_devolucao_venda_frota';

export const claimsService = {
  getClaims: () => handleRequest({
    apiFn: async () => {
      const { data } = await api.get(`${ENDPOINT_CLAIMS}/apresentar`);
      return data;
    }
  }),

  /**
   * Cria registro de Sinistro/Devolução/Venda.
   * Payload massivo inclui:
   * - Veículo: placa, chassi, renavam, modelo, fabricante, cor, ano_*, categoria, tipo_frota
   * - Operação: base, uf, dispatcher, coordenador, gestor, fiscal_operacao, atuacao
   * - Contrato: proprietario, contrato, primeira_locacao, data_limite
   * - Financeiro: valor_aluguel, valor_fipe
   * - Ocorrência: status (Desmobilizado, etc), obs, data_entrada, previsao, dias_parado
   * - Motorista/Rota: motorista, id_rota
   * - Preventiva: km_preventiva, km_atual, ultima_preventiva, prox_preventiva
   * - Flags: melifleet, geotab, sascar, pooltrack, t4s, cmou (?), d, u (?)
   */
  createClaim: (claimData) => handleRequest({
    apiFn: async () => {
      const { data } = await api.post(ENDPOINT_CLAIMS, claimData);
      return data;
    }
  }),

  /**
   * Atualiza registro.
   * @param {number} id - idsinistro_devolucao_frota
   */
  updateClaim: (id, claimData) => handleRequest({
    apiFn: async () => {
      const { data } = await api.put(`${ENDPOINT_CLAIMS}/${id}`, claimData);
      return data;
    }
  })
};
