-- ============================================
-- MODÜL YÖNETİM SİSTEMİ - VERİTABANI KURULUMU
-- PHP 7.4 / MySQL 5.4 Uyumlu
-- ============================================

CREATE DATABASE IF NOT EXISTS modul_sistemi CHARACTER SET utf8 COLLATE utf8_turkish_ci;
USE modul_sistemi;

-- Modüller
CREATE TABLE IF NOT EXISTS moduller (
    id INT AUTO_INCREMENT PRIMARY KEY,
    modul_adi VARCHAR(200) NOT NULL,
    modul_uzantisi VARCHAR(100) NOT NULL UNIQUE,
    aciklama TEXT,
    php_kodu LONGTEXT,
    versiyon VARCHAR(20) DEFAULT '1.0.0',
    versiyon_no INT DEFAULT 1,
    durum TINYINT(1) DEFAULT 1,
    olusturma_tarihi DATETIME DEFAULT CURRENT_TIMESTAMP,
    guncelleme_tarihi DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Güncelleme Logları
CREATE TABLE IF NOT EXISTS guncelleme_loglari (
    id INT AUTO_INCREMENT PRIMARY KEY,
    site_id INT NOT NULL,
    modul_id INT NOT NULL,
    eski_versiyon INT,
    yeni_versiyon INT,
    islem_tipi ENUM('guncelleme','ilk_yukle','basarisiz') DEFAULT 'guncelleme',
    ip_adresi VARCHAR(45),
    log_tarihi DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (site_id) REFERENCES siteler(id) ON DELETE CASCADE,
    FOREIGN KEY (modul_id) REFERENCES moduller(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Modül Versiyon Geçmişi
CREATE TABLE IF NOT EXISTS versiyon_gecmisi (
    id INT AUTO_INCREMENT PRIMARY KEY,
    modul_id INT NOT NULL,
    versiyon_no INT NOT NULL,
    versiyon_adi VARCHAR(20),
    php_kodu LONGTEXT,
    degisiklik_notu TEXT,
    olusturan_admin INT,
    olusturma_tarihi DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (modul_id) REFERENCES moduller(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Şifre: Admin123!  (değiştirmeyi unutmayın!)

-- Örnek modül
INSERT INTO moduller (modul_adi, modul_uzantisi, aciklama, php_kodu, versiyon, versiyon_no) VALUES
('Yayıncı Modülü', 'modul_yayinci', 'Ana yayıncı modülü - içerik yönetimi',
'<?php
// Yayıncı Modülü v1.0.0
// Bu dosya otomatik güncellenir - elle düzenlemeyin!

function yayinci_icerik_goster($kategori = "genel") {
    echo "<div class=\"yayinci-widget\">";
    echo "<h3>Yayıncı İçerik Bölümü</h3>";
    echo "<p>Kategori: " . htmlspecialchars($kategori) . "</p>";
    echo "</div>";
}
?>',
'1.0.0', 1);
