import type { Block } from 'payload' import { anchorField } from '@/fields/anchorField' export const FDQuizBlock: Block = { slug: 'fdQuiz', imageURL: '/block-thumbnails/fd-quiz.png', imageAltText: 'FD Quiz / Behovsanalys', interfaceName: 'FDQuizBlock', labels: { singular: 'FD Quiz / Behovsanalys', plural: 'FD Quiz / Behovsanalyser', }, fields: [ { name: 'heading', type: 'text', localized: true, label: 'Rubrik', required: true, defaultValue: 'Vilken tjänst passar dig?', }, { name: 'description', type: 'textarea', localized: true, label: 'Beskrivning (valfri)', }, { name: 'triggerLabel', type: 'text', localized: true, label: 'Startknapp-text', defaultValue: 'Starta quiz', }, /* ── Outcomes — define these FIRST so editors know the keys ── */ { type: 'collapsible', label: 'Resultat / rekommendationer', admin: { initCollapsed: false }, fields: [ { name: 'outcomes', type: 'array', label: 'Möjliga resultat', minRows: 2, maxRows: 6, labels: { singular: 'Resultat', plural: 'Resultat' }, fields: [ { name: 'key', type: 'text', label: 'Nyckel (kort, unik, t.ex. "vdc", "colo", "fiber")', required: true, admin: { description: 'Används i frågornas alternativ. Bara små bokstäver, inga mellanslag.', }, }, { name: 'title', type: 'text', localized: true, label: 'Resultatrubrik (t.ex. "Virtuellt Datacenter")', required: true, }, { name: 'description', type: 'textarea', localized: true, label: 'Resultatbeskrivning', }, { name: 'ctaText', type: 'text', localized: true, label: 'CTA-knapp text', defaultValue: 'Läs mer', }, { name: 'ctaLink', type: 'text', label: 'CTA-knapp länk', defaultValue: '/kontakt', }, ], }, ], }, /* ── Questions ── */ { type: 'collapsible', label: 'Frågor', admin: { initCollapsed: false }, fields: [ { name: 'questions', type: 'array', label: 'Frågor', minRows: 2, maxRows: 10, labels: { singular: 'Fråga', plural: 'Frågor' }, fields: [ { name: 'question', type: 'text', localized: true, label: 'Frågetext', required: true, }, { name: 'options', type: 'array', label: 'Svarsalternativ', minRows: 2, maxRows: 5, labels: { singular: 'Alternativ', plural: 'Alternativ' }, fields: [ { name: 'label', type: 'text', localized: true, label: 'Alternativtext', required: true, }, { name: 'sublabel', type: 'text', localized: true, label: 'Undertext (valfri, visas under alternativet)', }, { name: 'outcomeKeys', type: 'text', label: 'Resultatnycklar (kommaseparerade, t.ex. "vdc,fiber")', required: true, admin: { description: 'Varje valt alternativ ger +1 poäng till angivna resultatnycklar.', }, }, ], }, ], }, ], }, /* ── UI labels ── */ { type: 'collapsible', label: 'Knappar & etiketter', admin: { initCollapsed: true }, fields: [ { name: 'nextLabel', type: 'text', localized: true, label: '"Nästa"-knapptext', defaultValue: 'Nästa', }, { name: 'backLabel', type: 'text', localized: true, label: '"Tillbaka"-knapptext', defaultValue: 'Tillbaka', }, { name: 'resultHeading', type: 'text', localized: true, label: 'Resultatrubrik', defaultValue: 'Rekommenderat:', }, { name: 'restartLabel', type: 'text', localized: true, label: '"Börja om"-knapptext', defaultValue: 'Börja om', }, ], }, /* ── Styling ── */ { name: 'sectionBackground', type: 'select', label: 'Sektionsbakgrund', defaultValue: 'navy', options: [ { label: 'Vit', value: 'white' }, { label: 'Grå', value: 'gray' }, { label: 'Navy', value: 'navy' }, ], }, anchorField, ], }