Files
old.cms.fellies.org/packages/content/src/pages-navigation.ts

58 lines
2.2 KiB
TypeScript

import { z } from "zod"
export const pageStatusSchema = z.enum(["draft", "published"])
export const createPageInputSchema = z.object({
title: z.string().min(1).max(180),
slug: z.string().min(1).max(180),
status: pageStatusSchema.default("draft"),
summary: z.string().max(500).nullable().optional(),
content: z.string().min(1),
seoTitle: z.string().max(180).nullable().optional(),
seoDescription: z.string().max(320).nullable().optional(),
})
export const updatePageInputSchema = z.object({
id: z.string().uuid(),
title: z.string().min(1).max(180).optional(),
slug: z.string().min(1).max(180).optional(),
status: pageStatusSchema.optional(),
summary: z.string().max(500).nullable().optional(),
content: z.string().min(1).optional(),
seoTitle: z.string().max(180).nullable().optional(),
seoDescription: z.string().max(320).nullable().optional(),
})
export const createNavigationMenuInputSchema = z.object({
name: z.string().min(1).max(180),
slug: z.string().min(1).max(180),
location: z.string().min(1).max(80).default("primary"),
isVisible: z.boolean().default(true),
})
export const createNavigationItemInputSchema = z.object({
menuId: z.string().uuid(),
label: z.string().min(1).max(180),
href: z.string().max(500).nullable().optional(),
pageId: z.string().uuid().nullable().optional(),
parentId: z.string().uuid().nullable().optional(),
sortOrder: z.number().int().min(0).default(0),
isVisible: z.boolean().default(true),
})
export const updateNavigationItemInputSchema = z.object({
id: z.string().uuid(),
label: z.string().min(1).max(180).optional(),
href: z.string().max(500).nullable().optional(),
pageId: z.string().uuid().nullable().optional(),
parentId: z.string().uuid().nullable().optional(),
sortOrder: z.number().int().min(0).optional(),
isVisible: z.boolean().optional(),
})
export type CreatePageInput = z.infer<typeof createPageInputSchema>
export type UpdatePageInput = z.infer<typeof updatePageInputSchema>
export type CreateNavigationMenuInput = z.infer<typeof createNavigationMenuInputSchema>
export type CreateNavigationItemInput = z.infer<typeof createNavigationItemInputSchema>
export type UpdateNavigationItemInput = z.infer<typeof updateNavigationItemInputSchema>