-- =====================================================
-- AI Garson QR Menü - Veritabanı Kurulum Scripti
-- =====================================================

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

USE garson_qr_menu;

-- =====================================================
-- TABLOLAR
-- =====================================================

-- Kategoriler
CREATE TABLE IF NOT EXISTS categories (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    icon VARCHAR(50) DEFAULT NULL,
    sort_order INT DEFAULT 0,
    status TINYINT(1) DEFAULT 1,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Ürünler
CREATE TABLE IF NOT EXISTS products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    category_id INT NOT NULL,
    name VARCHAR(200) NOT NULL,
    description TEXT,
    price DECIMAL(10,2) NOT NULL,
    stock_quantity INT DEFAULT 0,
    image_url VARCHAR(500) DEFAULT NULL,
    is_active TINYINT(1) DEFAULT 1,
    is_featured TINYINT(1) 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
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Siparişler
CREATE TABLE IF NOT EXISTS orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    table_number INT NOT NULL,
    total_amount DECIMAL(10,2) NOT NULL DEFAULT 0,
    status ENUM('pending','preparing','ready','delivered','cancelled','completed') DEFAULT 'pending',
    customer_note TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Sipariş Kalemleri
CREATE TABLE IF NOT EXISTS order_items (
    id INT AUTO_INCREMENT PRIMARY KEY,
    order_id INT NOT NULL,
    product_id INT NOT NULL,
    product_name VARCHAR(200) NOT NULL,
    quantity INT NOT NULL DEFAULT 1,
    unit_price DECIMAL(10,2) NOT NULL,
    FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE,
    FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Sistem Ayarları
CREATE TABLE IF NOT EXISTS system_settings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    setting_key VARCHAR(100) NOT NULL UNIQUE,
    setting_value TEXT,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Rate Limiting Log
CREATE TABLE IF NOT EXISTS order_rate_log (
    id INT AUTO_INCREMENT PRIMARY KEY,
    ip_address VARCHAR(45) NOT NULL,
    table_number INT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_ip_time (ip_address, created_at),
    INDEX idx_table_time (table_number, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- =====================================================
-- SİSTEM AYARLARI
-- =====================================================
INSERT INTO system_settings (setting_key, setting_value) VALUES
('restaurant_name', 'Lezzet Sarayı'),
('restaurant_slogan', 'Geleneksel Tatlar, Modern Sunum'),
('table_count', '20'),
('currency_symbol', '₺'),
('gemini_api_key', ''),
('ai_system_prompt', 'Sen {restaurant_name} restoranının profesyonel ve samimi AI garsonsun. Müşterilere menüdeki yemekleri tanıtır, önerilerde bulunursun.\n\nİşte güncel menümüz ve stok durumu:\n{menu_data}\n\nKURALLAR:\n- Sadece stokta olan (stock_quantity > 0) ürünleri öner\n- Fiyatları her zaman ₺ işaretiyle belirt\n- Müşteriye en fazla 3-4 ürün öner\n- Samimi, sıcak ve yardımsever ol\n- Müşteri alerjisi veya tercihi sorduğunda buna göre filtrele\n- Türkçe yanıt ver'),
('ai_model', 'gemini-2.0-flash'),
('primary_color', '#f97316'),
('dark_mode', 'true'),
('token_rotation_minutes', '30');

-- =====================================================
-- KATEGORİLER
-- =====================================================
INSERT INTO categories (name, icon, sort_order, status) VALUES
('🥗 Başlangıçlar', '🥗', 1, 1),
('🍖 Ana Yemekler', '🍖', 2, 1),
('🔥 Kebaplar', '🔥', 3, 1),
('🫓 Pide & Lahmacun', '🫓', 4, 1),
('🍰 Tatlılar', '🍰', 5, 1),
('🥤 İçecekler', '🥤', 6, 1),
('🥙 Dürümler', '🥙', 7, 1),
('🍲 Çorbalar', '🍲', 8, 1);

-- =====================================================
-- ÜRÜNLER (Zengin Türk Mutfağı Menüsü)
-- =====================================================

-- Başlangıçlar (category_id = 1)
INSERT INTO products (category_id, name, description, price, stock_quantity, is_active, is_featured) VALUES
(1, 'Humus', 'Nohut ezmesi, tahin, zeytinyağı ve limon ile hazırlanan geleneksel meze.', 85.00, 50, 1, 1),
(1, 'Babaganuş', 'Közlenmiş patlıcan, tahin ve sarımsak ile hazırlanan enfes meze.', 90.00, 40, 1, 0),
(1, 'Sigara Böreği (4 Adet)', 'Çıtır yufka içinde beyaz peynir ve maydanoz.', 95.00, 60, 1, 1),
(1, 'Mercimek Köftesi', 'Kırmızı mercimek, bulgur ve taze yeşilliklerle hazırlanan soğuk meze.', 75.00, 45, 1, 0),
(1, 'Atom (Acılı Ezme)', 'El yapımı acılı domates ezmesi, taze otlar ve nar ekşisi ile.', 70.00, 55, 1, 0),
(1, 'Mücver (6 Adet)', 'Kabak, havuç ve dereotu ile hazırlanan çıtır kabak mücveri.', 110.00, 35, 1, 0),
(1, 'Yaprak Sarma (8 Adet)', 'Zeytinyağlı, pirinç ve baharatlı asma yaprağı dolması.', 100.00, 30, 1, 1),
(1, 'Karışık Meze Tabağı', 'Humus, babaganuş, atom, yaprak sarma ve sigara böreği.', 220.00, 25, 1, 1);

-- Ana Yemekler (category_id = 2)
INSERT INTO products (category_id, name, description, price, stock_quantity, is_active, is_featured) VALUES
(2, 'Kuzu İncik', 'Fırında uzun süre pişirilmiş, ağızda dağılan kuzu incik, sebze yatağında.', 380.00, 15, 1, 1),
(2, 'Hünkar Beğendi', 'Kuşbaşı kuzu eti, közlenmiş patlıcan beşamel üzerinde.', 320.00, 20, 1, 1),
(2, 'Karnıyarık', 'Kızartılmış patlıcan, kıymalı harç ve domates sosu ile.', 240.00, 30, 1, 0),
(2, 'İslim Kebabı', 'Patlıcan sarılı köfte, domates sosu ile fırında pişirilmiş.', 280.00, 25, 1, 0),
(2, 'Mantı', 'El açması mini mantı, sarımsaklı yoğurt ve tereyağlı sos ile.', 220.00, 35, 1, 1),
(2, 'Ali Nazik', 'Közlenmiş patlıcan, yoğurt ve kuşbaşı et ile hazırlanan Gaziantep lezzeti.', 300.00, 20, 1, 1),
(2, 'Fırın Tavuk', 'Bütün tavuk but, özel baharat karışımı ile fırında, yanında pilav.', 260.00, 18, 1, 0);

-- Kebaplar (category_id = 3)
INSERT INTO products (category_id, name, description, price, stock_quantity, is_active, is_featured) VALUES
(3, 'Adana Kebap', 'Acılı el kıyması, mangalda közlenmiş. Lavaş, közlenmiş domates ve biber eşliğinde.', 280.00, 40, 1, 1),
(3, 'Urfa Kebap', 'Acısız el kıyması, mangalda közlenmiş. Lavaş ve közlenmiş sebzeler ile.', 280.00, 40, 1, 0),
(3, 'Beyti Kebap', 'Adana kebap, lavaş sarılı, yoğurt ve tereyağlı domates sosu ile.', 320.00, 30, 1, 1),
(3, 'Kuşbaşı Kebap', 'Dana kuşbaşı, mangalda pişirilmiş, yanında közlenmiş sebzeler.', 340.00, 25, 1, 0),
(3, 'Patlıcan Kebabı', 'Patlıcan ve köfte sıralı, domates sosu ile fırında.', 290.00, 30, 1, 0),
(3, 'Tavuk Şiş', 'Marine edilmiş tavuk göğsü, sebzeli şiş. Pilav ve salata ile.', 240.00, 35, 1, 0),
(3, 'Karışık Izgara', 'Adana, kuşbaşı, tavuk şiş, pirzola ve kanat. 2 kişilik.', 580.00, 15, 1, 1),
(3, 'Ciğer Şiş', 'Taze kuzu ciğeri, soğan ve maydanoz ile servis edilir.', 260.00, 20, 1, 0);

-- Pide & Lahmacun (category_id = 4)
INSERT INTO products (category_id, name, description, price, stock_quantity, is_active, is_featured) VALUES
(4, 'Kuşbaşılı Pide', 'Dana kuşbaşı, domates, biber ve baharatlı pide.', 240.00, 30, 1, 1),
(4, 'Kıymalı Pide', 'Kıyma, domates, biber ve soğanlı geleneksel pide.', 200.00, 35, 1, 0),
(4, 'Karışık Pide', 'Kuşbaşı, sucuk, kaşar peyniri, domates ve biber.', 260.00, 25, 1, 1),
(4, 'Peynirli Pide', 'Özel peynir karışımı ile hazırlanan kapalı pide.', 180.00, 40, 1, 0),
(4, 'Lahmacun (2 Adet)', 'İnce hamur, özel kıymalı harç, maydanoz ve limon ile.', 160.00, 50, 1, 1),
(4, 'Kapalı Pide (Kiremitte)', 'Kuşbaşılı kapalı pide, kiremit tabakta tereyağı ile.', 280.00, 20, 1, 0);

-- Tatlılar (category_id = 5)
INSERT INTO products (category_id, name, description, price, stock_quantity, is_active, is_featured) VALUES
(5, 'Künefe', 'Hatay usulü, kadayıf, peynir ve şerbetli. Antep fıstığı ile.', 180.00, 25, 1, 1),
(5, 'Baklava (4 Dilim)', 'Gaziantep usulü, 40 kat yufka, Antep fıstıklı.', 200.00, 30, 1, 1),
(5, 'Katmer', 'Gaziantep katmeri, kaymak ve Antep fıstığı ile.', 160.00, 20, 1, 0),
(5, 'Sütlaç', 'Fırında pişirilmiş, tarçınlı geleneksel sütlaç.', 90.00, 40, 1, 0),
(5, 'Kazandibi', 'Karamelize edilmiş muhallebi, vanilya aromalı.', 95.00, 35, 1, 0),
(5, 'Trileçe', 'Üç sütlü (süt, krema, yoğunlaştırılmış süt) karamel soslu kek.', 120.00, 30, 1, 1),
(5, 'Dondurma (3 Top)', 'Maraş usulü sakızlı dondurma. Çikolata, vanilya, antep fıstığı.', 110.00, 50, 1, 0);

-- İçecekler (category_id = 6)
INSERT INTO products (category_id, name, description, price, stock_quantity, is_active, is_featured) VALUES
(6, 'Ayran', 'Geleneksel köpüklü ayran.', 35.00, 100, 1, 0),
(6, 'Şalgam Suyu', 'Adana usulü acılı şalgam.', 40.00, 80, 1, 0),
(6, 'Türk Çayı', 'Demlik çay, ince belli bardakta.', 25.00, 200, 1, 0),
(6, 'Türk Kahvesi', 'Geleneksel Türk kahvesi, lokum ile.', 60.00, 100, 1, 0),
(6, 'Taze Sıkılmış Portakal Suyu', 'Günlük taze sıkım portakal suyu.', 75.00, 40, 1, 1),
(6, 'Limonata', 'Ev yapımı naneli limonata.', 55.00, 60, 1, 1),
(6, 'Kola', 'Coca-Cola 330ml.', 45.00, 100, 1, 0),
(6, 'Su (0.5L)', 'Doğal kaynak suyu.', 15.00, 200, 1, 0),
(6, 'Soda', 'Sade veya meyveli soda.', 30.00, 80, 1, 0);

-- Dürümler (category_id = 7)
INSERT INTO products (category_id, name, description, price, stock_quantity, is_active, is_featured) VALUES
(7, 'Adana Dürüm', 'Adana kebap, lavaş, soğan, maydanoz ve közlenmiş biberle sarılmış.', 220.00, 40, 1, 1),
(7, 'Tavuk Dürüm', 'Izgara tavuk şiş, yeşillik, domates ve özel sos ile.', 190.00, 45, 1, 0),
(7, 'Ciğer Dürüm', 'Kuzu ciğer, soğan, maydanoz ve sumak ile.', 200.00, 30, 1, 0),
(7, 'İskender Dürüm', 'Döner, tereyağı, domates sosu ve yoğurt ile.', 240.00, 25, 1, 1);

-- Çorbalar (category_id = 8)
INSERT INTO products (category_id, name, description, price, stock_quantity, is_active, is_featured) VALUES
(8, 'Mercimek Çorbası', 'Kırmızı mercimek, havuç ve soğanla hazırlanan geleneksel çorba.', 70.00, 60, 1, 1),
(8, 'Ezogelin Çorbası', 'Mercimek, bulgur, domates ve nane ile hazırlanan lezzet.', 70.00, 50, 1, 0),
(8, 'İşkembe Çorbası', 'Geleneksel işkembe çorbası, sarımsaklı sirke ve limon ile.', 95.00, 30, 1, 0),
(8, 'Tarhana Çorbası', 'Ev yapımı tarhana unu ile hazırlanan geleneksel çorba.', 65.00, 45, 1, 0),
(8, 'Kemik Suyu', 'Uzun süre kaynatılmış doğal kemik suyu, limon ile.', 80.00, 25, 1, 0);
