import { httpClient } from './base/http-client'; import { UserPreferences, KanbanFilters, ViewPreferences, ColumnVisibility } from '@/lib/types'; export interface UserPreferencesResponse { success: boolean; data?: UserPreferences; message?: string; error?: string; } export interface UserPreferencesUpdateResponse { success: boolean; message?: string; error?: string; } /** * Client HTTP pour les préférences utilisateur */ export const userPreferencesClient = { /** * Récupère toutes les préférences utilisateur */ async getPreferences(): Promise { const response = await httpClient.get('/user-preferences'); if (!response.success || !response.data) { throw new Error(response.error || 'Erreur lors de la récupération des préférences'); } return response.data; }, /** * Sauvegarde toutes les préférences utilisateur */ async savePreferences(preferences: UserPreferences): Promise { const response = await httpClient.put('/user-preferences', preferences); if (!response.success) { throw new Error(response.error || 'Erreur lors de la sauvegarde des préférences'); } }, /** * Met à jour les filtres Kanban */ async updateKanbanFilters(filters: Partial): Promise { const response = await httpClient.patch('/user-preferences/kanban-filters', filters); if (!response.success) { throw new Error(response.error || 'Erreur lors de la mise à jour des filtres Kanban'); } }, /** * Met à jour les préférences de vue */ async updateViewPreferences(preferences: Partial): Promise { const response = await httpClient.patch('/user-preferences/view-preferences', preferences); if (!response.success) { throw new Error(response.error || 'Erreur lors de la mise à jour des préférences de vue'); } }, /** * Met à jour la visibilité des colonnes */ async updateColumnVisibility(visibility: Partial): Promise { const response = await httpClient.patch('/user-preferences/column-visibility', visibility); if (!response.success) { throw new Error(response.error || 'Erreur lors de la mise à jour de la visibilité des colonnes'); } } };