718 lines
29 KiB
JavaScript
718 lines
29 KiB
JavaScript
// seed-block-kitchen-sink.mjs
|
||
// Fiber Direkt — Block Kitchen Sink
|
||
// One instance of every block that works without images/file uploads.
|
||
//
|
||
// Skipped (require mandatory file uploads or form relationships):
|
||
// fdHeaderTextImage — image required
|
||
// fdVideoHero — videoMp4 required
|
||
// fdLocationsGrid — card images required
|
||
// fdIconBar — icon items required
|
||
// fdPartnersLogos — logo items required
|
||
// fdContactForm — form relationship required
|
||
//
|
||
// Run: PAYLOAD_API_URL=http://localhost:3000 PAYLOAD_API_KEY=xxx node seed-block-kitchen-sink.mjs
|
||
|
||
const PAYLOAD_API_URL = process.env.PAYLOAD_API_URL || 'http://localhost:3000'
|
||
const PAYLOAD_API_KEY = process.env.PAYLOAD_API_KEY
|
||
|
||
// Required for fdFaq answers, fdUspTable descriptions, fdText body
|
||
function richText(text) {
|
||
return {
|
||
root: {
|
||
type: 'root',
|
||
children: [
|
||
{
|
||
type: 'paragraph',
|
||
children: [
|
||
{ type: 'text', text, format: 0, detail: 0, mode: 'normal', style: '', version: 1 },
|
||
],
|
||
direction: 'ltr',
|
||
format: '',
|
||
indent: 0,
|
||
version: 1,
|
||
textFormat: 0,
|
||
},
|
||
],
|
||
direction: 'ltr',
|
||
format: '',
|
||
indent: 0,
|
||
version: 1,
|
||
},
|
||
}
|
||
}
|
||
|
||
async function createPage(slug, title, blocks) {
|
||
const res = await fetch(`${PAYLOAD_API_URL}/api/pages`, {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json',
|
||
Authorization: `users API-Key ${PAYLOAD_API_KEY}`,
|
||
},
|
||
body: JSON.stringify({ title, slug, layout: blocks, _status: 'draft' }),
|
||
})
|
||
const data = await res.json()
|
||
console.log(`${res.ok ? '✓' : '✗'} ${title} (/${slug}): ${res.status}`)
|
||
if (!res.ok) console.error(JSON.stringify(data.errors || data, null, 2))
|
||
return data
|
||
}
|
||
|
||
async function seed() {
|
||
if (!PAYLOAD_API_KEY) {
|
||
console.error('Error: PAYLOAD_API_KEY environment variable is required.')
|
||
process.exit(1)
|
||
}
|
||
|
||
console.log(`Seeding to: ${PAYLOAD_API_URL}`)
|
||
console.log('─'.repeat(60))
|
||
|
||
await createPage('block-kitchen-sink', 'Block Kitchen Sink', [
|
||
|
||
// ─── 1. fdHero ────────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdHero',
|
||
heading: 'Sveriges bästa IT-infrastruktur för företag',
|
||
subheading: 'Fiber, Backup, Colocation och Cloud',
|
||
body: 'Dedikerat fiber, backup, colocation och virtuella servrar — allt från en leverantör med svenskt huvudmannaskap.',
|
||
ctaText: 'Kom igång',
|
||
ctaLink: '/kontakt',
|
||
secondaryCtaText: 'Läs mer',
|
||
secondaryCtaLink: '#tjanster',
|
||
theme: 'dark',
|
||
anchorId: 'block-fdhero',
|
||
},
|
||
|
||
// ─── 2. fdAlternateHero ────────────────────────────────────────
|
||
{
|
||
blockType: 'fdAlternateHero',
|
||
heading: 'Er data under svensk lag. Punkt.',
|
||
description: 'Vi erbjuder dedikerat fiber, backup, colocation och cloud — allt från svenska datacenter, under svensk lag, med svensk support.',
|
||
primaryCtaText: 'Kontakta oss',
|
||
primaryCtaLink: '/kontakt',
|
||
secondaryCtaText: 'Se tjänster',
|
||
secondaryCtaLink: '#tjanster',
|
||
sectionBackground: 'white',
|
||
anchorId: 'block-fdalternatehero',
|
||
},
|
||
|
||
// ─── 3. fdStatistics ──────────────────────────────────────────
|
||
{
|
||
blockType: 'fdStatistics',
|
||
heading: 'Fiber Direkt i siffror',
|
||
sectionBackground: 'navy',
|
||
numberColor: 'yellow',
|
||
anchorId: 'block-fdstatistics',
|
||
stats: [
|
||
{ number: '99,99 %', label: 'garanterad drifttid' },
|
||
{ number: '400 Gbit/s', label: 'maxkapacitet dedikerat fiber' },
|
||
{ number: '24/7', label: 'svensk support' },
|
||
{ number: '100 %', label: 'svensk infrastruktur' },
|
||
],
|
||
},
|
||
|
||
// ─── 4. fdUspChecklist ─────────────────────────────────────────
|
||
{
|
||
blockType: 'fdUspChecklist',
|
||
heading: 'Varför välja Fiber Direkt?',
|
||
sectionBackground: 'white',
|
||
imagePosition: 'right',
|
||
checkColor: 'navy',
|
||
textColor: 'navy',
|
||
anchorId: 'block-fduspchecklist',
|
||
items: [
|
||
{ text: 'Dedikerat fiber — symmetrisk kapacitet, inte delad' },
|
||
{ text: 'Skyddsklass 3 — högsta civila säkerhetsklassning' },
|
||
{ text: 'ISO 27001 — certifierad informationssäkerhet' },
|
||
{ text: 'Ingen CLOUD Act-exponering — all data stannar i Sverige' },
|
||
{ text: 'En leverantör, en faktura — fiber, backup, cloud och colocation' },
|
||
{ text: 'Svensk support dygnet runt — inga chatbotar, inga callcenters' },
|
||
],
|
||
},
|
||
|
||
// ─── 5. fdUspTable ────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdUspTable',
|
||
heading: 'Tekniska fördelar',
|
||
sectionBackground: 'gray',
|
||
checkColor: 'navy',
|
||
textColor: 'navy',
|
||
anchorId: 'block-fdusptable',
|
||
rows: [
|
||
{
|
||
title: 'Skyddsklass 3',
|
||
description: richText('Högsta civila säkerhetsklassning i Sverige. Biometrisk åtkomstkontroll och kameraövervakning dygnet runt.'),
|
||
},
|
||
{
|
||
title: 'N+1 redundans',
|
||
description: richText('Redundant kyla och kraft i varje rack. Driftsäkert även vid komponentfel.'),
|
||
},
|
||
{
|
||
title: 'Symmetrisk fiber',
|
||
description: richText('Samma hastighet upp som ned — dedikerad kapacitet, inte delad med andra kunder.'),
|
||
},
|
||
{
|
||
title: 'ISO 27001 & ISO 14001',
|
||
description: richText('Certifierade för informationssäkerhet och miljöledning. NIS2-redo.'),
|
||
},
|
||
],
|
||
},
|
||
|
||
// ─── 6. fdCardGrid ────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdCardGrid',
|
||
sectionBackground: 'white',
|
||
layout: '1-1-1',
|
||
cardStyle: 'outlined',
|
||
anchorId: 'block-fdcardgrid',
|
||
cards: [
|
||
{
|
||
displayMode: 'content',
|
||
heading: 'Fiber Direkt',
|
||
contentLines: [
|
||
{ text: 'Dedikerat fiber med symmetrisk kapacitet — 10 Gbit/s till 400 Gbit/s.', style: 'normal' },
|
||
{ text: 'Direkt anslutning till svenskt nät utan Big Tech-mellanhänder.', style: 'normal' },
|
||
],
|
||
},
|
||
{
|
||
displayMode: 'content',
|
||
heading: 'Server Direkt',
|
||
contentLines: [
|
||
{ text: 'Virtuella servrar på svensk infrastruktur. Proxmox-baserad plattform.', style: 'normal' },
|
||
{ text: 'Ny server på under 5 minuter. Betala för det ni använder.', style: 'normal' },
|
||
],
|
||
},
|
||
{
|
||
displayMode: 'content',
|
||
heading: 'Datacenter Direkt',
|
||
contentLines: [
|
||
{ text: 'Colocation i Skyddsklass 3 — Stockholm Nord, 1,6 MW kapacitet.', style: 'normal' },
|
||
{ text: 'Upp till 88 kW per rack. AI/HPC-redo.', style: 'normal' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
// ─── 7. fdPricingCard ─────────────────────────────────────────
|
||
{
|
||
blockType: 'fdPricingCard',
|
||
sectionTitle: 'Välj din tjänstenivå',
|
||
sectionBackground: 'gray',
|
||
cardStyle: 'navy',
|
||
buttonColor: 'yellow',
|
||
titleColor: 'navy',
|
||
anchorId: 'block-fdpricingcard',
|
||
cards: [
|
||
{
|
||
title: 'Fiber Basic',
|
||
subtitle: 'från 1 195 kr/mån',
|
||
description: 'Dedikerat fiber för mindre kontor och startups.',
|
||
ctaText: 'Få offert',
|
||
ctaLink: '/kontakt',
|
||
bulletPoints: [
|
||
{ text: '10 Gbit/s symmetrisk' },
|
||
{ text: 'SLA med ekonomisk garanti' },
|
||
{ text: 'Svensk support 24/7' },
|
||
],
|
||
},
|
||
{
|
||
title: 'Fiber Platina',
|
||
subtitle: 'från 7 995 kr/mån',
|
||
description: 'Hög kapacitet för krävande verksamheter och datacenter.',
|
||
ctaText: 'Få offert',
|
||
ctaLink: '/kontakt',
|
||
bulletPoints: [
|
||
{ text: '100 Gbit/s symmetrisk' },
|
||
{ text: 'BGP-stöd och VLAN-taggning' },
|
||
{ text: 'Redundanta uplinks' },
|
||
{ text: 'Prioriterad support' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
// ─── 8. fdCtaBanner ───────────────────────────────────────────
|
||
{
|
||
blockType: 'fdCtaBanner',
|
||
heading: 'Redo att ta kontrollen över er IT?',
|
||
subheading: 'Boka ett samtal med vårt team. Vi hjälper er hitta rätt upplägg — utan förpliktelser.',
|
||
ctaText: 'Kontakta oss',
|
||
ctaLink: '/kontakt',
|
||
secondaryCtaText: 'Prata med en expert',
|
||
secondaryCtaLink: '/kontakt',
|
||
sectionBackground: 'yellow',
|
||
alignment: 'center',
|
||
size: 'large',
|
||
anchorId: 'block-fdctabanner',
|
||
},
|
||
|
||
// ─── 9. fdCtaSideImage ────────────────────────────────────────
|
||
{
|
||
blockType: 'fdCtaSideImage',
|
||
heading: 'Flytta in. Skala upp. Sov gott.',
|
||
body: 'Vårt team hanterar hela flytten — från planering till driftsättning. Ni behöver inte lyfta ett finger. Och när allt är igång finns vi kvar som er enda IT-kontakt.',
|
||
ctaText: 'Boka ett möte',
|
||
ctaLink: '/kontakt',
|
||
imagePosition: 'right',
|
||
theme: 'dark',
|
||
anchorId: 'block-fdctasideimage',
|
||
},
|
||
|
||
// ─── 10. fdFaq ────────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdFaq',
|
||
heading: 'Vanliga frågor',
|
||
theme: 'light',
|
||
anchorId: 'block-fdfaq',
|
||
items: [
|
||
{
|
||
question: 'Lyder min data under CLOUD Act om ni har servrar i EU?',
|
||
answer: richText('Nej — inte med Fiber Direkt. Vi är ett svenskägt bolag och all infrastruktur finns i Sverige. Ingen data passerar utländsk juridisdiktion, och US Cloud Act gäller inte oss.'),
|
||
},
|
||
{
|
||
question: 'Vad ingår i er SLA?',
|
||
answer: richText('Vår SLA garanterar 99,99 % drifttid med ekonomisk kompensation vid avvikelse. Exakt villkor beror på tjänst — kontakta oss för aktuellt avtal.'),
|
||
},
|
||
{
|
||
question: 'Kan vi skala upp kapaciteten utan att byta leverantör?',
|
||
answer: richText('Ja. Fibern skalas upp utan att byta hårdvara. Virtuella servrar justeras på minuter. Colocation-kapacitet utökas i samma rack eller med nytt rack.'),
|
||
},
|
||
],
|
||
},
|
||
|
||
// ─── 11. fdTestimonial ────────────────────────────────────────
|
||
{
|
||
blockType: 'fdTestimonial',
|
||
heading: 'Vad våra kunder säger',
|
||
sectionBackground: 'gray',
|
||
layout: 'featured',
|
||
anchorId: 'block-fdtestimonial',
|
||
testimonials: [
|
||
{
|
||
quote: 'Vi hade all data i AWS Frankfurt utan egentlig kontroll. Flytten till Fiber Direkt tog tre veckor — och nu sover vi bättre.',
|
||
authorName: '[REPRESENTANT — kräver verklig kundgodkännande]',
|
||
authorRole: 'IT-chef',
|
||
authorCompany: '[Företagsnamn]',
|
||
},
|
||
],
|
||
},
|
||
|
||
// ─── 12. fdServicesGrid ───────────────────────────────────────
|
||
{
|
||
blockType: 'fdServicesGrid',
|
||
heading: 'Alla tjänster',
|
||
columns: '4',
|
||
anchorId: 'block-fdservicesgrid',
|
||
services: [
|
||
{ title: 'Fiber', description: 'Dedikerat fiber 10–400 Gbit/s. Symmetrisk kapacitet.', link: '/fiber' },
|
||
{ title: 'Colocation', description: 'Rack i Skyddsklass 3. Upp till 88 kW per rack.', link: '/colocation' },
|
||
{ title: 'Virtuellt datacenter', description: 'VPS på Proxmox-plattform. Ny server på 5 minuter.', link: '/virtuellt-datacenter' },
|
||
{ title: 'Backup', description: 'Automatisk backup till svenska datacenter. 30 dagars retention.', link: '/backup' },
|
||
],
|
||
},
|
||
|
||
// ─── 13. fdWideCard ───────────────────────────────────────────
|
||
{
|
||
blockType: 'fdWideCard',
|
||
heading: 'Klimatsmart sedan dag ett',
|
||
body: 'Överskottsvärmen från våra datacenter matas in i Stockholms fjärrvärmenät. HVO100 förnybart diesel i reservkraftverken. ISO 14001-certifierade — 20+ år före EU Green Deal.',
|
||
ctaText: 'Läs om vårt hållbarhetsarbete',
|
||
ctaLink: '/hallbarhet',
|
||
cardBackground: 'navy',
|
||
buttonColor: 'yellow',
|
||
sectionBackground: 'white',
|
||
anchorId: 'block-fdwidecard',
|
||
},
|
||
|
||
// ─── 14. fdTechProperties ─────────────────────────────────────
|
||
{
|
||
blockType: 'fdTechProperties',
|
||
sectionBackground: 'navy',
|
||
categoryColor: 'white',
|
||
valueColor: 'yellow',
|
||
anchorId: 'block-fdtechproperties',
|
||
properties: [
|
||
{ category: 'Skyddsklass', value: '3' },
|
||
{ category: 'Effekt per rack', value: '88 kW' },
|
||
{ category: 'Total kapacitet', value: '1,6 MW' },
|
||
{ category: 'Certifieringar', value: 'ISO 27001 · ISO 14001 · SSF 200' },
|
||
],
|
||
},
|
||
|
||
// ─── 15. fdFeatureAnnouncement ────────────────────────────────
|
||
{
|
||
blockType: 'fdFeatureAnnouncement',
|
||
heading: 'Nyhet: Office Komplett — allt kontoret behöver på en faktura',
|
||
body: 'Dedikerat fiber, managed WiFi, nätverksswitch och 1 TB svensk molnlagring i ett paket för 2 995 kr/mån.',
|
||
ctaText: 'Läs mer',
|
||
ctaLink: '/office-komplett',
|
||
theme: 'gray',
|
||
anchorId: 'block-fdfeatureannouncement',
|
||
},
|
||
|
||
// ─── 16. fdText ───────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdText',
|
||
heading: 'Om Fiber Direkt',
|
||
subheading: 'Svenskägt. Driftsäkert. Ansvarsfullt.',
|
||
body: richText('Fiber Direkt är ett stockholmsbaserat IT-infrastrukturbolag med eget nät, egna datacenter och egen support. Vi äger vår infrastruktur — vi återsäljer ingenting. Sedan starten har vi levererat dedikerad fiber, colocation och cloud till svenska företag som kräver kontroll, prestanda och datasuveränitet.'),
|
||
alignment: 'left',
|
||
textColor: 'navy',
|
||
sectionBackground: 'white',
|
||
maxWidth: 'medium',
|
||
anchorId: 'block-fdtext',
|
||
},
|
||
|
||
// ─── 17. fdDataTable ──────────────────────────────────────────
|
||
{
|
||
blockType: 'fdDataTable',
|
||
heading: 'Fibernivåer — översikt',
|
||
description: 'Alla priser exkl. moms. Exakt pris beror på adress och avtalstid.',
|
||
dataSource: 'manual',
|
||
sectionBackground: 'gray',
|
||
headerStyle: 'navy',
|
||
stripeRows: true,
|
||
bordered: false,
|
||
firstColumnBold: true,
|
||
anchorId: 'block-fddatatable',
|
||
headers: [
|
||
{ text: 'Nivå' },
|
||
{ text: 'Hastighet' },
|
||
{ text: 'Pris från' },
|
||
],
|
||
rows: [
|
||
{ cells: 'Basic, 10 Gbit/s, 1 195 kr/mån' },
|
||
{ cells: 'Standard, 40 Gbit/s, Offert' },
|
||
{ cells: 'Premium, 100 Gbit/s, Offert' },
|
||
{ cells: 'Platina, 400 Gbit/s, 7 995 kr/mån' },
|
||
],
|
||
},
|
||
|
||
// ─── 18. fdTeam ───────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdTeam',
|
||
heading: 'Möt vårt team',
|
||
subheading: 'Svenska experter. Svenska svar.',
|
||
columns: '3',
|
||
cardStyle: 'navy',
|
||
sectionBackground: 'white',
|
||
anchorId: 'block-fdteam',
|
||
members: [
|
||
{
|
||
name: 'Anna Lindqvist',
|
||
role: 'Säljansvarig',
|
||
bio: 'Anna hjälper er hitta rätt lösning för ert kontor eller datacenter.',
|
||
email: 'anna@fiberdirekt.se',
|
||
},
|
||
{
|
||
name: 'Marcus Bergström',
|
||
role: 'Nätverksingenjör',
|
||
bio: 'Marcus ansvarar för fibernätet och teknisk driftsättning.',
|
||
},
|
||
{
|
||
name: 'Sara Holm',
|
||
role: 'Kundsupport',
|
||
bio: 'Sara är er kontakt för support och felanmälan — dygnet runt.',
|
||
email: 'support@fiberdirekt.se',
|
||
},
|
||
],
|
||
},
|
||
|
||
// ─── 19. fdNewsletter ────────────────────────────────────────
|
||
{
|
||
blockType: 'fdNewsletter',
|
||
heading: 'Håll er uppdaterade',
|
||
description: 'Prenumerera på nyheter om fiber, cloud och IT-infrastruktur i Sverige.',
|
||
submitEndpoint: '/api/newsletter',
|
||
buttonText: 'Prenumerera',
|
||
successMessage: 'Tack! Ni är nu prenumeranter.',
|
||
consentText: 'Jag godkänner att mina uppgifter används enligt integritetspolicyn.',
|
||
privacyPolicyLink: '/integritetspolicy',
|
||
collectName: false,
|
||
collectCompany: false,
|
||
layout: 'inline',
|
||
sectionBackground: 'navy',
|
||
textColor: 'auto',
|
||
},
|
||
|
||
// ─── 20. fdTags ──────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdTags',
|
||
heading: 'Tjänster och teknologier',
|
||
tagStyle: 'navy',
|
||
tagSize: 'large',
|
||
alignment: 'left',
|
||
sectionBackground: 'white',
|
||
tags: [
|
||
{ text: 'Fiber' },
|
||
{ text: 'Colocation' },
|
||
{ text: 'Virtuellt datacenter' },
|
||
{ text: 'Backup' },
|
||
{ text: 'Layer 2' },
|
||
{ text: 'ISO 27001' },
|
||
{ text: 'Skyddsklass 3' },
|
||
{ text: 'NIS2' },
|
||
{ text: 'GDPR' },
|
||
],
|
||
},
|
||
|
||
// ─── 21. fdServiceChooser ─────────────────────────────────────
|
||
{
|
||
blockType: 'fdServiceChooser',
|
||
heading: 'Välj er bransch',
|
||
description: 'Vi har erfarenhet av IT-infrastruktur för ett brett spektrum av branscher.',
|
||
sectionBackground: 'gray',
|
||
anchorId: 'block-fdservicechooser',
|
||
categories: [
|
||
{
|
||
label: 'Kontor & Företag',
|
||
intro: 'Turnkey IT för kontor — fiber, WiFi, switch och molnlagring på en faktura.',
|
||
services: [
|
||
{ title: 'Office Komplett', description: 'Fiber + WiFi + switch + 1 TB cloud. 2 995 kr/mån.', ctaText: 'Läs mer', ctaLink: '/office-komplett' },
|
||
{ title: 'Dedikerat fiber', description: 'Symmetrisk kapacitet direkt till ert kontor.', ctaText: 'Se priser', ctaLink: '/fiber' },
|
||
],
|
||
},
|
||
{
|
||
label: 'Datacenter & Hosting',
|
||
intro: 'Hög densitet, hög säkerhet — colocation i Stockholm Nord.',
|
||
services: [
|
||
{ title: 'Colocation', description: 'Från halvskåp till full cage. Upp till 88 kW per rack.', ctaText: 'Se alternativ', ctaLink: '/colocation' },
|
||
{ title: 'Virtuellt datacenter', description: 'VPS på Proxmox. Ny server på 5 minuter.', ctaText: 'Beräkna kostnad', ctaLink: '/virtuellt-datacenter' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
// ─── 22. fdSpecCards ──────────────────────────────────────────
|
||
{
|
||
blockType: 'fdSpecCards',
|
||
heading: 'Colocation — specifikationer',
|
||
description: 'Stockholm Nord datacenter. Industrins starkaste civila säkerhetsklassning.',
|
||
ctaText: 'Beräkna din kostnad',
|
||
ctaLink: '/kontakt',
|
||
layout: 'sideBySide',
|
||
cardStyle: 'outlined',
|
||
sectionBackground: 'navy',
|
||
anchorId: 'block-fdspeccards',
|
||
cards: [
|
||
{ title: 'Halvskåp', description: '18U, 24/7-bevakat.', specLabel: 'Pris från', specValue: '3 495 kr/mån' },
|
||
{ title: 'Helskåp', description: '40U, N+1 redundans, KVM ingår.', specLabel: 'Pris från', specValue: '5 995 kr/mån' },
|
||
{ title: 'Bur', description: 'Dedikerat burutrymme för större installationer.', specLabel: 'Pris', specValue: 'Offert' },
|
||
],
|
||
},
|
||
|
||
// ─── 23. fdLinkCards ──────────────────────────────────────────
|
||
{
|
||
blockType: 'fdLinkCards',
|
||
heading: 'Utforska våra tjänster',
|
||
description: 'Allt ni behöver — från en leverantör.',
|
||
columns: '3',
|
||
cardStyle: 'outlined',
|
||
sectionBackground: 'navy',
|
||
anchorId: 'block-fdlinkcards',
|
||
cards: [
|
||
{ title: 'Dedikerat fiber\n10–400 Gbit/s', linkLabel: 'Se fibertjänster', linkUrl: '/fiber' },
|
||
{ title: 'Virtuella servrar\nProxmox-plattform', linkLabel: 'Utforska VPS', linkUrl: '/virtuellt-datacenter' },
|
||
{ title: 'Colocation\nSkyddsklass 3', linkLabel: 'Mer om datacenter', linkUrl: '/colocation' },
|
||
],
|
||
},
|
||
|
||
// ─── 24. fdQuiz ───────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdQuiz',
|
||
heading: 'Vilken tjänst passar er?',
|
||
description: 'Svara på tre frågor — vi rekommenderar rätt produkt.',
|
||
triggerLabel: 'Starta quiz',
|
||
sectionBackground: 'gray',
|
||
anchorId: 'block-fdquiz',
|
||
outcomes: [
|
||
{
|
||
key: 'fiber',
|
||
title: 'Dedikerat fiber',
|
||
description: 'Er verksamhet kräver pålitlig, symmetrisk uppkoppling. Fiber Direkt levererar från 10 Gbit/s.',
|
||
ctaText: 'Se fiberalternativ',
|
||
ctaLink: '/fiber',
|
||
},
|
||
{
|
||
key: 'vdc',
|
||
title: 'Virtuellt datacenter',
|
||
description: 'Ni vill ersätta fysiska servrar med flexibla virtuella maskiner på svensk mark.',
|
||
ctaText: 'Utforska VPS',
|
||
ctaLink: '/virtuellt-datacenter',
|
||
},
|
||
{
|
||
key: 'colo',
|
||
title: 'Colocation',
|
||
description: 'Ni har egen hårdvara och behöver säkert utrymme med hög driftsäkerhet.',
|
||
ctaText: 'Se colocation',
|
||
ctaLink: '/colocation',
|
||
},
|
||
],
|
||
questions: [
|
||
{
|
||
question: 'Vad är er viktigaste utmaning just nu?',
|
||
options: [
|
||
{ label: 'Dålig eller instabil uppkoppling', outcomeKeys: 'fiber' },
|
||
{ label: 'Kostsam och svårskalad serverhårdvara', outcomeKeys: 'vdc' },
|
||
{ label: 'Serverrummet räcker inte till', outcomeKeys: 'colo' },
|
||
],
|
||
},
|
||
{
|
||
question: 'Hur hanterar ni er infrastruktur idag?',
|
||
options: [
|
||
{ label: 'Delad bredbandsuppkoppling', outcomeKeys: 'fiber' },
|
||
{ label: 'Egna fysiska servrar på kontoret', outcomeKeys: 'vdc,colo' },
|
||
{ label: 'Blandat moln och egna servrar', outcomeKeys: 'vdc,colo' },
|
||
],
|
||
},
|
||
{
|
||
question: 'Hur viktig är datasuveränitet för er?',
|
||
options: [
|
||
{ label: 'Kritisk — all data måste vara i Sverige', outcomeKeys: 'fiber,vdc,colo' },
|
||
{ label: 'Viktig men inte absolut krav', outcomeKeys: 'vdc,fiber' },
|
||
{ label: 'Vi fokuserar mer på pris och prestanda', outcomeKeys: 'vdc' },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
|
||
// ─── 25. fdVideo (YouTube — no upload needed) ─────────────────
|
||
{
|
||
blockType: 'fdVideo',
|
||
heading: 'Fiber Direkt — så fungerar det',
|
||
description: 'En kort genomgång av hur vi levererar fiber, colocation och cloud.',
|
||
videoSource: 'youtube',
|
||
youtubeUrl: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
|
||
aspectRatio: '16/9',
|
||
maxWidth: 'default',
|
||
sectionBackground: 'white',
|
||
textColor: 'auto',
|
||
anchorId: 'block-fdvideo',
|
||
},
|
||
|
||
// ─── 26. fdVpsCalculator ──────────────────────────────────────
|
||
{
|
||
blockType: 'fdVpsCalculator',
|
||
heading: 'Beräkna kostnaden för din VPS',
|
||
description: 'Välj resurser och se priset direkt.',
|
||
orderCtaText: 'Beställ',
|
||
orderCtaLink: '/kontakt?subject=vps-bestallning',
|
||
contactCtaText: 'Frågor? Kontakta oss',
|
||
contactCtaLink: '/kontakt',
|
||
sectionBackground: 'gray',
|
||
pricingCpuPerCore: 120,
|
||
pricingRamPerGb: 100,
|
||
pricingSsdPerGb: 4,
|
||
pricingHddPerGb: 1,
|
||
pricingWindowsLicense: 250,
|
||
showAdminFee: false,
|
||
anchorId: 'block-fdvpscalculator',
|
||
},
|
||
|
||
// ─── 27. fdServiceCalc ────────────────────────────────────────
|
||
{
|
||
blockType: 'fdServiceCalc',
|
||
heading: 'Beräkna er colocation-kostnad',
|
||
description: 'Välj rack-storlek och tilläggstjänster.',
|
||
summaryHeading: 'Kostnadsöversikt',
|
||
totalLabel: 'Totalt per månad',
|
||
totalSuffix: 'exkl. moms',
|
||
orderCtaText: 'Beställ',
|
||
orderCtaLink: '/kontakt',
|
||
contactCtaText: 'Frågor? Kontakta oss',
|
||
contactCtaLink: '/kontakt',
|
||
sectionBackground: 'white',
|
||
anchorId: 'block-fdservicecalc',
|
||
optionGroups: [
|
||
{
|
||
groupLabel: 'Rackstorlek',
|
||
options: [
|
||
{ label: 'Halvskåp (18U)', price: 3495 },
|
||
{ label: 'Helskåp (40U)', price: 5995 },
|
||
],
|
||
},
|
||
],
|
||
resources: [
|
||
{
|
||
label: 'Extra bandbredd',
|
||
unit: 'Gbit/s',
|
||
pricePerUnit: 500,
|
||
defaultValue: 0,
|
||
min: 0,
|
||
max: 10,
|
||
step: 1,
|
||
summaryTemplate: 'Extra bandbredd ({value} {unit})',
|
||
},
|
||
],
|
||
addons: [
|
||
{ label: 'Remote hands (10 tim/mån)', price: 1500, description: 'Fysisk assistans i datacenter på begäran.' },
|
||
{ label: 'KVM-åtkomst', price: 0, description: 'Ingår kostnadsfritt i helskåp.' },
|
||
],
|
||
fixedFees: [],
|
||
},
|
||
|
||
// ─── 28. fdCodeEmbed ──────────────────────────────────────────
|
||
{
|
||
blockType: 'fdCodeEmbed',
|
||
heading: 'Inbäddat formulär',
|
||
description: 'Exempel på fdCodeEmbed med iframe.',
|
||
embedType: 'iframe',
|
||
iframeSrc: 'https://example.com/embed-placeholder',
|
||
iframeTitle: 'Inbäddat formulär',
|
||
iframeHeight: '500px',
|
||
maxWidth: 'narrow',
|
||
sectionBackground: 'gray',
|
||
textColor: 'navy',
|
||
embedBackground: 'card',
|
||
anchorId: 'block-fdcodeembed',
|
||
},
|
||
|
||
// ─── 29. fdContact ────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdContact',
|
||
heading: 'Kontakta oss',
|
||
anchorId: 'block-fdcontact',
|
||
contactMethods: [
|
||
{ label: 'Telefon: 08-123 456 78', link: 'tel:+4681234567' },
|
||
{ label: 'E-post: info@fiberdirekt.se', link: 'mailto:info@fiberdirekt.se' },
|
||
{ label: 'Adress: Stockholm Nord, Sverige', link: 'https://maps.google.com' },
|
||
],
|
||
},
|
||
|
||
// ─── 30. fdSpacer ─────────────────────────────────────────────
|
||
{
|
||
blockType: 'fdSpacer',
|
||
height: 'lg',
|
||
sectionBackground: 'white',
|
||
},
|
||
|
||
// ─── 31. fdCtaBanner (closing) ────────────────────────────────
|
||
{
|
||
blockType: 'fdCtaBanner',
|
||
heading: 'Redo att komma igång?',
|
||
subheading: 'Kontakta oss idag och få en offert anpassad för er verksamhet.',
|
||
ctaText: 'Kontakta oss',
|
||
ctaLink: '/kontakt',
|
||
sectionBackground: 'navy',
|
||
alignment: 'center',
|
||
size: 'large',
|
||
anchorId: 'block-closing-cta',
|
||
},
|
||
|
||
])
|
||
|
||
console.log('─'.repeat(60))
|
||
console.log('Done. 30 blocks seeded (+ closing CTA = 31 block instances).')
|
||
console.log()
|
||
console.log('Skipped blocks (require mandatory file uploads):')
|
||
console.log(' fdHeaderTextImage — image required')
|
||
console.log(' fdVideoHero — videoMp4 required')
|
||
console.log(' fdLocationsGrid — card images required')
|
||
console.log(' fdIconBar — icon items required')
|
||
console.log(' fdPartnersLogos — logo items required')
|
||
console.log(' fdContactForm — form relationship required')
|
||
}
|
||
|
||
seed().catch((err) => {
|
||
console.error('Seed failed:', err)
|
||
process.exit(1)
|
||
})
|