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

/**
 * Serviço especializado para gestão de contratos de experiência de colaboradores.
 */
const ENDPOINTS = {
    CONTRATOS: '/contrato/colaboradores',
    ESTATISTICAS: '/contrato/colaboradores/estatisticas'
};

export const rhExperienceContractService = {
    /**
     * Listagem de contratos de experiência
     */
    getContracts: (params = {}) => handleRequest({
        apiFn: async () => {
            const { data } = await api.get(`${ENDPOINTS.CONTRATOS}/apresentar`, { params });
            return data;
        }
    }),

    /**
     * Criar novo contrato de experiência
     */
    createContract: (payload) => handleRequest({
        apiFn: async () => {
            const { data } = await api.post(ENDPOINTS.CONTRATOS, payload);
            return data;
        }
    }),

    /**
     * Editar contrato de experiência
     */
    updateContract: (payload) => handleRequest({
        apiFn: async () => {
            const { data } = await api.put(`${ENDPOINTS.CONTRATOS}/edit`, payload);
            return data;
        }
    }),

    /**
     * Atualizar status global de um contrato (Kanban move)
     */
    updateGlobalStatus: (payload) => handleRequest({
        apiFn: async () => {
            const { data } = await api.put(`${ENDPOINTS.CONTRATOS}/edit/status_global`, payload);
            return data;
        }
    }),

    /**
     * Buscar estatísticas para o dashboard de contratos
     */
    getStatistics: (params = {}) => handleRequest({
        apiFn: async () => {
            const { data } = await api.get(ENDPOINTS.ESTATISTICAS, { params });
            return data;
        }
    })
};
