import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import * as calendarioApi from '../api/calendario'; import type { EventoCreate, EventoUpdate } from '@horux/shared'; export function useEventos(año: number, mes?: number) { return useQuery({ queryKey: ['calendario', año, mes], queryFn: () => calendarioApi.getEventos(año, mes), }); } export function useProximosEventos(dias = 30) { return useQuery({ queryKey: ['calendario-proximos', dias], queryFn: () => calendarioApi.getProximos(dias), }); } export function useCreateEvento() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (data: EventoCreate) => calendarioApi.createEvento(data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['calendario'] }); }, }); } export function useUpdateEvento() { const queryClient = useQueryClient(); return useMutation({ mutationFn: ({ id, data }: { id: number; data: EventoUpdate }) => calendarioApi.updateEvento(id, data), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['calendario'] }); }, }); } export function useDeleteEvento() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (id: number) => calendarioApi.deleteEvento(id), onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['calendario'] }); }, }); }