-- E-Ticaret Sitesi Tam Veritabanı Yapısı
-- Tüm tablolar, indeksler ve veriler tek dosyada birleştirildi
-- Oluşturulma Tarihi: 13.11.2025

-- Veritabanı karakter seti ayarları
START TRANSACTION;


-- Veritabanı oluşturma
CREATE DATABASE IF NOT EXISTS `ata` CHARACTER SET utf8mb4 COLLATE utf8mb4_turkish_ci;
USE `ata`;

-- ========================================
-- TEMEL TABLOLAR
-- ========================================

-- Admin tablosu
CREATE TABLE `admins` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL,
  `full_name` varchar(100) NOT NULL,
  `role_id` int(11) DEFAULT 1 COMMENT 'Admin rolü ID\'si',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `email` (`email`),
  KEY `fk_admin_role` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Kategoriler tablosu
CREATE TABLE `categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `category_name` varchar(100) NOT NULL,
  `category_description` text DEFAULT NULL,
  `parent_id` int(11) DEFAULT 0,
  `category_image` varchar(255) DEFAULT NULL,
  `sort_order` int(11) DEFAULT 0,
  `status` tinyint(1) DEFAULT 1,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_parent_id` (`parent_id`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Ürünler tablosu
CREATE TABLE `products` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `product_name` varchar(200) NOT NULL,
  `product_description` text DEFAULT NULL,
  `product_short_description` text DEFAULT NULL,
  `category_id` int(11) DEFAULT NULL,
  `price` decimal(10,2) NOT NULL,
  `discount_price` decimal(10,2) DEFAULT NULL,
  `sku` varchar(100) DEFAULT NULL,
  `stock` int(11) DEFAULT 0,
  `min_stock` int(11) DEFAULT 5,
  `weight` decimal(8,2) DEFAULT NULL,
  `dimensions` varchar(100) DEFAULT NULL,
  `product_image` varchar(255) DEFAULT NULL,
  `product_gallery` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`product_gallery`)),
  `status` tinyint(1) DEFAULT 1,
  `featured` tinyint(1) DEFAULT 0,
  `seo_title` varchar(200) DEFAULT NULL,
  `seo_description` text DEFAULT NULL,
  `seo_keywords` varchar(500) DEFAULT NULL,
  `baslik_promptu` text DEFAULT NULL,
  `aciklama_promptu` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `meta_title` varchar(255) DEFAULT NULL,
  `meta_description` text DEFAULT NULL,
  `meta_keywords` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `sku` (`sku`),
  KEY `idx_category_id` (`category_id`),
  KEY `idx_status` (`status`),
  KEY `idx_featured` (`featured`),
  KEY `idx_price` (`price`),
  FULLTEXT KEY `idx_search` (`product_name`,`product_description`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Kullanıcılar tablosu
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(50) NOT NULL,
  `last_name` varchar(50) NOT NULL,
  `email` varchar(100) NOT NULL,
  `password` varchar(255) NOT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `tc_no` varchar(11) UNIQUE DEFAULT NULL,
  `birth_date` date DEFAULT NULL,
  `gender` enum('male','female','other') DEFAULT NULL,
  `email_verified` tinyint(1) DEFAULT 0,
  `verification_token` varchar(255) DEFAULT NULL,
  `reset_token` varchar(255) DEFAULT NULL,
  `reset_token_expires` datetime DEFAULT NULL,
  `status` tinyint(1) DEFAULT 1,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  KEY `idx_email` (`email`),
  KEY `idx_status` (`status`),
  KEY `idx_tc_no` (`tc_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Adresler tablosu
CREATE TABLE `addresses` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `address_type` enum('billing','shipping') DEFAULT 'shipping',
  `title` varchar(100) DEFAULT NULL,
  `first_name` varchar(50) NOT NULL,
  `last_name` varchar(50) NOT NULL,
  `company` varchar(100) DEFAULT NULL,
  `address` text NOT NULL,
  `city` varchar(100) NOT NULL,
  `district` varchar(100) DEFAULT NULL,
  `postal_code` varchar(10) DEFAULT NULL,
  `country` varchar(100) DEFAULT 'Türkiye',
  `phone` varchar(20) DEFAULT NULL,
  `is_default` tinyint(1) DEFAULT 0,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Siparişler tablosu
CREATE TABLE `orders` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `order_number` varchar(50) NOT NULL,
  `user_id` int(11) DEFAULT NULL,
  `address_id` int(11) DEFAULT NULL,
  `order_status` enum('pending','confirmed','processing','shipped','delivered','cancelled') DEFAULT 'pending',
  `payment_status` enum('pending','paid','failed','refunded') DEFAULT 'pending',
  `payment_method` enum('credit_card','bank_transfer','cash_on_delivery','paypal') DEFAULT 'cash_on_delivery',
  `tracking_number` varchar(100) DEFAULT NULL,
  `subtotal` decimal(10,2) NOT NULL,
  `tax_amount` decimal(10,2) DEFAULT 0.00,
  `shipping_cost` decimal(10,2) DEFAULT 0.00,
  `discount_amount` decimal(10,2) DEFAULT 0.00,
  `total_amount` decimal(10,2) NOT NULL,
  `currency` varchar(3) DEFAULT 'TRY',
  `notes` text DEFAULT NULL,
  `admin_notes` text DEFAULT NULL,
  `billing_address` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`billing_address`)),
  `shipping_address` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`shipping_address`)),
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `order_number` (`order_number`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_order_status` (`order_status`),
  KEY `idx_payment_status` (`payment_status`),
  KEY `idx_created_at` (`created_at`),
  KEY `idx_tracking_number` (`tracking_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Sipariş detayları tablosu
CREATE TABLE `order_items` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `order_id` int(11) NOT NULL,
  `product_id` int(11) NOT NULL,
  `product_name` varchar(200) NOT NULL,
  `price` decimal(10,2) NOT NULL,
  `quantity` int(11) NOT NULL,
  `total` decimal(10,2) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_order_id` (`order_id`),
  KEY `idx_product_id` (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Sepet tablosu
CREATE TABLE `cart` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL,
  `session_id` varchar(255) DEFAULT NULL,
  `product_id` int(11) NOT NULL,
  `quantity` int(11) NOT NULL DEFAULT 1,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_cart_item` (`user_id`,`product_id`),
  UNIQUE KEY `unique_session_item` (`session_id`,`product_id`),
  KEY `product_id` (`product_id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_session_id` (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Kuponlar tablosu
CREATE TABLE `coupons` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` varchar(50) NOT NULL,
  `description` text DEFAULT NULL,
  `discount_type` enum('fixed','percentage') DEFAULT 'fixed',
  `discount_value` decimal(10,2) NOT NULL,
  `minimum_amount` decimal(10,2) DEFAULT 0.00,
  `maximum_discount` decimal(10,2) DEFAULT NULL,
  `usage_limit` int(11) DEFAULT NULL,
  `usage_count` int(11) DEFAULT 0,
  `starts_at` datetime DEFAULT NULL,
  `expires_at` datetime DEFAULT NULL,
  `status` tinyint(1) DEFAULT 1,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `code` (`code`),
  KEY `idx_code` (`code`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Slider/Banner tablosu
CREATE TABLE `banners` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(200) DEFAULT NULL,
  `description` text DEFAULT NULL,
  `image` varchar(255) NOT NULL,
  `link` varchar(255) DEFAULT NULL,
  `position` enum('home_main','home_secondary','category') DEFAULT 'home_main',
  `sort_order` int(11) DEFAULT 0,
  `status` tinyint(1) DEFAULT 1,
  `starts_at` datetime DEFAULT NULL,
  `expires_at` datetime DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_position` (`position`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Site ayarları tablosu
CREATE TABLE `settings` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `setting_key` varchar(100) NOT NULL,
  `setting_value` text DEFAULT NULL,
  `setting_type` enum('text','textarea','number','boolean','file') DEFAULT 'text',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `setting_key` (`setting_key`),
  KEY `idx_setting_key` (`setting_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Aktivite logları tablosu
CREATE TABLE `activity_logs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL,
  `user_type` enum('admin','user') DEFAULT 'user',
  `action` varchar(100) NOT NULL,
  `details` text DEFAULT NULL,
  `ip_address` varchar(45) DEFAULT NULL,
  `user_agent` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_action` (`action`),
  KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- İletişim mesajları tablosu
CREATE TABLE `contact_messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `subject` varchar(200) NOT NULL,
  `message` text NOT NULL,
  `status` enum('unread','read','replied') DEFAULT 'unread',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_status` (`status`),
  KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- ========================================
-- ADMIN YETKİ SİSTEMİ TABLOLARI
-- ========================================

-- Admin Rolleri Tablosu
CREATE TABLE `admin_roles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_name` varchar(50) NOT NULL COMMENT 'superadmin, admin, moderator, viewer',
  `role_description` text DEFAULT NULL,
  `is_active` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `role_name` (`role_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Admin Yetkileri Tablosu
CREATE TABLE `admin_permissions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `permission_name` varchar(100) NOT NULL,
  `permission_key` varchar(100) NOT NULL,
  `permission_description` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `permission_key` (`permission_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Rol-Yetki İlişkisi Tablosu
CREATE TABLE `admin_role_permissions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_id` int(11) NOT NULL,
  `permission_id` int(11) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `role_permission` (`role_id`,`permission_id`),
  KEY `fk_role_permissions_role` (`role_id`),
  KEY `fk_role_permissions_permission` (`permission_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- ========================================
-- BOT SİSTEMİ TABLOLARI
-- ========================================

-- Bot Ayarları Tablosu
CREATE TABLE `bot_settings` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `setting_key` varchar(100) NOT NULL,
  `setting_value` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `setting_key` (`setting_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Başlık Promptları Tablosu
CREATE TABLE `baslik_promptlari` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `prompt_adi` varchar(255) NOT NULL,
  `prompt_icerik` text NOT NULL,
  `aktif` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Ürün Promptları Tablosu
CREATE TABLE `urun_promptlari` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `prompt_adi` varchar(255) NOT NULL,
  `prompt_icerik` text NOT NULL,
  `aktif` tinyint(1) NOT NULL DEFAULT 1,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Resim Havuzu Tablosu
CREATE TABLE `resim_havuzu` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `resim_ad` varchar(255) NOT NULL,
  `resim_dosya` varchar(255) NOT NULL,
  `kullanildi` tinyint(1) NOT NULL DEFAULT 0,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- Bot İşlem Logları Tablosu
CREATE TABLE `bot_loglari` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `islem_tipi` varchar(50) NOT NULL COMMENT 'urun_ekleme, resim_yukleme, etc.',
  `urun_id` int(11) DEFAULT NULL,
  `mesaj` text DEFAULT NULL,
  `durum` varchar(20) NOT NULL COMMENT 'basarili, hata, devam_ediyor',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `urun_id` (`urun_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_turkish_ci;

-- ========================================
-- FOREIGN KEY KISITLAMALARI
-- ========================================

-- Admin tablosu foreign key'ler
ALTER TABLE `admins` 
  ADD CONSTRAINT `fk_admin_role` FOREIGN KEY (`role_id`) REFERENCES `admin_roles` (`id`) ON DELETE SET NULL;

-- Kategoriler tablosu foreign key'ler
ALTER TABLE `products`
  ADD CONSTRAINT `products_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE SET NULL;

-- Adresler tablosu foreign key'ler
ALTER TABLE `addresses`
  ADD CONSTRAINT `addresses_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

-- Siparişler tablosu foreign key'ler
ALTER TABLE `orders`
  ADD CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
  ADD CONSTRAINT `fk_orders_address_id` FOREIGN KEY (`address_id`) REFERENCES `addresses` (`id`) ON DELETE SET NULL;

-- Sipariş detayları tablosu foreign key'ler
ALTER TABLE `order_items`
  ADD CONSTRAINT `order_items_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `order_items_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`);

-- Sepet tablosu foreign key'ler
ALTER TABLE `cart`
  ADD CONSTRAINT `cart_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `cart_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON DELETE CASCADE;

-- Aktivite logları tablosu foreign key'ler
ALTER TABLE `activity_logs`
  ADD CONSTRAINT `activity_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `admins` (`id`) ON DELETE SET NULL;

-- Admin yetki sistemi foreign key'ler
ALTER TABLE `admin_role_permissions`
  ADD CONSTRAINT `fk_role_permissions_role` FOREIGN KEY (`role_id`) REFERENCES `admin_roles` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `fk_role_permissions_permission` FOREIGN KEY (`permission_id`) REFERENCES `admin_permissions` (`id`) ON DELETE CASCADE;

-- ========================================
-- VARSAYILAN VERİLER
-- ========================================

-- Admin Rolleri (ÖNCE ROLLERİ OLUŞTUR)
INSERT IGNORE INTO `admin_roles` (`id`, `role_name`, `role_description`) VALUES
(1, 'superadmin', 'Sistem yöneticisi - Tüm yetkilere sahip'),
(2, 'admin', 'Yönetici - Çoğu yetkiye sahip'),
(3, 'moderator', 'Moderatör - Sınırlı yetkilere sahip'),
(4, 'viewer', 'Ziyaretçi - Sadece görüntüleme yetkisi');

-- Varsayılan admin kullanıcısı (şifre: admin) - SONRA KULLANICIYI EKLE
INSERT INTO `admins` (`username`, `email`, `password`, `full_name`, `role_id`) VALUES
('admin', 'admin@eticaret.com', 'admin', 'Site Yöneticisi', 1);

-- Admin Yetkileri
INSERT IGNORE INTO `admin_permissions` (`id`, `permission_name`, `permission_key`, `permission_description`) VALUES
(1, 'Dashboard Görüntüleme', 'dashboard_view', 'Ana paneli görüntüleme yetkisi'),
(2, 'Ürün Görüntüleme', 'products_view', 'Ürünleri görüntüleme yetkisi'),
(3, 'Ürün Ekleme', 'products_add', 'Yeni ürün ekleme yetkisi'),
(4, 'Ürün Düzenleme', 'products_edit', 'Mevcut ürünleri düzenleme yetkisi'),
(5, 'Ürün Silme', 'products_delete', 'Ürünleri silme yetkisi'),
(6, 'Kategori Görüntüleme', 'categories_view', 'Kategorileri görüntüleme yetkisi'),
(7, 'Kategori Ekleme', 'categories_add', 'Yeni kategori ekleme yetkisi'),
(8, 'Kategori Düzenleme', 'categories_edit', 'Mevcut kategorileri düzenleme yetkisi'),
(9, 'Kategori Silme', 'categories_delete', 'Kategorileri silme yetkisi'),
(10, 'Sipariş Görüntüleme', 'orders_view', 'Siparişleri görüntüleme yetkisi'),
(11, 'Sipariş Düzenleme', 'orders_edit', 'Siparişleri düzenleme yetkisi'),
(12, 'Sipariş Silme', 'orders_delete', 'Siparişleri silme yetkisi'),
(13, 'Kullanıcı Görüntüleme', 'users_view', 'Kullanıcıları görüntüleme yetkisi'),
(14, 'Kullanıcı Ekleme', 'users_add', 'Yeni kullanıcı ekleme yetkisi'),
(15, 'Kullanıcı Düzenleme', 'users_edit', 'Mevcut kullanıcıları düzenleme yetkisi'),
(16, 'Kullanıcı Silme', 'users_delete', 'Kullanıcıları silme yetkisi'),
(17, 'Ayarlar Görüntüleme', 'settings_view', 'Site ayarlarını görüntüleme yetkisi'),
(18, 'Ayarlar Düzenleme', 'settings_edit', 'Site ayarlarını düzenleme yetkisi'),
(19, 'Mesaj Görüntüleme', 'messages_view', 'İletişim mesajlarını görüntüleme yetkisi'),
(20, 'Mesaj Silme', 'messages_delete', 'İletişim mesajlarını silme yetkisi'),
(21, 'Admin Kullanıcı Görüntüleme', 'admin_users_view', 'Admin kullanıcılarını görüntüleme yetkisi'),
(22, 'Admin Kullanıcı Ekleme', 'admin_users_add', 'Yeni admin kullanıcı ekleme yetkisi'),
(23, 'Admin Kullanıcı Düzenleme', 'admin_users_edit', 'Admin kullanıcılarını düzenleme yetkisi'),
(24, 'Admin Kullanıcı Silme', 'admin_users_delete', 'Admin kullanıcılarını silme yetkisi'),
(25, 'Rapor Görüntüleme', 'reports_view', 'Raporları görüntüleme yetkisi');

-- Superadmin için tüm yetkileri ata
INSERT IGNORE INTO `admin_role_permissions` (role_id, permission_id)
SELECT 1, id FROM `admin_permissions`;

-- Admin için temel yetkileri ata (admin kullanıcı yönetimi hariç)
INSERT IGNORE INTO `admin_role_permissions` (role_id, permission_id)
SELECT 2, id FROM `admin_permissions` 
WHERE permission_key NOT IN ('admin_users_view', 'admin_users_add', 'admin_users_edit', 'admin_users_delete');

-- Moderator için sınırlı yetkileri ata
INSERT IGNORE INTO `admin_role_permissions` (role_id, permission_id)
SELECT 3, id FROM `admin_permissions` 
WHERE permission_key IN (
  'dashboard_view', 'products_view', 'products_edit', 'categories_view', 'categories_edit', 
  'orders_view', 'orders_edit', 'users_view', 'messages_view'
);

-- Viewer için sadece görüntüleme yetkileri ata
INSERT IGNORE INTO `admin_role_permissions` (role_id, permission_id)
SELECT 4, id FROM `admin_permissions` 
WHERE permission_key IN (
  'dashboard_view', 'products_view', 'categories_view', 'orders_view', 'users_view', 
  'settings_view', 'messages_view', 'reports_view'
);

-- Mevcut admin kullanıcısını superadmin yap
UPDATE `admins` SET `role_id` = 1 WHERE `username` = 'admin';

-- Bot Ayarlarını Ekle
INSERT IGNORE INTO `bot_settings` (`setting_key`, `setting_value`) VALUES
('openai_api_key', ''),
('openai_model', 'gpt-3.5-turbo'),
('urun_ekleme_suresi', '5'),
('max_urun_sayisi', '10'),
('resim_klasoru', 'uploads/resim_havuzu/'),
('varsayilan_kategori', '1'),
('varsayilan_fiyat', '100'),
('varsayilan_stok', '100'),
('bot_durumu', 'pasif');

-- Örnek Başlık Promptları
INSERT IGNORE INTO `baslik_promptlari` (`prompt_adi`, `prompt_icerik`) VALUES
('Teknoloji Ürünü', 'Modern teknoloji ürünü için çekici ve SEO uyumlu bir başlık oluştur. Ürün özelliklerini vurgulayan, müşterinin dikkatini çeken bir başlık yaz.'),
('Giyim Ürünü', 'Moda giyim ürünü için trendlere uygun, hedef kitleye hitap eden bir başlık oluştur. Ürünün tarzını ve özelliklerini yansıtan bir başlık yaz.'),
('Ev Dekorasyonu', 'Ev dekorasyon ürünü için şık, modern ve işlevsel özellikleri vurgulayan bir başlık oluştur. Ürünün mekanlara kattığı değeri anlatan bir başlık yaz.'),
('Kitap', 'Kitap için ilgi çekici, okuyucunun merakını uyandıran bir başlık oluştur. Kitabın türünü ve ana temasını yansıtan bir başlık yaz.');

-- Örnek Ürün Promptları
INSERT IGNORE INTO `urun_promptlari` (`prompt_adi`, `prompt_icerik`) VALUES
('Teknoloji Ürün Açıklaması', 'Teknoloji ürünü için detaylı bir ürün açıklaması yaz. Açıklamada şunlar olmalı: 1. Ürünün temel özellikleri 2. Teknik spesifikasyonlar 3. Kullanım alanları 4. Avantajları 5. Garanti ve destek bilgileri. SEO uyumlu ve müşteri odaklı bir dil kullan.'),
('Giyim Ürün Açıklaması', 'Giyim ürünü için detaylı bir ürün açıklaması yaz. Açıklamada şunlar olmalı: 1. Kumaş özellikleri 2. Beden ve ölçü bilgileri 3. Kombin önerileri 4. Yıkama ve bakım talimatları 5. Sezon ve kullanım önerileri. Trendlere uygun ve hedef kitleye hitap eden bir dil kullan.'),
('Ev Dekorasyonu Açıklaması', 'Ev dekorasyon ürünü için detaylı bir ürün açıklaması yaz. Açıklamada şunlar olmalı: 1. Ürünün boyutları ve malzemesi 2. Kullanım alanları 3. Tasarım özellikleri 4. Montaj/kurulum bilgileri 5. Dekorasyon önerileri. Şık ve modern bir dil kullan.'),
('Kitap Açıklaması', 'Kitap için detaylı bir ürün açıklaması yaz. Açıklamada şunlar olmalı: 1. Kitabın konusu ve özeti 2. Yazar hakkında bilgi 3. Hedef kitle 4. Kitabın öne çıkan özellikleri 5. Okuyucu yorumları/eleştiriler. Okuyucunun ilgisini çekecek bir dil kullan.');

-- Varsayılan kategoriler
INSERT INTO `categories` (category_name, category_description, parent_id, sort_order) VALUES 
('Elektronik', 'Elektronik ürünler', 0, 1),
('Giyim', 'Giyim ürünleri', 0, 2),
('Ev & Yaşam', 'Ev ve yaşam ürünleri', 0, 3),
('Bilgisayar', 'Bilgisayar ve ekipmanları', 1, 1),
('Telefon', 'Cep telefonları ve aksesuarları', 1, 2),
('Erkek Giyim', 'Erkek giyim ürünleri', 2, 1),
('Kadın Giyim', 'Kadın giyim ürünleri', 2, 2),
('Mutfak', 'Mutfak ürünleri', 3, 1),
('Mobilya', 'Mobilya ürünleri', 3, 2);

-- Varsayılan ayarlar
INSERT INTO `settings` (setting_key, setting_value, setting_type) VALUES 
('site_name', 'E-Ticaret Sitesi', 'text'),
('site_description', 'Kaliteli ürünler uygun fiyatlarla', 'textarea'),
('site_keywords', 'e-ticaret, alışveriş, online satış', 'text'),
('site_email', 'info@eticaret.com', 'text'),
('site_phone', '+90 212 555 55 55', 'text'),
('site_address', 'İstanbul, Türkiye', 'textarea'),
('facebook_url', 'https://facebook.com', 'text'),
('twitter_url', 'https://twitter.com', 'text'),
('instagram_url', 'https://instagram.com', 'text'),
('shipping_cost', '15.00', 'number'),
('free_shipping_threshold', '200.00', 'number'),
('tax_rate', '18', 'number'),
('currency', 'TRY', 'text'),
('maintenance_mode', '0', 'boolean');

-- Örnek ürünler
INSERT INTO `products` (product_name, product_description, product_short_description, category_id, price, discount_price, sku, stock, product_image, status, featured, seo_title, seo_description) VALUES 
('Laptop Pro 15"', 'Yüksek performanslı laptop, 16GB RAM, 512GB SSD', 'Profesyonel kullanım için ideal laptop', 4, 8500.00, 7999.00, 'LP001', 25, 'laptop.jpg', 1, 1, 'Laptop Pro 15" - Yüksek Performans', 'Yüksek performanslı laptop ile işinizi kolaylaştırın'),
('Akıllı Telefon X', '6.5 inç ekran, 128GB depolama, 48MP kamera', 'En yeni akıllı telefon modeli', 5, 4500.00, NULL, 'SP001', 50, 'phone.jpg', 1, 1, 'Akıllı Telefon X - Yeni Model', 'En yeni özelliklerle dolu akıllı telefon'),
('Erkek Gömlek', '%100 pamuk, slim fit, beyaz renk', 'Kaliteli erkek gömleği', 6, 250.00, 199.00, 'EG001', 100, 'shirt.jpg', 1, 0, 'Erkek Pamuk Gömlek', 'Rahat ve şık erkek gömleği'),
('Kahve Makinesi', 'Otomatik kahve makinesi, 1.5L kapasite', 'Kahve keyfini evinize taşıyın', 7, 1200.00, 999.00, 'KM001', 30, 'coffee.jpg', 1, 1, 'Otomatik Kahve Makinesi', 'Profesyonel kahve deneyimi evinizde');

COMMIT;

