Spaces:
Runtime error
Runtime error
File size: 1,689 Bytes
a126dda | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import { prisma } from '../../config/database.js'
import { AppError } from '../../lib/AppError.js'
export async function getFields(templateId) {
return prisma.templateField.findMany({
where: { templateId },
orderBy: { sortOrder: 'asc' },
})
}
export async function createField(templateId, data) {
const existing = await prisma.templateField.findUnique({
where: { templateId_key: { templateId, key: data.key } },
})
if (existing) throw new AppError('الحقل موجود بالفعل', 409, 'FIELD_EXISTS')
return prisma.templateField.create({
data: { ...data, templateId },
})
}
export async function updateField(id, data) {
const field = await prisma.templateField.findUnique({ where: { id } })
if (!field) throw new AppError('الحقل غير موجود', 404, 'FIELD_NOT_FOUND')
return prisma.templateField.update({ where: { id }, data })
}
export async function deleteField(id) {
const field = await prisma.templateField.findUnique({ where: { id } })
if (!field) throw new AppError('الحقل غير موجود', 404, 'FIELD_NOT_FOUND')
await prisma.templateField.delete({ where: { id } })
}
export async function reorderFields(templateId, orderedIds) {
const fields = await prisma.templateField.findMany({ where: { templateId }, select: { id: true } })
const validIds = new Set(fields.map(f => f.id))
const unknown = orderedIds.filter(id => !validIds.has(id))
if (unknown.length > 0) throw new AppError('بعض الحقول غير موجودة', 400, 'INVALID_IDS')
await prisma.$transaction(
orderedIds.map((id, index) =>
prisma.templateField.update({ where: { id }, data: { sortOrder: index } })
)
)
}
|