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

const redflags = defineCollection({
  loader: glob({ pattern: '**/*.md', base: './src/content/redflags' }),
  schema: z.object({
    id: z.string(),
    slug: z.string(),
    title: z.string(),
    shortTitle: z.string(),
    hook: z.string(),
    category: z.string(),
    riskLevel: z.enum(['low', 'medium', 'high']),
    visibleScreen: z.string(),
    redFlag: z.string(),
    whyItWorks: z.string(),
    saferMove: z.string(),
    ifAlreadyClicked: z.array(z.string()),
    checklist: z.array(z.string()),
    checklistDetails: z.array(z.object({
      title: z.string(),
      why: z.string().optional(),
      safer: z.string().optional(),
    })).default([]),
    faq: z.array(z.object({
      question: z.string(),
      answer: z.string(),
    })).default([]),
    videoUrl: z.string().nullable().default(null),
    thumbnail: z.string().nullable().default(null),
    screenImage: z.string().nullable().default(null),
    screenImageAlt: z.string().nullable().default(null),
    visualBrief: z.string().nullable().default(null),
    related: z.array(z.string()).default([]),
    toolRelevance: z.string(),
    affiliateCategory: z.string().nullable().default(null),
    seoTitle: z.string(),
    metaDescription: z.string(),
    socialTitle: z.string(),
    lastUpdated: z.coerce.date(),
  }),
});

export const collections = { redflags };
