-- ═════════════════════════════════════════════════════════════════
-- 🐛 سیستم Bug Bounty (گزارش باگ)
-- ═════════════════════════════════════════════════════════════════

-- جدول گزارش‌های باگ
CREATE TABLE IF NOT EXISTS bug_reports (
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT UNSIGNED NOT NULL,
    
    -- اطلاعات باگ
    title VARCHAR(255) NOT NULL,
    description TEXT NOT NULL,
    steps_to_reproduce TEXT,
    severity ENUM('low', 'medium', 'high', 'critical') NOT NULL DEFAULT 'low',
    category ENUM('security', 'functionality', 'ui_ux', 'performance', 'other') NOT NULL,
    
    -- فایل‌های ضمیمه (screenshot, video)
    attachments JSON,
    
    -- وضعیت
    status ENUM('pending', 'reviewing', 'accepted', 'rejected', 'duplicate', 'fixed') DEFAULT 'pending',
    priority ENUM('low', 'medium', 'high', 'urgent') DEFAULT 'medium',
    
    -- پاداش
    reward_amount DECIMAL(15, 2) DEFAULT 0.00,
    is_rewarded BOOLEAN DEFAULT FALSE,
    rewarded_at TIMESTAMP NULL,
    
    -- بررسی ادمین
    admin_id BIGINT UNSIGNED NULL,
    admin_notes TEXT,
    reviewed_at TIMESTAMP NULL,
    fixed_at TIMESTAMP NULL,
    
    -- متادیتا
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
    INDEX idx_user_id (user_id),
    INDEX idx_status (status),
    INDEX idx_severity (severity),
    INDEX idx_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- جدول تنظیمات پاداش باگ
CREATE TABLE IF NOT EXISTS bug_bounty_rewards (
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    severity ENUM('low', 'medium', 'high', 'critical') NOT NULL UNIQUE,
    reward_amount DECIMAL(15, 2) NOT NULL,
    description 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;

-- درج پاداش‌های پیش‌فرض
INSERT INTO bug_bounty_rewards (severity, reward_amount, description) VALUES
('low', 50000, 'باگ‌های جزئی و مشکلات UI/UX که تاثیر کمی دارند'),
('medium', 150000, 'باگ‌های متوسط که عملکرد را تحت تاثیر قرار می‌دهند'),
('high', 500000, 'باگ‌های مهم و مشکلات امنیتی جدی'),
('critical', 2000000, 'باگ‌های بحرانی امنیتی که می‌توانند سیستم را به خطر بیندازند');

-- جدول تاریخچه بررسی باگ‌ها
CREATE TABLE IF NOT EXISTS bug_report_history (
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    bug_report_id INT UNSIGNED NOT NULL,
    admin_id BIGINT UNSIGNED NOT NULL,
    action ENUM('status_change', 'severity_change', 'reward_given', 'comment_added') NOT NULL,
    old_value VARCHAR(100),
    new_value VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    FOREIGN KEY (bug_report_id) REFERENCES bug_reports(id) ON DELETE CASCADE,
    INDEX idx_bug_report_id (bug_report_id),
    INDEX idx_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
