Files
simrsx-fe/app/schemas/person-address-relative.schema.ts
T
2025-10-08 00:03:36 +07:00

28 lines
772 B
TypeScript

import { z } from 'zod'
import { PersonAddressSchema } from './person-address.schema'
// Schema untuk alamat opsional ketika isSameAddress = '1'
const OptionalAddressSchema = PersonAddressSchema.partial()
// Schema untuk alamat required ketika isSameAddress = '0'
const RequiredAddressSchema = PersonAddressSchema
const PersonAddressRelativeSchema = z.discriminatedUnion('isSameAddress', [
z
.object({
isSameAddress: z.literal('1').default('1'),
})
.merge(OptionalAddressSchema),
z
.object({
isSameAddress: z.literal('0'),
})
.merge(RequiredAddressSchema),
])
type PersonAddressRelativeFormData = z.infer<typeof PersonAddressRelativeSchema>
export { PersonAddressRelativeSchema }
export type { PersonAddressRelativeFormData }