-- AstroAI Database Schema
-- MySQL Database Structure

-- Burclar tablosu (12 burç)
CREATE TABLE signs (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name_tr VARCHAR(50) NOT NULL UNIQUE,
    name_en VARCHAR(50) NOT NULL UNIQUE,
    date_range VARCHAR(50),
    element VARCHAR(20),
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 12 burcun başlangıç verileri
INSERT INTO signs (name_tr, name_en, date_range, element) VALUES
('Koç', 'Aries', '21 Mart - 19 Nisan', 'Ateş'),
('Boğa', 'Taurus', '20 Nisan - 20 Mayıs', 'Toprak'),
('İkizler', 'Gemini', '21 Mayıs - 20 Haziran', 'Hava'),
('Yengeç', 'Cancer', '21 Haziran - 22 Temmuz', 'Su'),
('Aslan', 'Leo', '23 Temmuz - 22 Ağustos', 'Ateş'),
('Başak', 'Virgo', '23 Ağustos - 22 Eylül', 'Toprak'),
('Terazi', 'Libra', '23 Eylül - 22 Ekim', 'Hava'),
('Akrep', 'Scorpio', '23 Ekim - 21 Kasım', 'Su'),
('Yay', 'Sagittarius', '22 Kasım - 21 Aralık', 'Ateş'),
('Oğlak', 'Capricorn', '22 Aralık - 19 Ocak', 'Toprak'),
('Kova', 'Aquarius', '20 Ocak - 18 Şubat', 'Hava'),
('Balık', 'Pisces', '19 Şubat - 20 Mart', 'Su');

-- Günlük burç yorumları tablosu
CREATE TABLE daily_horoscopes (
    id INT PRIMARY KEY AUTO_INCREMENT,
    sign_id INT NOT NULL,
    date DATE NOT NULL,
    content TEXT NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (sign_id) REFERENCES signs(id) ON DELETE CASCADE,
    UNIQUE KEY unique_sign_date (sign_id, date),
    INDEX idx_date (date)
);

-- Kişisel analiz okumları tablosu
CREATE TABLE personal_readings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    input_payload JSON NOT NULL,
    claude_response TEXT NOT NULL,
    tokens_used INT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
    INDEX idx_user_created (user_id, created_at)
);

-- Admin log tablosu
CREATE TABLE admin_logs (
    id INT PRIMARY KEY AUTO_INCREMENT,
    admin_user VARCHAR(100) NOT NULL,
    action VARCHAR(100) NOT NULL,
    target_table VARCHAR(50),
    target_id INT,
    details TEXT,
    ip VARCHAR(45),
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_admin_action (admin_user, action),
    INDEX idx_created (created_at)
);

-- Sistem ayarları tablosu
CREATE TABLE settings (
    id INT PRIMARY KEY AUTO_INCREMENT,
    setting_key VARCHAR(100) NOT NULL UNIQUE,
    setting_value TEXT,
    description VARCHAR(255),
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_key (setting_key)
);

-- Varsayılan sistem ayarları
INSERT INTO settings (setting_key, setting_value, description) VALUES
('TRIAL_DAYS', '2', 'Trial süresi (gün)'),
('RATE_LIMIT_PERSONAL_PER_DAY', '3', 'Günlük kişisel analiz limiti'),
('CLAUDE_MAX_TOKENS', '700', 'Claude API maksimum token'),
('CLAUDE_TEMPERATURE', '0.15', 'Claude API temperature'),
('PREMIUM_PRICE_MONTHLY', '49.99', 'Aylık premium fiyatı (TRY)');
