Files
simrsx-fe/app/schemas/installation-position.schema.ts
Khafid Prayoga dc653402c7 feat(installation-position): implement crud operations and ui components
- Add installation position handler, service, and schema
- Update list configuration and entry form components
- Enhance pagination component with configurable controls
- Implement installation position list view with search and pagination
2025-10-28 12:45:57 +07:00

21 lines
913 B
TypeScript

import { z } from 'zod'
import type { InstallationPosition } from '~/models/installation-position'
const InstallationPositionSchema = 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'),
headStatus: z.boolean().optional().nullable(),
installation_id: z.union([
z.string({ required_error: 'Instalasi Induk harus diisi' }),
z.number({ required_error: 'Instalasi Induk harus diisi' }),
]),
employee_id: z
.union([z.string({ required_error: 'Karyawan harus diisi' }), z.number({ required_error: 'Karyawan harus diisi' })])
.optional()
.nullable(),
})
type InstallationPositionFormData = z.infer<typeof InstallationPositionSchema> & Partial<InstallationPosition>
export { InstallationPositionSchema }
export type { InstallationPositionFormData }