Files
sori.studio/server/utils/content-schema.js
2026-04-29 14:54:44 +09:00

35 lines
906 B
JavaScript

import { z } from 'zod'
export const postStatusSchema = z.enum(['published', 'draft', 'private'])
export const postSchema = z.object({
id: z.string().uuid(),
title: z.string().min(1),
slug: z.string().min(1),
content: z.string(),
excerpt: z.string().default(''),
featuredImage: z.string().nullable().default(null),
status: postStatusSchema,
publishedAt: z.string().nullable().default(null),
createdAt: z.string(),
updatedAt: z.string(),
tags: z.array(z.string()).default([])
})
export const pageSchema = z.object({
id: z.string().uuid(),
title: z.string().min(1),
slug: z.string().min(1),
content: z.string(),
featuredImage: z.string().nullable().default(null),
createdAt: z.string(),
updatedAt: z.string()
})
export const tagSchema = z.object({
id: z.string().uuid(),
name: z.string().min(1),
slug: z.string().min(1),
description: z.string().default('')
})