Files
Muhammad Rifai f94b6d273a Feat Infra (#108)
* 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
2025-10-10 20:36:07 +07:00

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 }