bmc_hub/migrations/162_seed_manual_articles.sql

165 lines
6.7 KiB
MySQL
Raw Normal View History

-- 162_seed_manual_articles.sql
-- Seed starter manuals for the Manual module (idempotent)
-- 1) Core manual articles
INSERT INTO manual_articles (title, slug, content, summary, module, tags, difficulty)
VALUES
(
'Hvordan opretter jeg en sag?',
'hvordan-opretter-jeg-en-sag',
'# Opret en ny sag\n\nDenne guide viser den hurtigste vej til at oprette en sag i BMC Hub.\n\n## Hurtig version\n1. Klik på plus-ikonet i topbaren.\n2. Vælg sag-oprettelse.\n3. Udfyld titel, kunde og beskrivelse.\n4. Sæt status og ansvarlig.\n5. Gem sagen.\n\n## Gode vaner\n- Brug en præcis titel, så sagen kan findes senere.\n- Tilføj tags med det samme for bedre filtrering.\n- Vælg korrekt prioritet fra start.',
'Trin-for-trin guide til at oprette en ny sag korrekt og hurtigt.',
'sag',
'["sag", "opgave", "ticket", "opret"]'::jsonb,
'beginner'
),
(
'Sådan finder og opdaterer du hardware',
'saadan-finder-og-opdaterer-du-hardware',
'# Find og opdater hardware\n\nGuiden hjælper dig med at finde et hardware-asset og opdatere nøglefelter uden fejl.\n\n## Hvad du bør opdatere\n- Serienummer\n- Ejer/kunde\n- Lokation\n- Status\n\n## Tip\nHvis du ikke finder enheden via navn, så prøv serienummer eller ESET UUID.',
'Find, verificer og opdatér hardwaredata i supportflowet.',
'hardware',
'["hardware", "asset", "enhed", "serial"]'::jsonb,
'beginner'
),
(
'Mail: sådan finder du en tråd og følger op',
'mail-saadan-finder-du-en-traad-og-foelger-op',
'# Mail workflow\n\nBrug denne guide når du skal finde en mailtråd, forstå historik og sende opfølgning.\n\n## Fokus\n- Find korrekt tråd\n- Tjek vedhæftninger\n- Link til sag\n- Send tydelig opfølgning\n\n## Tip\nBrug emnelinje + kunde som første filter ved søgning.',
'Praktisk flow for mailbehandling og opfølgning i Hubben.',
'mail',
'["mail", "email", "traad", "opfoelgning"]'::jsonb,
'advanced'
)
ON CONFLICT (slug) DO UPDATE
SET
title = EXCLUDED.title,
content = EXCLUDED.content,
summary = EXCLUDED.summary,
module = EXCLUDED.module,
tags = EXCLUDED.tags,
difficulty = EXCLUDED.difficulty,
updated_at = CURRENT_TIMESTAMP,
deleted_at = NULL;
-- 2) Steps for "Hvordan opretter jeg en sag?"
WITH target AS (
SELECT id FROM manual_articles WHERE slug = 'hvordan-opretter-jeg-en-sag' LIMIT 1
)
INSERT INTO manual_steps (manual_id, step_number, title, content, image_url, video_url)
SELECT
target.id,
s.step_number,
s.title,
s.content,
s.image_url,
s.video_url
FROM target
CROSS JOIN (
VALUES
(1, 'Klik på +', 'Brug plus-knappen i topbaren til at starte oprettelse af ny sag.', NULL, NULL),
(2, 'Vælg sag-oprettelse', 'Vælg oprettelsesflow for sag, ikke ordre eller anden type.', NULL, NULL),
(3, 'Udfyld kernefelter', 'Angiv titel, kunde, beskrivelse og ansvarlig bruger.', NULL, NULL),
(4, 'Sæt status og prioritet', 'Sæt status til fx "åben" og vælg en prioritet der passer.', NULL, NULL),
(5, 'Gem sagen', 'Klik gem og kontrollér at sagen vises i listen.', NULL, NULL)
) AS s(step_number, title, content, image_url, video_url)
ON CONFLICT (manual_id, step_number) DO UPDATE
SET
title = EXCLUDED.title,
content = EXCLUDED.content,
image_url = EXCLUDED.image_url,
video_url = EXCLUDED.video_url,
updated_at = CURRENT_TIMESTAMP;
-- 3) Steps for hardware manual
WITH target AS (
SELECT id FROM manual_articles WHERE slug = 'saadan-finder-og-opdaterer-du-hardware' LIMIT 1
)
INSERT INTO manual_steps (manual_id, step_number, title, content, image_url, video_url)
SELECT
target.id,
s.step_number,
s.title,
s.content,
s.image_url,
s.video_url
FROM target
CROSS JOIN (
VALUES
(1, 'Åbn hardwaremodulet', 'Gå til Support -> Hardware for at se assets.', NULL, NULL),
(2, 'Søg enheden frem', 'Søg på serienummer, model eller kundenavn.', NULL, NULL),
(3, 'Åbn detaljesiden', 'Klik på enheden og kontroller stamdata.', NULL, NULL),
(4, 'Ret felter', 'Opdater fx lokation, ejer og status og gem ændringer.', NULL, NULL)
) AS s(step_number, title, content, image_url, video_url)
ON CONFLICT (manual_id, step_number) DO UPDATE
SET
title = EXCLUDED.title,
content = EXCLUDED.content,
image_url = EXCLUDED.image_url,
video_url = EXCLUDED.video_url,
updated_at = CURRENT_TIMESTAMP;
-- 4) Steps for mail manual
WITH target AS (
SELECT id FROM manual_articles WHERE slug = 'mail-saadan-finder-du-en-traad-og-foelger-op' LIMIT 1
)
INSERT INTO manual_steps (manual_id, step_number, title, content, image_url, video_url)
SELECT
target.id,
s.step_number,
s.title,
s.content,
s.image_url,
s.video_url
FROM target
CROSS JOIN (
VALUES
(1, 'Åbn emailmodulet', 'Gå til Email i hovedmenuen.', NULL, NULL),
(2, 'Søg på tråd', 'Søg på emne, afsender eller kunde.', NULL, NULL),
(3, 'Kontrollér historik', 'Læs hele tråden og tjek vedhæftninger.', NULL, NULL),
(4, 'Link til sag', 'Link mailtråden til relevant sag hvis den findes.', NULL, NULL),
(5, 'Send opfølgning', 'Svar kort og tydeligt med næste handling og tidspunkt.', NULL, NULL)
) AS s(step_number, title, content, image_url, video_url)
ON CONFLICT (manual_id, step_number) DO UPDATE
SET
title = EXCLUDED.title,
content = EXCLUDED.content,
image_url = EXCLUDED.image_url,
video_url = EXCLUDED.video_url,
updated_at = CURRENT_TIMESTAMP;
-- 5) Context relations
INSERT INTO manual_relations (manual_id, related_module, related_tag, related_sag_type, related_manual_id)
SELECT m.id, 'sag', 'sag', 'ticket', NULL
FROM manual_articles m
WHERE m.slug = 'hvordan-opretter-jeg-en-sag'
AND NOT EXISTS (
SELECT 1 FROM manual_relations r
WHERE r.manual_id = m.id
AND COALESCE(r.related_module, '') = 'sag'
AND COALESCE(r.related_tag, '') = 'sag'
AND COALESCE(r.related_sag_type, '') = 'ticket'
);
INSERT INTO manual_relations (manual_id, related_module, related_tag, related_sag_type, related_manual_id)
SELECT m.id, 'hardware', 'hardware', NULL, NULL
FROM manual_articles m
WHERE m.slug = 'saadan-finder-og-opdaterer-du-hardware'
AND NOT EXISTS (
SELECT 1 FROM manual_relations r
WHERE r.manual_id = m.id
AND COALESCE(r.related_module, '') = 'hardware'
AND COALESCE(r.related_tag, '') = 'hardware'
);
INSERT INTO manual_relations (manual_id, related_module, related_tag, related_sag_type, related_manual_id)
SELECT m.id, 'mail', 'mail', NULL, NULL
FROM manual_articles m
WHERE m.slug = 'mail-saadan-finder-du-en-traad-og-foelger-op'
AND NOT EXISTS (
SELECT 1 FROM manual_relations r
WHERE r.manual_id = m.id
AND COALESCE(r.related_module, '') = 'mail'
AND COALESCE(r.related_tag, '') = 'mail'
);