fgo-ta-com-website/src/content/config.ts
2024-01-25 21:23:21 +01:00

39 lines
837 B
TypeScript

import { z, defineCollection } from 'astro:content'
// Individual TA entries
const entry = z.object({
title: z.string(),
link: z.string().url(),
date: z.string().transform((str) => new Date(str)),
servant: z.string(),
turns: z.string(),
runner: z.string(),
})
// Individual quest info block
const quest = z.object({
questTitle: z.string(),
description: z.string(),
data: z.array(entry)
})
// Basic info block for page
const info = z.object({
title: z.string(),
releaseDate: z.string().transform((str) => new Date(str)),
shortdescription: z.string(),
releaseNumber: z.number().default(1),
})
// Combined ta data collection schema
const taData = defineCollection({
type: 'data',
schema: z.object({
info: info,
quests: z.array(quest),
}),
})
export const collections = {
taInfoData: taData,
}