chore: retire legacy model catalogs
This commit is contained in:
@@ -1,131 +0,0 @@
|
||||
import { ref, computed } from 'vue'
|
||||
import { useApi } from './useApi'
|
||||
import { useToast } from './useToast'
|
||||
|
||||
const pieceModelsBuckets = ref({})
|
||||
const loadingPieceModels = ref(false)
|
||||
|
||||
export function usePieceModels () {
|
||||
const { get, post, patch, delete: del } = useApi()
|
||||
const { showSuccess, showError } = useToast()
|
||||
|
||||
const loadPieceModels = async (typePieceId) => {
|
||||
loadingPieceModels.value = true
|
||||
try {
|
||||
const query = typePieceId ? `?typePieceId=${encodeURIComponent(typePieceId)}` : ''
|
||||
const result = await get(`/types/pieces/models${query}`)
|
||||
if (result.success) {
|
||||
const key = typePieceId || '__all__'
|
||||
pieceModelsBuckets.value = {
|
||||
...pieceModelsBuckets.value,
|
||||
[key]: result.data
|
||||
}
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
showError(`Impossible de charger les modèles de pièce: ${error.message}`)
|
||||
return { success: false, error: error.message }
|
||||
} finally {
|
||||
loadingPieceModels.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const createPieceModel = async (payload) => {
|
||||
loadingPieceModels.value = true
|
||||
try {
|
||||
const result = await post('/types/pieces/models', payload)
|
||||
if (result.success) {
|
||||
const key = result.data?.typePieceId || '__all__'
|
||||
const bucket = pieceModelsBuckets.value[key] || []
|
||||
pieceModelsBuckets.value = {
|
||||
...pieceModelsBuckets.value,
|
||||
[key]: [...bucket, result.data]
|
||||
}
|
||||
showSuccess(`Modèle de pièce "${result.data.name}" créé`)
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
showError(`Erreur lors de la création du modèle de pièce: ${error.message}`)
|
||||
return { success: false, error: error.message }
|
||||
} finally {
|
||||
loadingPieceModels.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const updatePieceModel = async (id, payload) => {
|
||||
loadingPieceModels.value = true
|
||||
try {
|
||||
const result = await patch(`/types/pieces/models/${id}`, payload)
|
||||
if (result.success) {
|
||||
const key = result.data?.typePieceId || '__all__'
|
||||
const bucket = pieceModelsBuckets.value[key] || []
|
||||
const updatedBucket = bucket.map(model =>
|
||||
model.id === id ? result.data : model
|
||||
)
|
||||
pieceModelsBuckets.value = {
|
||||
...pieceModelsBuckets.value,
|
||||
[key]: updatedBucket
|
||||
}
|
||||
showSuccess(`Modèle de pièce "${result.data.name}" mis à jour`)
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
showError(`Erreur lors de la mise à jour du modèle de pièce: ${error.message}`)
|
||||
return { success: false, error: error.message }
|
||||
} finally {
|
||||
loadingPieceModels.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const deletePieceModel = async (id) => {
|
||||
loadingPieceModels.value = true
|
||||
try {
|
||||
const result = await del(`/types/pieces/models/${id}`)
|
||||
if (result.success) {
|
||||
const updatedBuckets = {}
|
||||
for (const [key, bucket] of Object.entries(pieceModelsBuckets.value)) {
|
||||
updatedBuckets[key] = bucket.filter(model => model.id !== id)
|
||||
}
|
||||
pieceModelsBuckets.value = updatedBuckets
|
||||
showSuccess('Modèle de pièce supprimé')
|
||||
}
|
||||
return result
|
||||
} catch (error) {
|
||||
showError(`Erreur lors de la suppression du modèle de pièce: ${error.message}`)
|
||||
return { success: false, error: error.message }
|
||||
} finally {
|
||||
loadingPieceModels.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const allPieceModels = computed(() => {
|
||||
return Object.values(pieceModelsBuckets.value).reduce((acc, bucket) => {
|
||||
bucket.forEach((model) => {
|
||||
if (!acc.find(existing => existing.id === model.id)) {
|
||||
acc.push(model)
|
||||
}
|
||||
})
|
||||
return acc
|
||||
}, [])
|
||||
})
|
||||
|
||||
const getPieceModelsForType = (typePieceId) => {
|
||||
return pieceModelsBuckets.value[typePieceId] || []
|
||||
}
|
||||
|
||||
const getPieceModels = () => allPieceModels.value
|
||||
const isPieceModelLoading = () => loadingPieceModels.value
|
||||
|
||||
return {
|
||||
pieceModels: allPieceModels,
|
||||
pieceModelsBuckets,
|
||||
loadingPieceModels,
|
||||
loadPieceModels,
|
||||
createPieceModel,
|
||||
updatePieceModel,
|
||||
deletePieceModel,
|
||||
getPieceModels,
|
||||
getPieceModelsForType,
|
||||
isPieceModelLoading
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user