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 export { PersonAddressRelativeSchema } export type { PersonAddressRelativeFormData }