import apiClient from './client' export interface SettingCategoryRef { key: string label: string } export interface SettingCategorySummary { key: string label: string description: string items: number } export interface SettingChoice { value: unknown label: string description?: string | null } export interface SettingHint { description: string format: string example: string warning: string } export interface SettingDefinition { key: string name: string category: SettingCategoryRef type: string is_optional: boolean current: unknown original: unknown has_override: boolean read_only: boolean choices: SettingChoice[] hint?: SettingHint | null } export const adminSettingsApi = { // Get list of setting categories getCategories: async (): Promise => { const response = await apiClient.get('/cabinet/admin/settings/categories') return response.data }, // Get all settings or settings for a specific category getSettings: async (categoryKey?: string): Promise => { const params = categoryKey ? { category_key: categoryKey } : {} const response = await apiClient.get('/cabinet/admin/settings', { params }) return response.data }, // Get a specific setting by key getSetting: async (key: string): Promise => { const response = await apiClient.get(`/cabinet/admin/settings/${key}`) return response.data }, // Update a setting value updateSetting: async (key: string, value: unknown): Promise => { const response = await apiClient.put(`/cabinet/admin/settings/${key}`, { value }) return response.data }, // Reset a setting to default resetSetting: async (key: string): Promise => { const response = await apiClient.delete(`/cabinet/admin/settings/${key}`) return response.data }, }