feat(content): add announcements and public news flows

This commit is contained in:
2026-02-12 20:08:08 +01:00
parent 994b33e081
commit dbf817c255
20 changed files with 1071 additions and 8 deletions

View File

@@ -0,0 +1,32 @@
import { z } from "zod"
export const announcementPlacementSchema = z.enum(["global_top", "homepage"])
export const createAnnouncementInputSchema = z.object({
title: z.string().min(1).max(180),
message: z.string().min(1).max(500),
placement: announcementPlacementSchema.default("global_top"),
priority: z.number().int().min(0).default(100),
ctaLabel: z.string().max(120).nullable().optional(),
ctaHref: z.string().max(500).nullable().optional(),
startsAt: z.date().nullable().optional(),
endsAt: z.date().nullable().optional(),
isVisible: z.boolean().default(true),
})
export const updateAnnouncementInputSchema = z.object({
id: z.string().uuid(),
title: z.string().min(1).max(180).optional(),
message: z.string().min(1).max(500).optional(),
placement: announcementPlacementSchema.optional(),
priority: z.number().int().min(0).optional(),
ctaLabel: z.string().max(120).nullable().optional(),
ctaHref: z.string().max(500).nullable().optional(),
startsAt: z.date().nullable().optional(),
endsAt: z.date().nullable().optional(),
isVisible: z.boolean().optional(),
})
export type AnnouncementPlacement = z.infer<typeof announcementPlacementSchema>
export type CreateAnnouncementInput = z.infer<typeof createAnnouncementInputSchema>
export type UpdateAnnouncementInput = z.infer<typeof updateAnnouncementInputSchema>

View File

@@ -1,5 +1,6 @@
import { z } from "zod"
export * from "./announcements"
export * from "./commissions"
export * from "./media"
export * from "./pages-navigation"