import apiClient from '../apiClient';
import type { PromocionDto } from '../../models/dtos/Suscripciones/PromocionDto';
import type { CreatePromocionDto, UpdatePromocionDto } from '../../models/dtos/Suscripciones/CreatePromocionDto';

const API_URL = '/promociones';

const getAllPromociones = async (soloActivas: boolean = true): Promise<PromocionDto[]> => {
    const response = await apiClient.get<PromocionDto[]>(`${API_URL}?soloActivas=${soloActivas}`);
    return response.data;
};

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

const createPromocion = async (data: CreatePromocionDto): Promise<PromocionDto> => {
    const response = await apiClient.post<PromocionDto>(API_URL, data);
    return response.data;
};

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

export default {
    getAllPromociones,
    getPromocionById,
    createPromocion,
    updatePromocion
};