import * as z from 'zod' export const unitConf = { msg: { placeholder: '--- pilih instalasi', search: 'kode, nama instalasi', empty: 'instalasi tidak ditemukan', }, items: [ { value: '1', label: 'Instalasi Medis', code: 'MED' }, { value: '2', label: 'Instalasi Keperawatan', code: 'NUR' }, { value: '3', label: 'Instalasi Administrasi', code: 'ADM' }, { value: '4', label: 'Instalasi Penunjang Non-Medis', code: 'SUP' }, { value: '5', label: 'Instalasi Pendidikan & Pelatihan', code: 'EDU' }, { value: '6', label: 'Instalasi Farmasi', code: 'PHA' }, { value: '7', label: 'Instalasi Radiologi', code: 'RAD' }, { value: '8', label: 'Instalasi Laboratorium', code: 'LAB' }, { value: '9', label: 'Instalasi Keuangan', code: 'FIN' }, { value: '10', label: 'Instalasi SDM', code: 'HR' }, { value: '11', label: 'Instalasi Teknologi Informasi', code: 'ITS' }, { value: '12', label: 'Instalasi Pemeliharaan & Sarana', code: 'MNT' }, { value: '13', label: 'Instalasi Gizi / Catering', code: 'CAT' }, { value: '14', label: 'Instalasi Keamanan', code: 'SEC' }, { value: '15', label: 'Instalasi Gawat Darurat', code: 'EMR' }, { value: '16', label: 'Instalasi Bedah Sentral', code: 'SUR' }, { value: '17', label: 'Instalasi Rawat Jalan', code: 'OUT' }, { value: '18', label: 'Instalasi Rawat Inap', code: 'INP' }, { value: '19', label: 'Instalasi Rehabilitasi Medik', code: 'REB' }, { value: '20', label: 'Instalasi Penelitian & Pengembangan', code: 'RSH' }, ], } export const schemaConf = z.object({ name: z .string({ required_error: 'Nama unit harus diisi', }) .min(1, 'Nama unit harus diisi'), code: z .string({ required_error: 'Kode unit harus diisi', }) .min(1, 'Kode unit harus diisi'), parentId: z.preprocess( (input: unknown) => { if (typeof input === 'string') { // Handle empty string case if (input.trim() === '') { return 0 } return Number(input) } return input }, z .number({ required_error: 'Instalasi induk harus dipilih', }) .refine((num) => num > 0, 'Instalasi induk harus dipilih'), ), })