-- Takipçi Panel Veritabanı Şeması

CREATE DATABASE IF NOT EXISTS takipci_panel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

USE takipci_panel;

-- Admin kullanıcıları tablosu
CREATE TABLE IF NOT EXISTS admins (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Siteler tablosu (Multi-site yönetimi)
CREATE TABLE IF NOT EXISTS sites (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    domain VARCHAR(100) NOT NULL UNIQUE,
    slug VARCHAR(50) NOT NULL UNIQUE,
    title VARCHAR(200),
    description TEXT,
    logo VARCHAR(200),
    favicon VARCHAR(200),
    primary_color VARCHAR(20) DEFAULT '#6366F1',
    secondary_color VARCHAR(20) DEFAULT '#F59E0B',
    accent_color VARCHAR(20) DEFAULT '#10B981',
    background_color VARCHAR(20) DEFAULT '#F9FAFB',
    text_color VARCHAR(20) DEFAULT '#111827',
    font_family VARCHAR(100) DEFAULT 'Inter, sans-serif',
    meta_keywords TEXT,
    meta_description TEXT,
    google_analytics VARCHAR(50),
    facebook_pixel VARCHAR(50),
    custom_css LONGTEXT,
    custom_js LONGTEXT,
    seo_content LONGTEXT,
    hero_background_image VARCHAR(500),
    is_active BOOLEAN DEFAULT TRUE,
    is_maintenance BOOLEAN DEFAULT FALSE,
    maintenance_message TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Platformlar tablosu (Instagram, TikTok, Twitter vb.)
CREATE TABLE IF NOT EXISTS platforms (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL UNIQUE,
    slug VARCHAR(50) NOT NULL UNIQUE,
    icon VARCHAR(100),
    color VARCHAR(20),
    is_active BOOLEAN DEFAULT TRUE,
    sort_order INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- Hizmet kategorileri tablosu (Hierarchical struktur - parent/child)
CREATE TABLE IF NOT EXISTS categories (
    id INT PRIMARY KEY AUTO_INCREMENT,
    platform_id INT NOT NULL,
    parent_id INT DEFAULT NULL,
    name VARCHAR(100) NOT NULL,
    slug VARCHAR(100) NOT NULL,
    description TEXT,
    icon VARCHAR(100),
    color VARCHAR(20),
    is_active BOOLEAN DEFAULT TRUE,
    sort_order INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (platform_id) REFERENCES platforms(id) ON DELETE CASCADE,
    FOREIGN KEY (parent_id) REFERENCES categories(id) ON DELETE CASCADE,
    UNIQUE KEY unique_platform_parent_slug (platform_id, parent_id, slug)
);

-- Ürünler tablosu
CREATE TABLE IF NOT EXISTS products (
    id INT PRIMARY KEY AUTO_INCREMENT,
    category_id INT NOT NULL,
    name VARCHAR(200) NOT NULL,
    description TEXT,
    quantity INT NOT NULL,
    original_price DECIMAL(10,2) NOT NULL,
    sale_price DECIMAL(10,2) NOT NULL,
    discount_percentage INT DEFAULT 0,
    is_active BOOLEAN DEFAULT TRUE,
    sort_order INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE CASCADE
);

-- Siparişler tablosu
CREATE TABLE IF NOT EXISTS orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    order_number VARCHAR(50) NOT NULL UNIQUE,
    product_id INT NOT NULL,
    customer_email VARCHAR(100),
    customer_phone VARCHAR(20),
    target_url VARCHAR(500) NOT NULL,
    quantity INT NOT NULL,
    unit_price DECIMAL(10,2) NOT NULL,
    total_price DECIMAL(10,2) NOT NULL,
    status ENUM('pending', 'processing', 'completed', 'cancelled', 'refunded') DEFAULT 'pending',
    payment_status ENUM('pending', 'paid', 'failed', 'refunded') DEFAULT 'pending',
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE
);

-- Varsayılan admin kullanıcısı (şifre: heymuco321*!*)
INSERT INTO admins (username, email, password) VALUES 
('admin', 'admin@mucahit.com', '$2b$10$C4v1HULO/gLfMV1Dh.DsZusPj6xG3PCrHxO2HAjiW.pKUo2TR3AX2');

-- Örnek siteler
INSERT INTO sites (name, domain, slug, title, description, primary_color, secondary_color, accent_color, meta_description) VALUES
('Takipçi Paneli', 'takipci-paneli.com', 'takipci-paneli', 'Takipçi Paneli - Sosyal Medya Hizmetleri', 'Instagram, TikTok, Twitter ve diğer sosyal medya platformları için güvenli takipçi, beğeni ve görüntülenme hizmetleri.', '#E4405F', '#FF0050', '#10B981', 'Sosyal medya takipçi, beğeni ve görüntülenme hizmetleri. Güvenli, hızlı ve uygun fiyatlı paketler.'),
('SMM Panel Pro', 'smm-panel-pro.com', 'smm-panel-pro', 'SMM Panel Pro - Profesyonel Sosyal Medya Hizmetleri', 'Profesyonel sosyal medya pazarlama hizmetleri. Instagram, TikTok, YouTube ve diğer platformlar için kaliteli hizmetler.', '#6366F1', '#8B5CF6', '#F59E0B', 'Profesyonel SMM panel hizmetleri. Sosyal medya büyütme ve pazarlama çözümleri.'),
('Sosyal Boost', 'sosyal-boost.net', 'sosyal-boost', 'Sosyal Boost - Sosyal Medya Büyütme', 'Sosyal medya hesaplarınızı büyütmek için en iyi hizmetler. Organik ve güvenli çözümler.', '#10B981', '#059669', '#F59E0B', 'Sosyal medya hesap büyütme hizmetleri. Organik takipçi, beğeni ve etkileşim artırma.');

-- Varsayılan platformlar
INSERT INTO platforms (name, slug, icon, color, sort_order) VALUES
('Instagram', 'instagram', '📷', '#E4405F', 1),
('TikTok', 'tiktok', '🎵', '#000000', 2),
('Twitter', 'twitter', '🐦', '#1DA1F2', 3),
('YouTube', 'youtube', '▶️', '#FF0000', 4),
('Facebook', 'facebook', '👥', '#1877F2', 5),
('Spotify', 'spotify', '🎧', '#1DB954', 6),
('Google', 'google', '🔍', '#4285F4', 7),
('Discord', 'discord', '🎮', '#5865F2', 8),
('Telegram', 'telegram', '✈️', '#0088CC', 9);

-- Instagram kategorileri (direkt platform altında)
INSERT INTO categories (platform_id, parent_id, name, slug, description, icon, color, sort_order) VALUES
(1, NULL, 'Ucuz Instagram Takipçi', 'ucuz-takipci', 'En uygun fiyatlarla Instagram takipçi pakitleri', '💰', '#10B981', 1),
(1, NULL, 'Düşmeyen Instagram Takipçi', 'dusmeyen-takipci', 'Kaliteli ve düşmeyen Instagram takipçi pakitleri', '⭐', '#F59E0B', 2),
(1, NULL, 'Türk Instagram Takipçi', 'turk-takipci', 'Türk kullanıcılardan oluşan takipçi pakitleri', '🇹🇷', '#DC2626', 3),
(1, NULL, 'Gerçek Instagram Takipçi', 'gercek-takipci', 'Aktif ve gerçek Instagram takipçileri', '✅', '#059669', 4),
(1, NULL, 'Instagram Beğeni', 'instagram-begeni', 'Instagram gönderi beğeni pakitleri', '❤️', '#FF3040', 5),
(1, NULL, 'Instagram Görüntülenme', 'instagram-goruntulenme', 'Instagram hikaye ve video görüntülenme', '👁️', '#8B5CF6', 6);

-- TikTok kategorileri (direkt platform altında)
INSERT INTO categories (platform_id, parent_id, name, slug, description, icon, color, sort_order) VALUES
(2, NULL, 'Ucuz TikTok Takipçi', 'ucuz-takipci', 'Uygun fiyatlı TikTok takipçi pakitleri', '💰', '#10B981', 1),
(2, NULL, 'Düşmeyen TikTok Takipçi', 'dusmeyen-takipci', 'Kaliteli TikTok takipçi pakitleri', '⭐', '#F59E0B', 2),
(2, NULL, 'Türk TikTok Takipçi', 'turk-takipci', 'Türk TikTok kullanıcı takipçileri', '🇹🇷', '#DC2626', 3),
(2, NULL, 'TikTok Beğeni', 'tiktok-begeni', 'TikTok video beğeni pakitleri', '❤️', '#FF0050', 4),
(2, NULL, 'TikTok İzlenme', 'tiktok-izlenme', 'TikTok video izlenme pakitleri', '👁️', '#25F4EE', 5);

-- Instagram Ucuz Takipçi ürünleri (category_id: 1)
INSERT INTO products (category_id, name, quantity, original_price, sale_price, discount_percentage, sort_order) VALUES
(1, '250 Ucuz Instagram Takipçi', 250, 46.88, 42.25, 10, 1),
(1, '500 Ucuz Instagram Takipçi', 500, 93.75, 84.00, 10, 2),
(1, '1.000 Ucuz Instagram Takipçi', 1000, 187.50, 168.75, 10, 3),
(1, '2.500 Ucuz Instagram Takipçi', 2500, 468.75, 421.87, 10, 4),
(1, '5.000 Ucuz Instagram Takipçi', 5000, 937.50, 843.75, 10, 5);

-- Instagram Düşmeyen Takipçi ürünleri (category_id: 2)
INSERT INTO products (category_id, name, quantity, original_price, sale_price, discount_percentage, sort_order) VALUES
(2, '250 Düşmeyen Instagram Takipçi', 250, 75.00, 67.50, 10, 1),
(2, '500 Düşmeyen Instagram Takipçi', 500, 150.00, 135.00, 10, 2),
(2, '1.000 Düşmeyen Instagram Takipçi', 1000, 300.00, 270.00, 10, 3),
(2, '2.500 Düşmeyen Instagram Takipçi', 2500, 750.00, 675.00, 10, 4),
(2, '5.000 Düşmeyen Instagram Takipçi', 5000, 1500.00, 1350.00, 10, 5);

-- Instagram Türk Takipçi ürünleri (category_id: 3)
INSERT INTO products (category_id, name, quantity, original_price, sale_price, discount_percentage, sort_order) VALUES
(3, '250 Türk Instagram Takipçi', 250, 125.00, 112.50, 10, 1),
(3, '500 Türk Instagram Takipçi', 500, 250.00, 225.00, 10, 2),
(3, '1.000 Türk Instagram Takipçi', 1000, 500.00, 450.00, 10, 3),
(3, '2.500 Türk Instagram Takipçi', 2500, 1250.00, 1125.00, 10, 4);

-- Instagram Gerçek Takipçi ürünleri (category_id: 4)
INSERT INTO products (category_id, name, quantity, original_price, sale_price, discount_percentage, sort_order) VALUES
(4, '100 Gerçek Instagram Takipçi', 100, 200.00, 180.00, 10, 1),
(4, '250 Gerçek Instagram Takipçi', 250, 500.00, 450.00, 10, 2),
(4, '500 Gerçek Instagram Takipçi', 500, 1000.00, 900.00, 10, 3),
(4, '1.000 Gerçek Instagram Takipçi', 1000, 2000.00, 1800.00, 10, 4);

-- Ürün/Kategori FAQ tablosu
CREATE TABLE IF NOT EXISTS product_faqs (
    id INT PRIMARY KEY AUTO_INCREMENT,
    site_id INT NOT NULL, -- Hangi siteye ait
    category_id INT NULL, -- NULL ise tüm kategoriler için, değer varsa sadece o kategori
    product_id INT NULL, -- NULL ise kategori geneli, değer varsa sadece o ürün
    question VARCHAR(500) NOT NULL,
    answer TEXT NOT NULL,
    sort_order INT DEFAULT 0,
    is_active BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (site_id) REFERENCES sites(id) ON DELETE CASCADE,
    FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE CASCADE,
    FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE,
    INDEX idx_site_category_product (site_id, category_id, product_id),
    INDEX idx_sort_order (sort_order),
    INDEX idx_active (is_active)
);

-- Örnek ürün FAQ'ları
INSERT INTO product_faqs (site_id, category_id, product_id, question, answer, sort_order) VALUES
-- Site 1 - Instagram Ucuz Takipçi kategorisi FAQ'ları
(1, 1, NULL, 'Ucuz takipçiler gerçek mi?', 'Ucuz takipçi paketlerimiz bot hesaplardan oluşur ve hızlı teslimat için idealdir.', 1),
(1, 1, NULL, 'Ne kadar sürede gelir?', 'Ucuz takipçi paketleri 1-6 saat içerisinde teslim edilir.', 2),
(1, 1, NULL, 'Düşer mi?', 'Ucuz paketlerde %10-20 düşüş normal karşılanmalıdır.', 3),

-- Site 1 - Instagram Düşmeyen Takipçi kategorisi FAQ'ları  
(1, 2, NULL, 'Gerçekten düşmez mi?', 'Evet, 6 ay boyunca %90 garanti sunuyoruz. Düşen takipçiler ücretsiz tamamlanır.', 1),
(1, 2, NULL, 'Teslimat süresi nedir?', 'Kaliteli filtreleme nedeniyle 12-48 saat arası teslimat süresi bulunur.', 2),

-- Site 1 - Instagram Türk Takipçi kategorisi FAQ'ları
(1, 3, NULL, 'Türk takipçiler etkileşim yapar mı?', 'Türk takipçilerimizin bir kısmı organik etkileşim gösterebilir ancak garanti veremeyiz.', 1),
(1, 3, NULL, 'Profil fotoğrafları var mı?', 'Evet, tüm Türk takipçilerimizin profil fotoğrafı ve Türkçe isimleri vardır.', 2),

-- Site 2 - Farklı FAQ'lar
(2, 1, NULL, 'Toplu sipariş verebilir miyim?', 'Evet, API entegrasyonu ile binlerce takipçiyi aynı anda sipariş edebilirsiniz.', 1),
(2, 1, NULL, 'Garanti süresi nedir?', 'Tüm hizmetlerimizde 30 gün garanti bulunmaktadır.', 2);