const schema = z
.object({
email: z.string().email().optional(),
userName: z.string().optional(),
contactType: z.string(),
})
.refine((data) =>
data.contactType === 'email' && !data.email) ?
z.string().nonempty() : z.unknown()
});