import * as z from "zod/v4"; export const socialSchema = z.object({ id: z.string().optional(), platform: z.string().min(1, "Platform is required"), handle: z.string().min(1, "Handle is required"), isPrimary: z.boolean(), isVisible: z.boolean(), link: z.string().optional(), }); export const artistSchema = z.object({ displayName: z.string().min(3, "Name is required. Min 3 characters."), slug: z.string().min(3, "Slug is required. Min 3 characters.").regex(/^[a-z]+$/, "Only lowercase letters are allowed (no numbers, spaces, or uppercase)"), nickname: z.string().optional(), source: z.string().optional(), description: z.string().optional(), socials: z.array(socialSchema).optional(), }).refine( (data) => { const socials = data.socials || []; return socials.filter((s) => s.isPrimary).length <= 1; }, { message: "Only one social can be primary", path: ["socials"], } );