-- V4__add_app_description_category_and_foreign_key.sql
-- 整合了 V4（description）、V5（app_categories表）、V6（category_id外键）的所有变更

-- ==========================================
-- Step 1: 创建预设分类表（V5）
-- ==========================================
CREATE TABLE IF NOT EXISTS app_categories (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL UNIQUE COMMENT '分类名称',
    description TEXT NULL COMMENT '分类描述',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用预设分类表';

-- ==========================================
-- Step 2: 添加应用描述字段（V4）
-- ==========================================
ALTER TABLE applications 
ADD COLUMN description TEXT NULL COMMENT '应用描述' AFTER notification_url;

-- ==========================================
-- Step 3: 添加 category_id 外键字段（V6）
-- ==========================================
ALTER TABLE applications 
ADD COLUMN category_id INT NULL COMMENT '应用分类ID（外键）' AFTER description;

-- ==========================================
-- Step 4: 添加外键约束和索引（V6）
-- ==========================================
ALTER TABLE applications
ADD CONSTRAINT fk_applications_category 
FOREIGN KEY (category_id) REFERENCES app_categories(id) 
ON DELETE SET NULL;

CREATE INDEX idx_applications_category_id ON applications(category_id);
