35 lines
		
	
	
	
		
			798 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			798 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(),
 | |
|   attachments: vine.array(
 | |
|     vine.object({
 | |
|       url: vine.string(),
 | |
|       name: vine.string().maxLength(255),
 | |
|     })
 | |
|   ).optional(),
 | |
| })
 | |
| 
 | |
| 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,
 | |
|   }),
 | |
| )
 | 
