import apiClient from '../apiClient';
import type { CambioParadaDto } from '../../models/dtos/Distribucion/CambioParadaDto';
import type { CreateCambioParadaDto } from '../../models/dtos/Distribucion/CreateCambioParadaDto';
import type { UpdateCambioParadaDto } from '../../models/dtos/Distribucion/UpdateCambioParadaDto';

// Obtiene todos los registros de cambio de parada para un canillita.
const getParadasPorCanilla = async (idCanilla: number): Promise<CambioParadaDto[]> => {
    const response = await apiClient.get<CambioParadaDto[]>(`/canillas/${idCanilla}/paradas`);
    return response.data;
};

// Crea un nuevo registro de cambio de parada (y cierra el anterior si aplica en backend).
const createParada = async (idCanilla: number, data: CreateCambioParadaDto): Promise<CambioParadaDto> => {
    const response = await apiClient.post<CambioParadaDto>(`/canillas/${idCanilla}/paradas`, data);
    return response.data;
};

// Cierra la vigencia de una parada específica (actualiza VigenciaH).
// Nota: La ruta podría ser /paradas/{idRegistroParada}/cerrar si el idRegistroParada es globalmente único.
// O /canillas/{idCanilla}/paradas/{idRegistroParada}/cerrar si necesitas el contexto del canillita.
// Asumiré la ruta que usaste en el controlador: /api/paradas/{idRegistroParada}/cerrar
const cerrarParada = async (idRegistroParada: number, data: UpdateCambioParadaDto): Promise<void> => {
    await apiClient.put(`/paradas/${idRegistroParada}/cerrar`, data);
};

// Elimina un registro de cambio de parada (si se permite esta acción).
const deleteParada = async (idRegistroParada: number): Promise<void> => {
    await apiClient.delete(`/paradas/${idRegistroParada}`);
};


const cambioParadaService = {
    getParadasPorCanilla,
    createParada,
    cerrarParada,
    deleteParada,
};

export default cambioParadaService;