import { defineType, defineField } from 'sanity'; export default defineType({ name: 'processStep', title: 'Étape du processus', type: 'document', fields: [ defineField({ name: 'title', title: "Titre de l'étape", type: 'string', validation: (rule) => rule.required(), }), defineField({ name: 'stepNumber', title: "Numéro d'étape", type: 'number', validation: (rule) => rule.required().min(1).max(10), }), defineField({ name: 'subtitle', title: 'Sous-titre', type: 'string', }), defineField({ name: 'description', title: 'Description', type: 'text', rows: 4, }), defineField({ name: 'icon', title: "Icône / illustration de l'étape", type: 'image', }), defineField({ name: 'gallery', title: 'Photos illustratives', type: 'array', of: [ { type: 'image', options: { hotspot: true }, fields: [ defineField({ name: 'alt', title: 'Texte alternatif', type: 'string' }), defineField({ name: 'caption', title: 'Légende', type: 'string' }), ], }, ], }), defineField({ name: 'duration', title: 'Durée estimée', type: 'string', }), ], preview: { select: { title: 'title', subtitle: 'subtitle', stepNumber: 'stepNumber', }, prepare({ title, subtitle, stepNumber }) { return { title: `${stepNumber}. ${title}`, subtitle, }; }, }, orderings: [ { title: 'Par numéro', name: 'stepNumberAsc', by: [{ field: 'stepNumber', direction: 'asc' }], }, ], });