Multiple form validation fixes

This commit is contained in:
Jorge Vargas 2025-03-10 22:22:52 -06:00
parent 20dd61881c
commit 0e6e08beb2
5 changed files with 55 additions and 55 deletions

View file

@ -1,4 +1,5 @@
import * as s from 'superstruct'
import { AlbumStatus } from '@prisma/client'
const LinkInput = s.object({
provider: s.string(),
@ -13,3 +14,25 @@ export const DownloadInput = s.object({
small: s.defaulted(s.boolean(), false),
links: s.defaulted(s.array(LinkInput), [])
})
export const CreateAlbum = s.object({
cover: s.instance(File),
title: s.optional(s.string()),
subTitle: s.optional(s.string()),
releaseDate: s.optional(s.string()),
label: s.optional(s.string()),
vgmdb: s.optional(s.string()),
description: s.optional(s.string()),
status: s.defaulted(s.enums(Object.values(AlbumStatus)), AlbumStatus.HIDDEN),
animations: s.defaulted(s.array(s.integer()), []),
artists: s.defaulted(s.array(s.string()), []),
categories: s.defaulted(s.array(s.string()), []),
classifications: s.defaulted(s.array(s.string()), []),
games: s.defaulted(s.array(s.string()), []),
platforms: s.defaulted(s.array(s.integer()), []),
discs: s.defaulted(s.array(s.object({ number: s.integer(), body: s.string() })), []),
downloads: s.defaulted(s.array(DownloadInput), []),
related: s.defaulted(s.array(s.number()), []),
stores: s.defaulted(s.array(s.object({ provider: s.string(), url: s.string() })), []),
request: s.optional(s.integer())
})