// 1. Import utilities from `astro:content`
import { z, defineCollection, getCollection } from 'astro:content';
// 2. Define your collection(s)
const blogCollection = defineCollection({ 
	type: "content",
	schema: z.object({
		title: z.string(),
		description: z.string(),
		author: z.string().default("Anonymous"),
		publishDate: z.date(),
		image: z.object({
			url: z.string(),
			alt: z.string()
		}),
		language: z.enum(['en', 'cs', 'de', 'fr']),
		tags: z.array(z.string()).optional()
	})
 });

 const musicCollection = defineCollection({
	type: "content",
	schema: z.object({
		name: z.object({
			en: z.string(),
			de: z.string(),
			fr: z.string(),
			cs: z.string()
		}),
		comment: z.object({
			en: z.string(),
			de: z.string(),
			cs: z.string(),
			fr: z.string()
		}),
		publishDate: z.date(),
		image: z.object({
			url: z.string(),
			alt: z.string()
		}),
		pdfLink: z.string().optional(),
		flacLink: z.string().optional(),
		mp3Link: z.string()
	})
 });
// 3. Export a single `collections` object to register your collection(s)
//    This key should match your collection directory name in "src/content"
export const collections = {
  'blog': blogCollection,
  'music': musicCollection
};

export async function getBlogPosts() {
	const posts = await getCollection('blog');

	return posts.map((post) => {
		const blog_slug = post.slug.split('/')[0];
		return {
			...post,
			blog_slug
		}
	})
}

export async function getCompositions() {
	return await getCollection('music');
}