import { get, post, put, del } from './client'; // Define your data types here export type User = { id: number; name: string; email: string; }; export type CreateUserRequest = { name: string; email: string; password: string; }; // User endpoints export const getUser = () => get('/api/user'); // Event types export type Event = { id: string; title: string; description: string; start: string; end: string; allDay: boolean; }; export type CreateEventRequest = { title: string; description?: string; start: string; end: string; allDay?: boolean; }; // Event endpoints export const getEvents = () => get('/api/events'); export const getEvent = (id: string) => get(`/api/events/${id}`); export const createEvent = (data: CreateEventRequest) => post('/api/events', data); export const updateEvent = (id: string, data: Partial) => put(`/api/events/${id}`, data); export const deleteEvent = (id: string) => del(`/api/events/${id}`); // Event draft types export type GenerateDraftRequest = { input: string; }; export type EventDraft = { id: string; title: string; description: string; start: string | null; end: string | null; allDay: boolean; }; // Event draft endpoints export const generateDraft = (data: GenerateDraftRequest) => post('/api/events/generation', data); // Calendar types export type Calendar = { events: Event[]; }; // Calendar endpoints export const getCalendar = (start?: string, end?: string) => { const params = new URLSearchParams(); if (start) params.append('start', start); if (end) params.append('end', end); const queryString = params.toString(); return get(`/api/calendar${queryString ? `?${queryString}` : ''}`); }; // Health check endpoint export type PingResponse = { status: string; timestamp: number; }; export const ping = () => get('/api/ping');