forked from phc/website
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { z, defineCollection } from 'astro:content'
|
|
|
|
// Una notizia ha una data di pubblicazione ma non ha un autore in quanto sono
|
|
// notizie generiche sul PHC e non sono scritte da un autore specifico
|
|
const newsCollection = defineCollection({
|
|
type: 'content',
|
|
schema: z.object({
|
|
title: z.string(),
|
|
description: z.string(),
|
|
publishDate: z.date(),
|
|
image: z
|
|
.object({
|
|
url: z.string(),
|
|
alt: z.string(),
|
|
})
|
|
.optional(),
|
|
}),
|
|
})
|
|
|
|
// Una guida ha un autore ma non ha una data di pubblicazione in quanto è un
|
|
// contenuto statico e non è importante sapere quando è stata pubblicata
|
|
const guidesCollection = defineCollection({
|
|
type: 'content',
|
|
schema: z.object({
|
|
id: z.string(),
|
|
title: z.string(),
|
|
description: z.string(),
|
|
series: z.string().optional(),
|
|
tags: z.array(z.string()),
|
|
}),
|
|
})
|
|
|
|
// Per ora sono su un sito a parte ma prima o poi verranno migrati qui
|
|
const seminariettiCollection = defineCollection({
|
|
type: 'content',
|
|
schema: z.object({
|
|
title: z.string(),
|
|
description: z.string(),
|
|
author: z.string(),
|
|
publishDate: z.date(),
|
|
eventDate: z.date(),
|
|
tags: z.array(z.string()),
|
|
}),
|
|
})
|
|
|
|
// Export a single `collections` object to register your collection(s)
|
|
export const collections = {
|
|
news: newsCollection,
|
|
guides: guidesCollection,
|
|
seminarietti: seminariettiCollection,
|
|
}
|