room reservation model, controller, seeder and migration files added

This commit is contained in:
Kiss Dávid
2026-04-01 12:13:38 +02:00
parent 821ec88882
commit b281724a1a
7 changed files with 330 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
import vine from '@vinejs/vine'
export const createReservationValidator = vine.compile(
vine.object({
roomId: vine.number().exists(async (db, value) => {
const room = await db.from('rooms').where('id', value).first()
return !!room
}),
customerName: vine.string().trim(),
customerPhone: vine.string().trim(),
guestsCount: vine.number().positive(),
startsAt: vine.string().trim(),
endsAt: vine.string().trim(),
notes: vine.string().trim().optional(),
})
)
export const updateReservationValidator = vine.compile(
vine.object({
id: vine.number(),
roomId: vine
.number()
.exists(async (db, value) => {
const room = await db.from('rooms').where('id', value).first()
return !!room
})
.optional(),
customerName: vine.string().trim().optional(),
customerPhone: vine.string().trim().optional(),
guestsCount: vine.number().positive().optional(),
startsAt: vine.string().trim().optional(),
endsAt: vine.string().trim().optional(),
status: vine.enum(['confirmed', 'cancelled']).optional(),
notes: vine.string().trim().optional(),
})
)
export const createRoomValidator = vine.compile(
vine.object({
name: vine.string().trim(),
capacity: vine.number().positive(),
description: vine.string().trim().optional(),
})
)
export const updateRoomValidator = vine.compile(
vine.object({
id: vine.number(),
name: vine.string().trim().optional(),
capacity: vine.number().positive().optional(),
description: vine.string().trim().optional(),
})
)