Files
portfolio/src/content/schemas/profile.ts
Johan LEROY 7c7ff160eb first commit
2026-04-21 14:14:03 +02:00

36 lines
948 B
TypeScript

import { z } from 'zod';
export const ProfileSchema = z.object({
name: z.string(),
title: z.string(),
tagline: z.string(),
bio: z.string(),
available: z.boolean().default(false),
availableLabel: z.string().optional(),
hero: z.object({
photo: z.string(),
photos: z.array(z.string()).default([]),
roles: z.array(z.string()).default([]),
cta: z
.array(
z.object({
label: z.string(),
href: z.string(),
variant: z.enum(['primary', 'ghost']).default('primary'),
external: z.boolean().default(false),
}),
)
.default([]),
}),
socials: z.object({
email: z.string().email().optional(),
github: z.string().url().optional(),
gitea: z.string().url().optional(),
linkedin: z.string().url().optional(),
website: z.string().url().optional(),
}),
cv: z.string().optional(),
});
export type Profile = z.infer<typeof ProfileSchema>;