* fix: adjustment some schemas * fix(room): fixing integrate unit of room * feat(warehouse): modify form and integration * feat(counter): modify form and integration * feat(screen): add list, form and integration * feat(screen): add page for public screen * fix: add on reset state at list * fix: solve list of relation * feat(chamber): integrate form to api chamber * feat(bed): integrate form to api bed * fix: add searching function on list service * fix: rewrite style for dropdown and tree select * fix: add sort params * fix: add sort params on division + medicine * feat(division-position): layouting form + list * fix: add sort params for getValueList * chore: modify side menu style * chore: fix ui dashboard * feat(division-position): add content list * feat(division-position): add temporary page * feat(division-position): modify content and entry form
21 lines
855 B
TypeScript
21 lines
855 B
TypeScript
import { z } from 'zod'
|
|
import type { Infra } from '~/models/infra'
|
|
|
|
const InfraSchema = z.object({
|
|
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
|
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
|
infraGroup_code: z.string().min(1, 'Infra Group harus diisi'),
|
|
parent_id: z
|
|
.union([z.string({ required_error: 'Induk harus diisi' }), z.number({ required_error: 'Induk harus diisi' })])
|
|
.optional()
|
|
.nullable(),
|
|
specialist_id: z.union([z.string(), z.number()]).nullable().optional(),
|
|
subspecialist_id: z.union([z.string(), z.number()]).nullable().optional(),
|
|
unit_id: z.union([z.string(), z.number()]).nullable().optional(),
|
|
})
|
|
|
|
type InfraFormData = z.infer<typeof InfraSchema> & Partial<Infra>
|
|
|
|
export { InfraSchema }
|
|
export type { InfraFormData }
|