import { defineType, defineField } from 'sanity'; export default defineType({ name: 'project', title: 'Projet', type: 'document', fields: [ defineField({ name: 'title', title: 'Titre du projet', type: 'string', validation: (rule) => rule.required(), }), defineField({ name: 'slug', title: 'Slug (URL)', type: 'slug', options: { source: 'title', maxLength: 96 }, validation: (rule) => rule.required(), }), defineField({ name: 'category', title: 'Catégorie', type: 'string', options: { list: [ { title: 'Réalisation Pérenne', value: 'perenne' }, { title: 'Création Événement', value: 'event' }, ], layout: 'radio', }, validation: (rule) => rule.required(), }), defineField({ name: 'client', title: 'Client', type: 'string', validation: (rule) => rule.required(), }), defineField({ name: 'date', title: 'Date du projet', type: 'date', }), defineField({ name: 'location', title: 'Lieu', type: 'string', }), defineField({ name: 'description', title: 'Description courte', type: 'text', rows: 3, }), defineField({ name: 'heroImage', title: 'Image principale', type: 'image', options: { hotspot: true }, fields: [ defineField({ name: 'alt', title: 'Texte alternatif', type: 'string', }), ], }), defineField({ name: 'gallery', title: 'Galerie photos', type: 'array', of: [ { type: 'image', options: { hotspot: true }, fields: [ defineField({ name: 'alt', title: 'Texte alternatif', type: 'string', }), defineField({ name: 'size', title: "Taille d'affichage", type: 'string', options: { list: [ { title: 'Petit', value: 'small' }, { title: 'Moyen', value: 'medium' }, { title: 'Grand', value: 'large' }, ], }, initialValue: 'medium', }), ], }, ], }), defineField({ name: 'tags', title: 'Tags', type: 'array', of: [{ type: 'string' }], options: { layout: 'tags' }, }), defineField({ name: 'featured', title: "Mis en avant sur la page d'accueil", type: 'boolean', initialValue: false, }), defineField({ name: 'order', title: "Ordre d'affichage", type: 'number', }), ], preview: { select: { title: 'title', subtitle: 'client', media: 'heroImage', }, }, orderings: [ { title: 'Par ordre', name: 'orderAsc', by: [{ field: 'order', direction: 'asc' }], }, { title: 'Par date', name: 'dateDesc', by: [{ field: 'date', direction: 'desc' }], }, ], });