-- ═══════════════════════════════════════════════════════════════
-- SORU-CEVAP ARŞİV SİSTEMİ
-- Kullanıcı soruları, AI cevapları ve jargon toplama
-- ═══════════════════════════════════════════════════════════════

-- 1. Mevcut pdf_qa_cache tablosunu genişlet (varsa)
ALTER TABLE pdf_qa_cache 
    ADD COLUMN IF NOT EXISTS original_question TEXT COMMENT 'Kullanıcının orijinal sorusu (jargon ile)',
    ADD COLUMN IF NOT EXISTS normalized_question VARCHAR(500) COMMENT 'Normalize edilmiş soru (arama için)',
    ADD COLUMN IF NOT EXISTS is_ai_generated TINYINT(1) DEFAULT 0 COMMENT 'AI tarafından mı oluşturuldu?',
    ADD COLUMN IF NOT EXISTS helpful_votes INT DEFAULT 0 COMMENT 'Faydalı oy sayısı',
    ADD COLUMN IF NOT EXISTS not_helpful_votes INT DEFAULT 0 COMMENT 'Faydalı değil oy sayısı',
    ADD COLUMN IF NOT EXISTS page_references JSON COMMENT 'Cevaptaki sayfa referansları [45, 67, 120]',
    ADD COLUMN IF NOT EXISTS jargon_detected JSON COMMENT 'Tespit edilen jargon terimleri';

-- 2. Jargon indeksi (arama için)
CREATE INDEX IF NOT EXISTS idx_qa_normalized ON pdf_qa_cache(normalized_question(100));
CREATE INDEX IF NOT EXISTS idx_qa_helpful ON pdf_qa_cache(helpful_votes DESC);

-- ═══════════════════════════════════════════════════════════════
-- TEKNİSYEN JARGON SÖZLÜĞÜ
-- Saha dilinden teknik terime çeviri
-- ═══════════════════════════════════════════════════════════════

