File size: 1,059 Bytes
9853b20
 
 
 
 
 
 
2376294
 
 
 
 
 
 
 
 
 
 
9853b20
 
 
 
 
 
 
2376294
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
import { z } from 'zod'

export const loginSchema = z.object({
  email: z.string().email('Neplatný email formát'),
  password: z.string().min(6, 'Heslo musí mít alespoň 6 znaků')
})

export const registerSchema = z.object({
  email: z.string().email('Neplatný email formát'),
  password: z.string().min(6, 'Heslo musí mít alespoň 6 znaků'),
  confirmPassword: z.string(),
  fname: z.string().min(2, 'Jméno musí mít alespoň 2 znaky'),
  sname: z.string().min(2, 'Příjmení musí mít alespoň 2 znaky'),
  sex: z.enum(['female', 'male']).optional()
}).refine((data) => data.password === data.confirmPassword, {
  message: 'Hesla se neshodují',
  path: ['confirmPassword'],
})

export const codeSchema = z.object({
  code: z.string().length(5, 'Kód musí mít přesně 5 znaků').regex(/^[A-Z0-9]{5}$/, 'Kód může obsahovat pouze písmena A-Z a číslice 0-9')
})

export type LoginForm = z.infer<typeof loginSchema>
export type RegisterForm = z.infer<typeof registerSchema>
export type CodeForm = z.infer<typeof codeSchema>