28 lines
803 B
TypeScript
28 lines
803 B
TypeScript
import * as z from "zod/v4";
|
|
|
|
export const imageUploadSchema = z.object({
|
|
file: z
|
|
.custom<FileList>()
|
|
.refine((files) => files instanceof FileList && files.length > 0, {
|
|
message: "Image file is required",
|
|
}),
|
|
})
|
|
|
|
export const imageSchema = z.object({
|
|
fileKey: z.string().min(1, "File key is required"),
|
|
originalFile: z.string().min(1, "Original file is required"),
|
|
nsfw: z.boolean(),
|
|
published: z.boolean(),
|
|
|
|
altText: z.string().optional(),
|
|
description: z.string().optional(),
|
|
fileType: z.string().optional(),
|
|
name: z.string().optional(),
|
|
slug: z.string().optional(),
|
|
type: z.string().optional(),
|
|
fileSize: z.number().optional(),
|
|
creationDate: z.date().optional(),
|
|
|
|
categoryIds: z.array(z.string()).optional(),
|
|
tagIds: z.array(z.string()).optional(),
|
|
}) |