Files
simrsx-fe/app/schemas/control-letter.schema.ts

41 lines
1.1 KiB
TypeScript

import { z } from 'zod'
const ControlLetterSchema = z.object({
sepStatus: z.string({
required_error: 'Mohon isi status SEP',
}),
SpesialisSubSpesialis: z.string({
required_error: 'Mohon isi status Spesialis/Sub Spesialis',
}),
dpjp: z.string({
required_error: 'Mohon isi status DPJP',
}),
controlDate: z.string({
required_error: 'Mohon lengkapi Tanggal Kontrol',
})
.refine(
(date) => {
// Jika kosong, return false untuk required validation
if (!date || date.trim() === '') return false
// Jika ada isi, validasi format tanggal
try {
const dateObj = new Date(date)
// Cek apakah tanggal valid dan tahun >= 1900
return !isNaN(dateObj.getTime()) && dateObj.getFullYear() >= 1900
} catch {
return false
}
},
{
message: 'Mohon lengkapi Tanggal Kontrol dengan format yang valid',
},
)
.transform((dateStr) => new Date(dateStr).toISOString()),
})
type ControlLetterFormData = z.infer<typeof ControlLetterSchema>
export { ControlLetterSchema }
export type { ControlLetterFormData }