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

import { glob } from 'astro/loaders';

const prompts = defineCollection({
  loader: glob({ pattern: '**/*.{md,mdx}', base: './src/content/prompts/' }),
  schema: z.object({
    title: z.string(),
    desc: z.string().max(200, {
      message: 'Description cannot be longer than 200 characters',
    }),
    date: z.date(),
    slug: z.string(),
    tags: z.array(z.string()).default([]),
    category: z.string().default('prompt'),
    sessionId: z.string().optional(),
    repository: z.string().optional(),
    branch: z.string().optional(),
    isDraft: z.boolean().optional(),
  }),
});

export const collections = {
  prompts,
};
