import { ref } from 'vue' import { useApi } from './useApi' export function useCustomFields () { const { apiCall } = useApi() const customFieldValues = ref([]) const loading = ref(false) // Créer une valeur de champ personnalisé const createCustomFieldValue = async (customFieldValueData) => { try { const result = await apiCall('/custom-fields/values', { method: 'POST', body: JSON.stringify(customFieldValueData) }) return result } catch (error) { console.error('Erreur lors de la création de la valeur de champ personnalisé:', error) return { success: false, error } } } // Obtenir les valeurs de champs personnalisés pour une entité const getCustomFieldValuesByEntity = async (entityType, entityId) => { try { loading.value = true const result = await apiCall(`/custom-fields/values/${entityType}/${entityId}`, { method: 'GET' }) if (result.success) { customFieldValues.value = result.data } return result } catch (error) { console.error('Erreur lors de la récupération des valeurs de champs personnalisés:', error) return { success: false, error } } finally { loading.value = false } } // Mettre à jour une valeur de champ personnalisé const updateCustomFieldValue = async (id, updateData) => { try { const result = await apiCall(`/custom-fields/values/${id}`, { method: 'PATCH', body: JSON.stringify(updateData) }) return result } catch (error) { console.error('Erreur lors de la mise à jour de la valeur de champ personnalisé:', error) return { success: false, error } } } // Créer ou mettre à jour une valeur de champ personnalisé const upsertCustomFieldValue = async ( customFieldId, entityType, entityId, value, metadata = {}, ) => { try { const result = await apiCall('/custom-fields/values/upsert', { method: 'POST', body: JSON.stringify({ customFieldId, entityType, entityId, value, ...metadata }) }) return result } catch (error) { console.error('Erreur lors de la création/mise à jour de la valeur de champ personnalisé:', error) return { success: false, error } } } // Supprimer une valeur de champ personnalisé const deleteCustomFieldValue = async (id) => { try { const result = await apiCall(`/custom-fields/values/${id}`, { method: 'DELETE' }) return result } catch (error) { console.error('Erreur lors de la suppression de la valeur de champ personnalisé:', error) return { success: false, error } } } return { customFieldValues, loading, createCustomFieldValue, getCustomFieldValuesByEntity, updateCustomFieldValue, upsertCustomFieldValue, deleteCustomFieldValue } }