Files
2026-03-29 11:18:31 +02:00

49 lines
1.3 KiB
TypeScript

import vine from '@vinejs/vine'
export const createCategoryValidator = vine.compile(
vine.object({
name: vine.string().unique(async (db, value) => {
const match = await db.from('categories').select('id').where('name', value).first()
return !match
}),
nameHu: vine.string().optional(),
nameEn: vine.string().optional(),
slug: vine.string().unique(async (db, value) => {
const match = await db.from('categories').select('id').where('slug', value).first()
return !match
}),
})
)
export const updateCategoryValidator = vine.compile(
vine.object({
id: vine.number(),
name: vine
.string()
.unique(async (db, value, field) => {
const match = await db
.from('categories')
.select('id')
.where('name', value)
.whereNot('id', field.data.id)
.first()
return !match
})
.optional(),
nameHu: vine.string().optional(),
nameEn: vine.string().optional(),
slug: vine
.string()
.unique(async (db, value, field) => {
const match = await db
.from('categories')
.select('id')
.where('slug', value)
.whereNot('id', field.data.id)
.first()
return !match
})
.optional(),
})
)