-- Migration: Create smart_package_components table
-- Description: LEGO-style reusable components for building SmartPackages
-- Date: 2025-11-07

CREATE TABLE IF NOT EXISTS smart_package_components (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  description TEXT,
  category ENUM('basis', 'special', 'finish', 'service') NOT NULL DEFAULT 'basis',
  base_hours DECIMAL(10, 2) DEFAULT 0,
  base_price DECIMAL(10, 2) DEFAULT 0,
  unit VARCHAR(50) DEFAULT 'stk',
  complexity_factors JSON,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX idx_category (category),
  INDEX idx_name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Insert sample LEGO components
INSERT INTO smart_package_components (name, description, category, base_hours, base_price, unit, complexity_factors) VALUES
('Tag Nedtagning', 'Forsigtig nedtagning af eksisterende tagmaterialer med sortering til genanvendelse', 'basis', 16, 850, 'm²', '{"lille_parcelhus": 0.7, "eternit": 1.6, "tegl": 1.2}'),
('Moderne Isolering', 'Energieffektiv isolering med dampspærre og ventilation for optimal indeklima', 'basis', 32, 1650, 'm²', '{}'),
('Spær Inspektion', 'Grundig inspektion af spærkonstruktion med dokumentation og nødvendige forstærkninger', 'basis', 12, 650, 'stk', '{}'),
('Tagdækning B7', 'Professionel lægning af B7 tagplader inkl. lægter og fastgørelse', 'basis', 24, 1200, 'm²', '{}'),
('Køkken Nedrivning', 'Forsigtig nedrivning af eksisterende køkken med sortering til genanvendelse', 'basis', 14, 720, 'stk', '{}'),
('Køkken Montage', 'Præcis montering af nye køkkenskabe med justering og funktionstest', 'basis', 28, 1450, 'stk', '{}'),
('Badeværelse Membran', 'Vandtæt gulvmembran installation med 20 års vandskade-garanti', 'basis', 12, 850, 'm²', '{}'),
('Smart Home Integration', 'App-styring med automatiserede funktioner for belysning, varme, sikkerhed og energi-optimering', 'special', 16, 18500, 'stk', '{}'),
('Gulvvarme System', 'Komplet gulvvarme installation med smart termostatstyring og energioptimering', 'special', 24, 12500, 'm²', '{}'),
('Energi Optimering', 'A-klasse energimærke med 40% besparelse garanti - inkl. premium isolering og 3-lags vinduer', 'special', 48, 3500, 'm²', '{}'),
('Premium Finish', 'Håndværksmæssig perfektion med ekstra kvalitetskontrol og æstetisk finish', 'finish', 8, 6500, 'stk', '{}'),
('Miljøvenlig Behandling', 'Økologiske materialer med sundhedscertificering og bæredygtig finish', 'finish', 6, 4500, 'stk', '{}'),
('Garanti Plus', '10-års omfattende garanti med årlig servicekontrol og prioriteret support', 'service', 0, 5000, 'stk', '{}'),
('Ekspres Service', '24/7 respons med samme-dag reparation og dedikeret hotline', 'service', 0, 8500, 'stk', '{}')
ON DUPLICATE KEY UPDATE updated_at = CURRENT_TIMESTAMP;

-- Verify insertion
SELECT 
  category,
  COUNT(*) as count,
  SUM(base_price) as total_value
FROM smart_package_components
GROUP BY category
ORDER BY 
  FIELD(category, 'basis', 'special', 'finish', 'service');
