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

// Petit helper pour éviter la répétition du loader
const obsidianLoader = (path: string) =>
  glob({
    pattern: "**/[^_]*.{md,mdx}",
    base: `./src/content/${path}`,
  });

const journal = defineCollection({
  loader: obsidianLoader("journal"),
  schema: z
    .object({
      title: z.string(),
      // On rend la date plus flexible car Obsidian peut parfois envoyer des strings
      publishDate: z.coerce.date(),
      tags: z.array(z.string()).default([]),
      author: z.string().default("Artisan"),
    })
    .passthrough(),
});

export const collections = { journal }; // Simplifié pour test
