import { z } from "zod";

const optionalUrl = z.union([z.literal(""), z.url()]);

export const profileSchema = z.object({
  name: z.string().trim().min(3).max(120),
  title: z.string().trim().max(80),
  school: z.string().trim().max(160),
  department: z.string().trim().max(160),
  publicEmail: z.union([z.literal(""), z.email()]),
  bio: z.string().trim().max(2000),
  github: optionalUrl,
  youtube: optionalUrl,
  instagram: optionalUrl,
  linkedin: optionalUrl,
});

export const settingSchema = z.object({
  websiteName: z.string().trim().min(2).max(120),
  tagline: z.string().trim().min(5).max(191),
  footerText: z.string().trim().max(500),
  defaultTheme: z.enum(["light", "dark", "system"]),
});
