import { z, defineCollection } from 'astro:content'

const taEntry = 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(),
})

const taInfo = defineCollection({
  type: 'data',
  schema: z.object({
    info: z.object({
      title: z.string(),
      releaseDate: z.string().transform((str) => new Date(str)),
      shortdescription: z.string(),
      releaseNumber: z.number().default(1),
    }),
    quests: z.array(
      z.object({
        questTitle: z.string(),
        description: z.string(),
        data: z.array(taEntry)
      })
    ),
  }),
})

export const collections = {
  taInfoData: taInfo,
}