-- Migration 005: Bugtracker Push-ID, Ziel-Agent, Tags und erweiterte Schweregrade
--
-- HINWEIS ZUR UEBERARBEITUNG:
-- Die urspruengliche Fassung nutzte PREPARE/EXECUTE mit dynamischem SQL, um
-- Spalten bedingt anzulegen. Die darin enthaltenen Semikolons steckten in
-- String-Literalen und wurden vom damaligen explode(';')-Installer als
-- Statement-Ende missverstanden. Ergebnis: die Migration schlug still fehl,
-- die Spalten push_id/target_agent/tags fehlten und jeder Bug-Report lief in
-- "Unknown column 'push_id'".
--
-- Jetzt plain SQL. Der Migrator toleriert gezielt "Spalte existiert bereits"
-- (Fehlercode 1060) und "Index existiert bereits" (1061), sodass diese
-- Migration auch auf einer bereits teilweise migrierten Datenbank durchlaeuft.

ALTER TABLE bugtracker_items
  MODIFY COLUMN severity ENUM('idea', 'wishlist', 'low', 'medium', 'high', 'critical') NOT NULL DEFAULT 'medium';

ALTER TABLE bugtracker_items ADD COLUMN push_id VARCHAR(128) NULL AFTER occurrence_count;
ALTER TABLE bugtracker_items ADD COLUMN target_agent VARCHAR(100) NULL AFTER push_id;
ALTER TABLE bugtracker_items ADD COLUMN tags VARCHAR(255) NULL AFTER target_agent;

ALTER TABLE bugtracker_items ADD KEY ix_bt_push_id (push_id);

-- Projekt fuer das Deploymentcenter selbst. Kein Demo-Datensatz, sondern das
-- Projekt, unter dem die Plattform ihre eigenen Fehler meldet.
INSERT INTO dc_projects (slug, name, notes, default_cache_ttl_hours) VALUES
('deploymentcenter', 'Deployment Center', 'Zentrale Verwaltungs- & Update-Plattform', 168)
ON DUPLICATE KEY UPDATE name = VALUES(name);

-- Der frueher hier stehende Beispiel-Eintrag (bugtracker_items id 4) ist
-- entfallen. Er wurde mit fester ID eingefuegt und waere dadurch bei jedem
-- Migrationslauf auf einer produktiv genutzten Datenbank wieder aufgetaucht,
-- nachdem man ihn geloescht hat.
