import apiClient from '../apiClient';
import type { RitmoDto } from '../../models/dtos/Radios/RitmoDto';
import type { CreateRitmoDto } from '../../models/dtos/Radios/CreateRitmoDto';
import type { UpdateRitmoDto } from '../../models/dtos/Radios/UpdateRitmoDto';

const getAllRitmos = async (nombreFilter?: string): Promise<RitmoDto[]> => {
    const params: Record<string, string> = {};
    if (nombreFilter) params.nombre = nombreFilter; // El backend espera 'nombre'

    const response = await apiClient.get<RitmoDto[]>('/ritmos', { params });
    return response.data;
};

const getRitmoById = async (id: number): Promise<RitmoDto> => {
    const response = await apiClient.get<RitmoDto>(`/ritmos/${id}`);
    return response.data;
};

const createRitmo = async (data: CreateRitmoDto): Promise<RitmoDto> => {
    const response = await apiClient.post<RitmoDto>('/ritmos', data);
    return response.data;
};

const updateRitmo = async (id: number, data: UpdateRitmoDto): Promise<void> => {
    await apiClient.put(`/ritmos/${id}`, data);
};

const deleteRitmo = async (id: number): Promise<void> => {
    await apiClient.delete(`/ritmos/${id}`);
};

const ritmoService = {
    getAllRitmos,
    getRitmoById,
    createRitmo,
    updateRitmo,
    deleteRitmo,
};

export default ritmoService;