wwwlayermeshusa/seeds/seed-office-komplett.mjs

294 lines
12 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// seed-office-komplett.mjs
// Fiber Direkt — Office Komplett
// Run: PAYLOAD_API_URL=https://your-site.com PAYLOAD_API_KEY=xxx node seed-office-komplett.mjs
const PAYLOAD_API_URL = process.env.PAYLOAD_API_URL || 'http://localhost:3000'
const PAYLOAD_API_KEY = process.env.PAYLOAD_API_KEY
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('---')
// ── Office Komplett (/office-komplett) ──────────────────────────────────────
await createPage('office-komplett', 'Office Komplett', [
// Block 1 — fdAlternateHero
{
blockType: 'fdAlternateHero',
heading: 'Allt kontoret behöver. En faktura.',
description:
'Sluta jonglera leverantörer. Office Komplett samlar dedikerat fiber, managed WiFi, nätverksswitch och 1 TB svensk molnlagring i ett och samma paket — med en kontakt, en faktura och svensk support dygnet runt. Ni sköter verksamheten. Vi sköter nätet.',
primaryCtaText: 'Kontakta oss',
primaryCtaLink: '/kontakt',
secondaryCtaText: 'Se vad som ingår',
secondaryCtaLink: '#vad-ingar',
sectionBackground: 'white',
anchorId: 'toppen',
},
// Block 2 — fdStatistics
{
blockType: 'fdStatistics',
heading: '',
sectionBackground: 'navy',
numberColor: 'yellow',
anchorId: 'nyckeltal',
stats: [
{ number: '2 995 kr/mån', label: 'Allt ingår — fiber, WiFi, switch och molnlagring' },
{ number: '1 TB', label: 'Svensk molnlagring i datacenter på svensk mark' },
{ number: '24/7', label: 'Svensk support — en kontakt för hela IT-miljön' },
{ number: '1', label: 'Faktura för hela paketet, varje månad' },
],
},
// Block 3 — fdUspChecklist
{
blockType: 'fdUspChecklist',
heading: 'Vad ingår i Office Komplett?',
sectionBackground: 'white',
anchorId: 'vad-ingar',
items: [
{ text: 'Dedikerat fiber — symmetrisk upp- och nedladdning, ingen delad kapacitet' },
{ text: 'Managed WiFi — professionella accesspunkter konfigurerade och övervakade av oss' },
{ text: 'Nätverksswitch — hanterad och uppdaterad utan att ni behöver lyfta ett finger' },
{ text: '1 TB molnlagring i svenska datacenter — under svensk lag, utan CLOUD Act-exponering' },
{ text: 'En faktura — ingen kostnad döljer sig hos en annan leverantör' },
{ text: 'En kontaktpunkt — ring oss, inte tre olika support-köer' },
{ text: 'Svensk support dygnet runt, alla dagar om året' },
{ text: 'Säker och krypterad datatrafik inom hela kontorets nätverk' },
{ text: 'Proaktiv övervakning — vi ser felet innan ni märker det' },
{ text: 'Skalbart — lägg till kapacitet eller användare utan att byta paket' },
],
},
// Block 4 — fdPricingCard
{
blockType: 'fdPricingCard',
sectionTitle: 'Pris och paket',
sectionBackground: 'gray',
cardStyle: 'navy',
anchorId: 'pris',
cards: [
{
title: 'Office Komplett',
subtitle: '2 995 kr/mån',
description:
'Ett komplett nätverkspaket för kontor med 550 anställda. Fast månadsavgift, inga dolda kostnader, ingen installationsavgift vid bindningstid.',
ctaText: 'Kontakta oss',
ctaLink: '/kontakt',
bulletPoints: [
{ text: 'Dedikerat fiber med symmetrisk kapacitet' },
{ text: 'Managed WiFi — installation och drift ingår' },
{ text: 'Hanterad nätverksswitch' },
{ text: '1 TB svensk molnlagring' },
{ text: '24/7 svensk support' },
{ text: 'En faktura varje månad' },
{ text: 'Proaktiv nätverksövervakning' },
{ text: 'Skalbar kapacitet vid behov' },
],
},
],
},
// Block 5 — fdCardGrid
{
blockType: 'fdCardGrid',
sectionBackground: 'white',
layout: '1-1-1',
cardStyle: 'outlined',
anchorId: 'en-leverantor',
cards: [
{
displayMode: 'content',
heading: 'Slipp leverantörscirkusen',
contentLines: [
{ text: 'När nätet krånglar vill ni inte ringa tre olika support-linjer och bli bollad fram och tillbaka.', style: 'normal' },
{ text: 'Med Office Komplett är Fiber Direkt er enda kontakt — oavsett om det gäller fibern, WiFi-signalen eller molnlagringen.', style: 'normal' },
],
},
{
displayMode: 'content',
heading: 'Data som stannar i Sverige',
contentLines: [
{ text: 'Er molnlagring finns i svenska datacenter, under svensk jurisdiktion.', style: 'normal' },
{ text: 'Ni berörs inte av utländska myndigheters krav på åtkomst — något som inte kan garanteras av amerikanska hyperscalers.', style: 'normal' },
],
},
{
displayMode: 'content',
heading: 'Nätet sköter sig självt',
contentLines: [
{ text: 'Managed WiFi och hanterad switch innebär att vi konfigurerar, uppdaterar och övervakar utrustningen åt er.', style: 'normal' },
{ text: 'Ni slipper hålla koll på firmware, säkerhetspatchar och inställningar — det är vårt jobb.', style: 'normal' },
],
},
],
},
// Block 6 — fdCtaSideImage
{
blockType: 'fdCtaSideImage',
heading: 'Installation utan huvudvärk',
body: 'Vi hanterar hela installationen från ax till limpa. Våra tekniker besöker kontoret, monterar utrustningen och konfigurerar hela nätverksmiljön innan ni ens hunnit hälla upp första kaffekoppen. Driftsättningstiden är typiskt en halv arbetsdag — och när vi går därifrån fungerar allt. Ni behöver inte göra ett enda tekniskt ingrepp.',
ctaText: 'Boka en genomgång',
ctaLink: '/kontakt',
imagePosition: 'right',
theme: 'dark',
anchorId: 'installation',
},
// Block 7 — fdTestimonial
{
blockType: 'fdTestimonial',
heading: 'Vad våra kunder säger',
sectionBackground: 'gray',
anchorId: 'kunder',
testimonials: [
{
quote:
'[REPRESENTANT — kräver verklig kundgodkännande] Vi hade tre olika leverantörer för nätet, WiFi och lagringen. Varje gång något krånglade visste ingen vem som ägde felet. Sedan vi gick över till Office Komplett har vi haft noll avbrott och ett enda samtal att ringa om något händer. Det är värt varenda krona.',
authorName: '[REPRESENTANT — kräver verklig kundgodkännande]',
authorRole: 'VD',
authorCompany: '[Företagsnamn]',
},
],
},
// Block 8 — fdFaq
{
blockType: 'fdFaq',
heading: 'Vanliga frågor om Office Komplett',
theme: 'light',
anchorId: 'faq',
items: [
{
question: 'Hur lång är bindningstiden?',
answer: richText(
'Office Komplett tecknas med 24 månaders bindningstid, vilket ger er det fasta priset på 2 995 kr/mån. Kortare avtalstid är möjlig — kontakta oss så räknar vi på er specifika situation.',
),
},
{
question: 'Ingår installation i priset?',
answer: richText(
'Ja, installation av fiber, WiFi-accesspunkter och nätverksswitch ingår utan extra kostnad vid 24-månaders avtal. En av våra certifierade tekniker sköter hela driftsättningen på plats.',
),
},
{
question: 'Var lagras vår data?',
answer: richText(
'All molnlagring sker i svenska datacenter på svensk mark, under svensk lagstiftning. Er data berörs aldrig av utländsk lagstiftning som CLOUD Act, vilket är en garanti vi kan ge — och som amerikanska hyperscalers inte kan.',
),
},
{
question: 'Vad händer om något slutar fungera?',
answer: richText(
'Ni ringer ett enda nummer — vår svenska support, öppen dygnet runt, alla dagar. Eftersom vi äger hela leveransen från fiber till molnlagring kan vi felsöka och åtgärda utan att skylla på någon annan part.',
),
},
{
question: 'Kan vi lägga till mer lagring eller kapacitet senare?',
answer: richText(
'Ja. Office Komplett är skalbart — ni kan utöka molnlagringen eller uppgradera fiberns kapacitet under avtalstiden. Vi anpassar paketet när verksamheten växer, utan att ni behöver byta leverantör.',
),
},
{
question: 'Fungerar paketet för kontor utanför Stockholm?',
answer: richText(
'Vi täcker i dag storstadsregionerna Stockholm, Göteborg och Malmö med tillhörande förorter. Kontakta oss med er adress så bekräftar vi täckning inom 24 timmar.',
),
},
{
question: "Vad menas med 'managed WiFi'?",
answer: richText(
'Det innebär att vi installerar, konfigurerar och löpande underhåller era WiFi-accesspunkter. Firmware-uppdateringar, säkerhetspatchar och nätverksjusteringar sköter vi proaktivt — ni märker det inte, för allt bara fungerar.',
),
},
],
},
// Block 9 — fdCtaBanner
{
blockType: 'fdCtaBanner',
heading: 'Redo att samla allt på en faktura?',
subheading:
'Fiber, WiFi, switch och svensk molnlagring — komplett för 2 995 kr/mån. Boka ett kostnadsfritt möte så berättar vi mer och bekräftar täckning på er adress.',
ctaText: 'Kontakta oss',
ctaLink: '/kontakt',
sectionBackground: 'yellow',
alignment: 'center',
size: 'large',
anchorId: 'kontakt',
},
])
console.log('---')
console.log('Done. Remember to attach images manually:')
console.log(' Block 1 (fdAlternateHero): modern office landscape, >= 1920px wide, landscape')
console.log(' Block 3 (fdUspChecklist): technician installing network equipment, square or 4:3')
console.log(' Block 6 (fdCtaSideImage): meeting room / workstations, 16:9, navy overlay applied by block')
}
seed().catch((err) => {
console.error('Seed failed:', err)
process.exit(1)
})