CREATE TABLE IF NOT EXISTS technician_jargon (
    id INT AUTO_INCREMENT PRIMARY KEY,
    
    -- Jargon bilgileri
    jargon VARCHAR(255) NOT NULL COMMENT 'Saha jargonu: "bom bayılıyor"',
    jargon_normalized VARCHAR(255) NOT NULL COMMENT 'Normalize: "bom bayiliyor"',
    technical_term VARCHAR(255) NOT NULL COMMENT 'Teknik: "Boom Cylinder Drift"',
    technical_term_tr VARCHAR(255) COMMENT 'Türkçe teknik: "Bom Silindir Kaçırması"',
    
    -- Kategori
    brand VARCHAR(100) DEFAULT 'Genel' COMMENT 'İlgili marka',
    system_type VARCHAR(100) COMMENT 'Sistem: Motor, Hidrolik, Elektrik',
    machine_type VARCHAR(100) COMMENT 'Makine tipi: Ekskavatör, Yükleyici',
    
    -- İstatistik
    usage_count INT DEFAULT 1 COMMENT 'Kaç kez kullanıldı',
    confidence_score DECIMAL(3,2) DEFAULT 0.80 COMMENT 'Güven skoru 0-1',
    verified TINYINT(1) DEFAULT 0 COMMENT 'Manuel onaylandı mı?',
    
    -- Meta
    source VARCHAR(50) DEFAULT 'user_query' COMMENT 'Kaynak: user_query, ai_detected, manual',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    UNIQUE KEY uk_jargon (jargon_normalized),
    INDEX idx_brand (brand),
    INDEX idx_system (system_type),
    INDEX idx_usage (usage_count DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ═══════════════════════════════════════════════════════════════
-- BAŞLANGIÇ VERİLERİ - YAYGIN JARGONLAR
-- ═══════════════════════════════════════════════════════════════

INSERT IGNORE INTO technician_jargon (jargon, jargon_normalized, technical_term, technical_term_tr, system_type) VALUES
-- Hidrolik jargonları
('bom bayılıyor', 'bom bayiliyor', 'Boom Cylinder Drift', 'Bom Silindir Kaçırması', 'Hidrolik'),
('kol düşüyor', 'kol dusuyor', 'Arm Cylinder Leak', 'Kol Silindir Sızıntısı', 'Hidrolik'),
('kepçe tutmuyor', 'kepce tutmuyor', 'Bucket Cylinder Drift', 'Kepçe Silindir Kaçırması', 'Hidrolik'),
('pompa bağırıyor', 'pompa bagiriyor', 'Hydraulic Pump Cavitation', 'Hidrolik Pompa Kavitasyonu', 'Hidrolik'),
('sistem ısınıyor', 'sistem isiniyor', 'Hydraulic Overheating', 'Hidrolik Aşırı Isınma', 'Hidrolik'),
('basınç düşük', 'basinc dusuk', 'Low Hydraulic Pressure', 'Düşük Hidrolik Basıncı', 'Hidrolik'),
('valf kaçırıyor', 'valf kaciriyor', 'Control Valve Leak', 'Kontrol Valfi Sızıntısı', 'Hidrolik'),

-- Motor jargonları
('motor uyuşuyor', 'motor uyusuyor', 'Engine Stall', 'Motor Durması', 'Motor'),
('makine çekmiyor', 'makine cekmiyor', 'Power Loss', 'Güç Kaybı', 'Motor'),
('conta attı', 'conta atti', 'Gasket Blown', 'Conta Patlaması', 'Motor'),
('turbo ıslık çalıyor', 'turbo islik caliyor', 'Turbo Whistle', 'Turbo Islık Sesi', 'Motor'),
('egzoz siyah', 'egzoz siyah', 'Black Exhaust Smoke', 'Siyah Egzoz Dumanı', 'Motor'),
('egzoz beyaz', 'egzoz beyaz', 'White Exhaust Smoke', 'Beyaz Egzoz Dumanı', 'Motor'),
('motor titriyor', 'motor titriyor', 'Engine Vibration', 'Motor Titreşimi', 'Motor'),
('mazot yemiyor', 'mazot yemiyor', 'Fuel Starvation', 'Yakıt Yetersizliği', 'Motor'),

-- Şanzıman jargonları
('debriyaj kaçırıyor', 'debriyaj kaciriyor', 'Clutch Slipping', 'Debriyaj Kaçırması', 'Şanzıman'),
('vites girmiyor', 'vites girmiyor', 'Gear Engagement Failure', 'Vites Giriş Arızası', 'Şanzıman'),
('şanzıman uğulduyor', 'sanziman ugulduyor', 'Transmission Whine', 'Şanzıman Uğultusu', 'Şanzıman'),

-- Elektrik jargonları
('akü çekmiyor', 'aku cekmiyor', 'Battery Discharge', 'Akü Boşalması', 'Elektrik'),
('marş basmıyor', 'mars basmiyor', 'Starter Motor Failure', 'Marş Motoru Arızası', 'Elektrik'),
('sigorta atıyor', 'sigorta atiyor', 'Fuse Blown', 'Sigorta Atması', 'Elektrik'),
('lamba yanmıyor', 'lamba yanmiyor', 'Warning Light Failure', 'Uyarı Lambası Arızası', 'Elektrik'),
('sensör bozuk', 'sensor bozuk', 'Sensor Malfunction', 'Sensör Arızası', 'Elektrik'),

-- Genel jargonlar
('ses yapıyor', 'ses yapiyor', 'Abnormal Noise', 'Anormal Ses', 'Genel'),
('yağ yiyor', 'yag yiyor', 'Oil Consumption', 'Yağ Tüketimi', 'Genel'),
('sızıntı var', 'sizinti var', 'Leak Detected', 'Sızıntı Tespit', 'Genel'),
('titreşim var', 'titresim var', 'Vibration Issue', 'Titreşim Sorunu', 'Genel');

-- ═══════════════════════════════════════════════════════════════
-- POPÜLER SORULAR GÖRÜNÜMÜ
-- ═══════════════════════════════════════════════════════════════

CREATE OR REPLACE VIEW v_popular_questions AS
SELECT 
    pq.id,
    pq.pdf_path,
    pq.question,
    pq.original_question,
    LEFT(pq.answer, 200) as answer_preview,
    pq.view_count,
    pq.helpful_votes,
    pq.page_references,
    pq.created_at
FROM pdf_qa_cache pq
WHERE pq.view_count >= 2 OR pq.helpful_votes >= 1
ORDER BY (pq.view_count * 0.3 + pq.helpful_votes * 0.7) DESC;

-- ═══════════════════════════════════════════════════════════════
-- JARGON ARAMA FONKSİYONU İÇİN INDEX
-- ═══════════════════════════════════════════════════════════════

CREATE FULLTEXT INDEX IF NOT EXISTS ft_jargon ON technician_jargon(jargon, technical_term, technical_term_tr);

