30 lines
700 B
TypeScript
30 lines
700 B
TypeScript
import vine from '@vinejs/vine'
|
|
|
|
const colle = vine.object({
|
|
student: vine.string(),
|
|
examiner: vine.string(),
|
|
subject: vine.string(),
|
|
room: vine.string(),
|
|
grade: vine.number().min(-1).max(20).optional(),
|
|
content: vine.string().optional(),
|
|
comment: vine.string().optional(),
|
|
date: vine.date({ formats: ['iso8601'] }),
|
|
bjsecret: vine.string().optional(),
|
|
bjid: vine.string().optional(),
|
|
// TODO: Add attachments validation
|
|
})
|
|
|
|
const className = vine.string()
|
|
|
|
export const createColleValidator = vine.compile(vine.object({
|
|
colle,
|
|
className,
|
|
}))
|
|
|
|
|
|
export const createUpcomingCollesValidator = vine.compile(
|
|
vine.object({
|
|
colles: vine.array(colle),
|
|
className,
|
|
}),
|
|
)
|