ordinarthur 9d172a4422 init
2026-04-05 12:11:46 +02:00

78 lines
1.7 KiB
TypeScript

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' }],
},
],
});