-- ============================================================
-- 创高家具官网 数据库初始化 SQL
-- 库名: chuanggao_furniture
-- 字符集: utf8mb4
-- 排序规则: utf8mb4_general_ci
-- 引擎: InnoDB
-- 表前缀: f_
--
-- 说明：
--   1. 所有业务表统一使用 id BIGINT AUTO_INCREMENT 作为主键
--   2. 审计字段通过 MyBatis-Plus MetaObjectHandler 自动填充
--   3. 逻辑删除：del_flag = '0' 正常，del_flag = '2' 已删除
--   4. 中英文双语字段命名：xxx_zh / xxx_en
--   5. mybatis-plus 配置 map-underscore-to-camel-case: true
--      故表中字段使用 snake_case，实体类使用 camelCase
-- ============================================================

-- 创建数据库（如已存在可省略此步）
CREATE DATABASE IF NOT EXISTS chuanggao_furniture
    DEFAULT CHARACTER SET utf8mb4
    DEFAULT COLLATE utf8mb4_general_ci;

USE chuanggao_furniture;

-- ============================================================
-- 1. 公司基础信息配置（f_company）
--    只储存一条记录，通过 site_code 区分多站点场景
-- ============================================================
CREATE TABLE IF NOT EXISTS f_company (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    -- 品牌信息
    brand_name_zh       VARCHAR(128)    NOT NULL                            COMMENT '品牌名称-中文',
    brand_name_en       VARCHAR(128)    DEFAULT NULL                        COMMENT '品牌名称-英文',
    slogan_zh           VARCHAR(256)    DEFAULT NULL                        COMMENT '品牌口号-中文',
    slogan_en           VARCHAR(256)    DEFAULT NULL                        COMMENT '品牌口号-英文',

    -- 联系信息
    contact_phone       VARCHAR(32)     DEFAULT NULL                        COMMENT '联系电话',
    contact_email       VARCHAR(128)    DEFAULT NULL                        COMMENT '联系邮箱',
    address_zh          VARCHAR(512)    DEFAULT NULL                        COMMENT '公司地址-中文',
    address_en          VARCHAR(512)    DEFAULT NULL                        COMMENT '公司地址-英文',

    -- 社交媒体
    wechat_qr           VARCHAR(512)    DEFAULT NULL                        COMMENT '微信公众号二维码图片URL',
    weibo_url           VARCHAR(256)    DEFAULT NULL                        COMMENT '微博链接',
    douyin_url          VARCHAR(256)    DEFAULT NULL                        COMMENT '抖音链接',
    xiaohongshu_url     VARCHAR(256)    DEFAULT NULL                        COMMENT '小红书链接',

    -- 备案信息
    icp_record          VARCHAR(64)     DEFAULT NULL                        COMMENT 'ICP备案号',
    copyright_text      VARCHAR(256)    DEFAULT NULL                        COMMENT '版权信息',

    -- SEO
    seo_title_zh        VARCHAR(128)    DEFAULT NULL                        COMMENT '首页SEO标题-中文',
    seo_title_en        VARCHAR(128)    DEFAULT NULL                        COMMENT '首页SEO标题-英文',
    seo_keywords_zh     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-中文',
    seo_keywords_en     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-英文',
    seo_description_zh  VARCHAR(1024)   DEFAULT NULL                        COMMENT 'SEO描述-中文',
    seo_description_en  VARCHAR(1024)   DEFAULT NULL                        COMMENT 'SEO描述-英文',

    -- 统计代码
    analytics_code      TEXT            DEFAULT NULL                        COMMENT '统计代码（百度/谷歌）',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_code    (site_code),
    INDEX idx_site_del     (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='公司基础信息配置';

-- 初始化数据
INSERT INTO f_company (id, site_code, brand_name_zh, brand_name_en, slogan_zh, slogan_en)
VALUES (1, 'cg', '创高家具', 'ChuangGao Furniture', '匠心定制，品质生活', 'Crafted for Quality Living');

-- ============================================================
-- 2. 轮播图管理（f_carousel）
--    支持多位置：首页Banner、内页Banner等
-- ============================================================
CREATE TABLE IF NOT EXISTS f_carousel (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    -- 位置标识
    position            VARCHAR(64)     NOT NULL                            COMMENT '轮播位置: home_banner, about_banner, product_banner等',
    position_name_zh    VARCHAR(64)     DEFAULT NULL                        COMMENT '位置名称-中文',
    position_name_en    VARCHAR(64)     DEFAULT NULL                        COMMENT '位置名称-英文',

    -- 排序
    sort_order          INT             DEFAULT 0                           COMMENT '排序（越小越靠前）',

    -- 图片
    image_pc            VARCHAR(512)    NOT NULL                            COMMENT 'PC端图片URL',
    image_mobile        VARCHAR(512)    DEFAULT NULL                        COMMENT '移动端图片URL',
    image_alt_zh        VARCHAR(256)    DEFAULT NULL                        COMMENT '图片Alt-中文',
    image_alt_en        VARCHAR(256)    DEFAULT NULL                        COMMENT '图片Alt-英文',

    -- 文案
    title_zh            VARCHAR(256)    DEFAULT NULL                        COMMENT '标题-中文',
    title_en            VARCHAR(256)    DEFAULT NULL                        COMMENT '标题-英文',
    subtitle_zh         VARCHAR(512)    DEFAULT NULL                        COMMENT '副标题-中文',
    subtitle_en         VARCHAR(512)    DEFAULT NULL                        COMMENT '副标题-英文',
    description_zh      TEXT            DEFAULT NULL                        COMMENT '描述-中文',
    description_en      TEXT            DEFAULT NULL                        COMMENT '描述-英文',

    -- 按钮配置
    btn_text_zh         VARCHAR(64)     DEFAULT NULL                        COMMENT '按钮文字-中文',
    btn_text_en         VARCHAR(64)     DEFAULT NULL                        COMMENT '按钮文字-英文',
    btn_link            VARCHAR(512)    DEFAULT NULL                        COMMENT '按钮链接',
    btn_style           VARCHAR(64)     DEFAULT 'primary'                   COMMENT '按钮样式: primary/outline/ghost',

    -- 状态
    status              TINYINT         DEFAULT 1                           COMMENT '状态: 0禁用 1启用',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_position   (site_code, position),
    INDEX idx_sort            (sort_order),
    INDEX idx_site_del        (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='轮播图管理';

-- 初始化首页Banner
INSERT INTO f_carousel (site_code, position, sort_order, image_pc, title_zh, title_en, subtitle_zh, subtitle_en, btn_text_zh, btn_text_en, btn_link, btn_style) VALUES
('cg', 'home_banner', 1, '/uploads/carousel/home-01.jpg', '全屋定制 匠心之作', 'Whole House Customization', '从设计到安装，一站式高端定制服务', 'From Design to Installation, Premium One-Stop Service', '立即咨询', 'Contact Us', '/contact', 'primary'),
('cg', 'home_banner', 2, '/uploads/carousel/home-02.jpg', '高端家具 品质生活', 'Premium Furniture', '精选进口材质，打造舒适家居体验', 'Selected Imported Materials for Comfortable Living', '查看产品', 'View Products', '/products', 'outline'),
('cg', 'home_banner', 3, '/uploads/carousel/home-03.jpg', '工程合作 专业保障', 'Commercial Projects', '酒店、办公、精装房全屋定制解决方案', 'Custom Solutions for Hotels, Offices & Apartments', '了解更多', 'Learn More', '/cases', 'outline');

-- ============================================================
-- 3. 产品分类（f_product_category）
--    支持二级分类，通过 parent_id + level 实现
-- ============================================================
CREATE TABLE IF NOT EXISTS f_product_category (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    -- 层级关系
    parent_id           BIGINT          DEFAULT 0                           COMMENT '父分类ID，0为顶级',
    level               TINYINT         DEFAULT 1                           COMMENT '层级: 1一级 2二级',

    -- 分类信息
    name_zh             VARCHAR(128)    NOT NULL                            COMMENT '分类名称-中文',
    name_en             VARCHAR(128)    DEFAULT NULL                        COMMENT '分类名称-英文',
    code                VARCHAR(64)     DEFAULT NULL                        COMMENT '分类代码（URL用）',

    -- 展示配置
    icon                VARCHAR(512)    DEFAULT NULL                        COMMENT '分类图标URL',
    image               VARCHAR(512)    DEFAULT NULL                        COMMENT '分类封面图URL',
    banner_image        VARCHAR(512)    DEFAULT NULL                        COMMENT '分类页Banner图',

    -- 描述
    description_zh      TEXT            DEFAULT NULL                        COMMENT '分类描述-中文',
    description_en      TEXT            DEFAULT NULL                        COMMENT '分类描述-英文',

    -- SEO
    seo_title_zh        VARCHAR(128)    DEFAULT NULL                        COMMENT 'SEO标题-中文',
    seo_title_en        VARCHAR(128)    DEFAULT NULL                        COMMENT 'SEO标题-英文',
    seo_keywords_zh     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-中文',
    seo_keywords_en     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-英文',

    -- 显示控制
    sort_order          INT             DEFAULT 0                           COMMENT '排序',
    is_show             TINYINT         DEFAULT 1                           COMMENT '是否显示: 0否 1是',
    is_hot              TINYINT         DEFAULT 0                           COMMENT '是否热门: 0否 1是',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_parent    (site_code, parent_id),
    INDEX idx_code           (code),
    INDEX idx_sort           (sort_order),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='产品分类';

-- 初始化一级分类
INSERT INTO f_product_category (id, site_code, parent_id, level, name_zh, name_en, code, sort_order, is_show, is_hot) VALUES
(1,  'cg', 0, 1, '全屋定制',    'Whole House Custom',   'custom',      1, 1, 1),
(2,  'cg', 0, 1, '客厅家具',    'Living Room',          'living-room', 2, 1, 1),
(3,  'cg', 0, 1, '卧室家具',    'Bedroom',              'bedroom',     3, 1, 1),
(4,  'cg', 0, 1, '餐厅家具',    'Dining Room',          'dining-room', 4, 1, 0),
(5,  'cg', 0, 1, '办公家具',    'Office Furniture',     'office',      5, 1, 0),
(6,  'cg', 0, 1, '工程项目',    'Commercial Projects',  'commercial',  6, 1, 1);

-- 初始化二级分类（客厅家具）
INSERT INTO f_product_category (site_code, parent_id, level, name_zh, name_en, code, sort_order, is_show) VALUES
('cg', 2, 2, '沙发',     'Sofa',         'sofa',        1, 1),
('cg', 2, 2, '茶几',     'Coffee Table', 'coffee-table', 2, 1),
('cg', 2, 2, '电视柜',   'TV Cabinet',   'tv-cabinet',  3, 1),
('cg', 2, 2, '鞋柜',     'Shoe Cabinet', 'shoe-cabinet',4, 1);

-- ============================================================
-- 4. 产品信息（f_product）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_product (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    -- 分类关联
    category_id         BIGINT          NOT NULL                            COMMENT '所属分类ID',
    category_path       VARCHAR(512)    DEFAULT NULL                        COMMENT '分类路径（冗余存储）',

    -- 基本信息
    name_zh             VARCHAR(256)    NOT NULL                            COMMENT '产品名称-中文',
    name_en             VARCHAR(256)    DEFAULT NULL                        COMMENT '产品名称-英文',
    code                VARCHAR(128)    DEFAULT NULL                        COMMENT '产品型号/编码',

    -- 图片
    main_image          VARCHAR(512)    DEFAULT NULL                        COMMENT '主图URL',
    images_json         JSON            DEFAULT NULL                        COMMENT '相册图片数组',
    scene_images_json   JSON            DEFAULT NULL                        COMMENT '场景展示图数组',

    -- 描述
    summary_zh          VARCHAR(512)    DEFAULT NULL                        COMMENT '产品简介-中文',
    summary_en          VARCHAR(512)    DEFAULT NULL                        COMMENT '产品简介-英文',
    description_zh      TEXT            DEFAULT NULL                        COMMENT '详细描述-中文',
    description_en      TEXT            DEFAULT NULL                        COMMENT '详细描述-英文',

    -- 产品参数
    params_json         JSON            DEFAULT NULL                        COMMENT '产品参数 JSON 数组',

    -- 规格材质
    size_zh             VARCHAR(256)    DEFAULT NULL                        COMMENT '尺寸规格-中文',
    size_en             VARCHAR(256)    DEFAULT NULL                        COMMENT '尺寸规格-英文',
    material_zh         VARCHAR(256)    DEFAULT NULL                        COMMENT '材质说明-中文',
    material_en         VARCHAR(256)    DEFAULT NULL                        COMMENT '材质说明-英文',

    -- 标签
    scene_tags_zh       VARCHAR(512)    DEFAULT NULL                        COMMENT '适用场景标签-中文，逗号分隔',
    scene_tags_en       VARCHAR(512)    DEFAULT NULL                        COMMENT '适用场景标签-英文，逗号分隔',
    style_tags_zh       VARCHAR(512)    DEFAULT NULL                        COMMENT '风格标签-中文，逗号分隔',
    style_tags_en       VARCHAR(512)    DEFAULT NULL                        COMMENT '风格标签-英文，逗号分隔',

    -- 价格
    price_min           DECIMAL(12,2)   DEFAULT NULL                        COMMENT '最低价格',
    price_max           DECIMAL(12,2)   DEFAULT NULL                        COMMENT '最高价格',
    price_unit_zh       VARCHAR(32)     DEFAULT '元'                        COMMENT '价格单位-中文',
    price_unit_en       VARCHAR(32)     DEFAULT 'CNY'                       COMMENT '价格单位-英文',
    is_show_price       TINYINT         DEFAULT 0                           COMMENT '是否显示价格: 0否 1是',

    -- 状态控制
    is_hot              TINYINT         DEFAULT 0                           COMMENT '是否热门: 0否 1是',
    is_new              TINYINT         DEFAULT 0                           COMMENT '是否新品: 0否 1是',
    is_recommend        TINYINT         DEFAULT 0                           COMMENT '是否推荐: 0否 1是',
    status              TINYINT         DEFAULT 1                           COMMENT '状态: 0下架 1上架',

    -- 排序浏览
    sort_order          INT             DEFAULT 0                           COMMENT '排序',
    view_count          INT             DEFAULT 0                           COMMENT '浏览次数',

    -- SEO
    seo_title_zh        VARCHAR(128)    DEFAULT NULL                        COMMENT 'SEO标题-中文',
    seo_title_en        VARCHAR(128)    DEFAULT NULL                        COMMENT 'SEO标题-英文',
    seo_keywords_zh     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-中文',
    seo_keywords_en     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-英文',
    seo_description_zh  VARCHAR(1024)   DEFAULT NULL                        COMMENT 'SEO描述-中文',
    seo_description_en  VARCHAR(1024)   DEFAULT NULL                        COMMENT 'SEO描述-英文',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_category  (site_code, category_id),
    INDEX idx_status         (status),
    INDEX idx_hot            (is_hot),
    INDEX idx_new            (is_new),
    INDEX idx_recommend      (is_recommend),
    INDEX idx_sort           (sort_order),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='产品信息';

-- ============================================================
-- 5. 案例分类（f_case_category）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_case_category (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    name_zh             VARCHAR(128)    NOT NULL                            COMMENT '分类名称-中文',
    name_en             VARCHAR(128)    DEFAULT NULL                        COMMENT '分类名称-英文',
    code                VARCHAR(64)     DEFAULT NULL                        COMMENT '分类代码',
    type                VARCHAR(64)     DEFAULT NULL                        COMMENT '类型: space(空间场景)/style(风格)/area(面积)',

    description_zh      TEXT            DEFAULT NULL                        COMMENT '分类描述-中文',
    description_en      TEXT            DEFAULT NULL                        COMMENT '分类描述-英文',
    image               VARCHAR(512)    DEFAULT NULL                        COMMENT '分类封面图',

    sort_order          INT             DEFAULT 0                           COMMENT '排序',
    is_show             TINYINT         DEFAULT 1                           COMMENT '是否显示: 0否 1是',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_code      (site_code),
    INDEX idx_type           (type),
    INDEX idx_sort           (sort_order),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='案例分类';

-- 初始化案例分类
INSERT INTO f_case_category (site_code, name_zh, name_en, code, type, sort_order) VALUES
('cg', '全屋定制案例', 'Whole House Custom', 'whole-house', 'space', 1),
('cg', '客厅空间',     'Living Room',       'living-room', 'space', 2),
('cg', '卧室空间',     'Bedroom',           'bedroom',     'space', 3),
('cg', '餐厅空间',     'Dining Room',       'dining-room', 'space', 4),
('cg', '办公空间',     'Office Space',      'office',      'space', 5),
('cg', '酒店工程',     'Hotel Projects',    'hotel',       'space', 6),
('cg', '精装房工程',   'Apartment Projects','apartment',   'space', 7);

-- ============================================================
-- 6. 案例信息（f_case）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_case (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    -- 分类
    category_id         BIGINT          NOT NULL                            COMMENT '主分类ID',
    category_ids_json   JSON            DEFAULT NULL                        COMMENT '多分类关联（JSON数组）',

    -- 基本信息
    title_zh            VARCHAR(256)    NOT NULL                            COMMENT '案例标题-中文',
    title_en            VARCHAR(256)    DEFAULT NULL                        COMMENT '案例标题-英文',
    subtitle_zh         VARCHAR(512)    DEFAULT NULL                        COMMENT '副标题-中文',
    subtitle_en         VARCHAR(512)    DEFAULT NULL                        COMMENT '副标题-英文',

    -- 封面与相册
    cover_image         VARCHAR(512)    DEFAULT NULL                        COMMENT '封面图URL',
    images_json         JSON            DEFAULT NULL                        COMMENT '案例图片数组（轮播展示）',

    -- 项目信息
    project_type_zh     VARCHAR(128)    DEFAULT NULL                        COMMENT '项目类型-中文',
    project_type_en     VARCHAR(128)    DEFAULT NULL                        COMMENT '项目类型-英文',
    project_area        VARCHAR(64)     DEFAULT NULL                        COMMENT '项目面积（如：120㎡）',
    project_location_zh VARCHAR(256)    DEFAULT NULL                        COMMENT '项目地点-中文',
    project_location_en VARCHAR(256)    DEFAULT NULL                        COMMENT '项目地点-英文',
    project_date        VARCHAR(64)     DEFAULT NULL                        COMMENT '完工日期',

    -- 描述
    summary_zh          VARCHAR(1024)   DEFAULT NULL                        COMMENT '案例简介-中文',
    summary_en          VARCHAR(1024)   DEFAULT NULL                        COMMENT '案例简介-英文',
    content_zh          TEXT            DEFAULT NULL                        COMMENT '详细内容-中文',
    content_en          TEXT            DEFAULT NULL                        COMMENT '详细内容-英文',

    -- 关联产品
    related_products_json JSON         DEFAULT NULL                        COMMENT '关联产品ID数组',

    -- 标签
    tags_zh             VARCHAR(512)    DEFAULT NULL                        COMMENT '标签-中文',
    tags_en             VARCHAR(512)    DEFAULT NULL                        COMMENT '标签-英文',

    -- 状态
    is_hot              TINYINT         DEFAULT 0                           COMMENT '是否热门: 0否 1是',
    is_recommend        TINYINT         DEFAULT 0                           COMMENT '是否推荐: 0否 1是',
    status              TINYINT         DEFAULT 1                           COMMENT '状态: 0下架 1上架',
    sort_order          INT             DEFAULT 0                           COMMENT '排序',
    view_count          INT             DEFAULT 0                           COMMENT '浏览次数',

    -- SEO
    seo_title_zh        VARCHAR(128)    DEFAULT NULL                        COMMENT 'SEO标题-中文',
    seo_title_en        VARCHAR(128)    DEFAULT NULL                        COMMENT 'SEO标题-英文',
    seo_keywords_zh     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-中文',
    seo_keywords_en     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-英文',
    seo_description_zh  VARCHAR(1024)   DEFAULT NULL                        COMMENT 'SEO描述-中文',
    seo_description_en  VARCHAR(1024)   DEFAULT NULL                        COMMENT 'SEO描述-英文',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_category  (site_code, category_id),
    INDEX idx_status         (status),
    INDEX idx_recommend      (is_recommend),
    INDEX idx_sort           (sort_order),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='案例信息';

-- ============================================================
-- 7. 新闻分类（f_news_category）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_news_category (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    name_zh             VARCHAR(128)    NOT NULL                            COMMENT '分类名称-中文',
    name_en             VARCHAR(128)    DEFAULT NULL                        COMMENT '分类名称-英文',
    code                VARCHAR(64)     DEFAULT NULL                        COMMENT '分类代码',

    description_zh      TEXT            DEFAULT NULL                        COMMENT '分类描述-中文',
    description_en      TEXT            DEFAULT NULL                        COMMENT '分类描述-英文',

    sort_order          INT             DEFAULT 0                           COMMENT '排序',
    is_show             TINYINT         DEFAULT 1                           COMMENT '是否显示: 0否 1是',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_code      (site_code),
    INDEX idx_sort           (sort_order),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='新闻分类';

-- 初始化新闻分类
INSERT INTO f_news_category (site_code, name_zh, name_en, code, sort_order) VALUES
('cg', '公司新闻', 'Company News',   'company',  1),
('cg', '行业动态', 'Industry News',  'industry', 2),
('cg', '品牌活动', 'Brand Events',   'events',   3),
('cg', '招商加盟', 'Franchise Info', 'franchise',4);

-- ============================================================
-- 8. 新闻资讯（f_news）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_news (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    category_id         BIGINT          NOT NULL                            COMMENT '分类ID',

    title_zh            VARCHAR(256)    NOT NULL                            COMMENT '新闻标题-中文',
    title_en            VARCHAR(256)    DEFAULT NULL                        COMMENT '新闻标题-英文',

    cover_image         VARCHAR(512)    DEFAULT NULL                        COMMENT '封面图URL',
    summary_zh          VARCHAR(1024)   DEFAULT NULL                        COMMENT '摘要-中文',
    summary_en          VARCHAR(1024)   DEFAULT NULL                        COMMENT '摘要-英文',
    content_zh          LONGTEXT        DEFAULT NULL                        COMMENT '正文内容-中文',
    content_en          LONGTEXT        DEFAULT NULL                        COMMENT '正文内容-英文',

    author              VARCHAR(128)    DEFAULT NULL                        COMMENT '作者',
    source              VARCHAR(256)    DEFAULT NULL                        COMMENT '来源',
    source_url          VARCHAR(512)    DEFAULT NULL                        COMMENT '来源链接',

    is_top              TINYINT         DEFAULT 0                           COMMENT '是否置顶: 0否 1是',
    is_hot              TINYINT         DEFAULT 0                           COMMENT '是否热门: 0否 1是',
    status              TINYINT         DEFAULT 1                           COMMENT '状态: 0草稿 1已发布 2下线',
    publish_time        TIMESTAMP       NULL DEFAULT NULL                   COMMENT '发布时间',
    sort_order          INT             DEFAULT 0                           COMMENT '排序',
    view_count          INT             DEFAULT 0                           COMMENT '浏览次数',

    -- SEO
    seo_title_zh        VARCHAR(128)    DEFAULT NULL                        COMMENT 'SEO标题-中文',
    seo_title_en        VARCHAR(128)    DEFAULT NULL                        COMMENT 'SEO标题-英文',
    seo_keywords_zh     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-中文',
    seo_keywords_en     VARCHAR(512)    DEFAULT NULL                        COMMENT 'SEO关键词-英文',
    seo_description_zh  VARCHAR(1024)   DEFAULT NULL                        COMMENT 'SEO描述-中文',
    seo_description_en  VARCHAR(1024)   DEFAULT NULL                        COMMENT 'SEO描述-英文',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_category   (site_code, category_id),
    INDEX idx_status          (status),
    INDEX idx_publish_time    (publish_time),
    INDEX idx_top             (is_top),
    INDEX idx_sort            (sort_order),
    INDEX idx_site_del        (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='新闻资讯';

-- ============================================================
-- 9. 页面区块配置（f_page_block）
--    用于后台动态修改页面文本、图片、链接等
-- ============================================================
CREATE TABLE IF NOT EXISTS f_page_block (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    page_code           VARCHAR(64)     NOT NULL                            COMMENT '页面代码: home, about, products, cases, contact',
    block_code          VARCHAR(128)    NOT NULL                            COMMENT '区块代码（同页面内唯一）',
    block_name_zh       VARCHAR(128)    DEFAULT NULL                        COMMENT '区块名称-中文（后台显示用）',
    block_name_en       VARCHAR(128)    DEFAULT NULL                        COMMENT '区块名称-英文',

    type                VARCHAR(32)     NOT NULL                            COMMENT '类型: text/rich/image/images/list/html',

    content_zh          TEXT            DEFAULT NULL                        COMMENT '内容-中文',
    content_en          TEXT            DEFAULT NULL                        COMMENT '内容-英文',

    image               VARCHAR(512)    DEFAULT NULL                        COMMENT '图片URL（单图类型）',
    images_json         JSON            DEFAULT NULL                        COMMENT '多图数组',

    link_url            VARCHAR(512)    DEFAULT NULL                        COMMENT '跳转链接',
    link_text_zh        VARCHAR(128)    DEFAULT NULL                        COMMENT '链接文字-中文',
    link_text_en        VARCHAR(128)    DEFAULT NULL                        COMMENT '链接文字-英文',

    style_config_json   JSON            DEFAULT NULL                        COMMENT '样式配置 JSON',

    sort_order          INT             DEFAULT 0                           COMMENT '同页面内排序',
    is_show             TINYINT         DEFAULT 1                           COMMENT '是否显示: 0否 1是',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_page         (site_code, page_code),
    INDEX idx_sort              (sort_order),
    INDEX idx_site_del          (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='页面区块配置';

-- 初始化首页区块
INSERT INTO f_page_block (site_code, page_code, block_code, block_name_zh, type, content_zh, content_en, is_show, sort_order) VALUES
('cg', 'home', 'hero_title',       '首屏大标题',    'text', '全屋定制 匠心之作',    'Whole House Customization',                    1, 1),
('cg', 'home', 'hero_subtitle',    '首屏副标题',    'text', '专注高端家具定制，为品质生活而生', 'Focused on Premium Furniture for Quality Living', 1, 2),
('cg', 'home', 'services_title',   '服务板块标题',  'text', '核心业务',              'Core Business',                                  1, 10),
('cg', 'home', 'services_subtitle','服务板块副标题', 'text', '三大业务板块，全方位满足您的需求', 'Three Core Services to Meet Your Needs',          1, 11),
('cg', 'home', 'products_title',   '产品板块标题',  'text', '热门产品',              'Hot Products',                                   1, 20),
('cg', 'home', 'cases_title',      '案例板块标题',  'text', '经典案例',              'Classic Cases',                                  1, 30),
('cg', 'home', 'strength_title',   '实力板块标题',  'text', '品牌实力',              'Brand Strength',                                 1, 40),
('cg', 'home', 'strength_data',    '实力数据',      'list', '[{"number":"20+","label":"年行业经验"},{"number":"50000+","label":"㎡生产基地"},{"number":"1000+","label":"家服务客户"},{"number":"50+","label":"项国家专利"}]', '[{"number":"20+","label":"Years Experience"},{"number":"50000+","label":"㎡ Factory"},{"number":"1000+","label":"Clients"},{"number":"50+","label":"Patents"}]', 1, 41);

-- ============================================================
-- 10. 品牌荣誉资质（f_honor）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_honor (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    title_zh            VARCHAR(256)    NOT NULL                            COMMENT '荣誉名称-中文',
    title_en            VARCHAR(256)    DEFAULT NULL                        COMMENT '荣誉名称-英文',
    type                VARCHAR(64)     DEFAULT NULL                        COMMENT '类型: certificate(资质证书)/award(获奖)/patent(专利)/partner(合作伙伴)',

    image               VARCHAR(512)    DEFAULT NULL                        COMMENT '证书/荣誉图片',
    issue_org_zh        VARCHAR(256)    DEFAULT NULL                        COMMENT '颁发机构-中文',
    issue_org_en        VARCHAR(256)    DEFAULT NULL                        COMMENT '颁发机构-英文',
    issue_date          VARCHAR(64)     DEFAULT NULL                        COMMENT '颁发日期',

    description_zh      TEXT            DEFAULT NULL                        COMMENT '描述-中文',
    description_en      TEXT            DEFAULT NULL                        COMMENT '描述-英文',

    sort_order          INT             DEFAULT 0                           COMMENT '排序',
    is_show             TINYINT         DEFAULT 1                           COMMENT '是否显示: 0否 1是',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_type      (site_code, type),
    INDEX idx_sort           (sort_order),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='品牌荣誉资质';

-- ============================================================
-- 11. 加盟政策（f_franchise_policy）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_franchise_policy (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    title_zh            VARCHAR(256)    NOT NULL                            COMMENT '政策标题-中文',
    title_en            VARCHAR(256)    DEFAULT NULL                        COMMENT '政策标题-英文',
    icon                VARCHAR(128)    DEFAULT NULL                        COMMENT '图标类名',

    content_zh          TEXT            DEFAULT NULL                        COMMENT '政策内容-中文',
    content_en          TEXT            DEFAULT NULL                        COMMENT '政策内容-英文',

    sort_order          INT             DEFAULT 0                           COMMENT '排序',
    is_show             TINYINT         DEFAULT 1                           COMMENT '是否显示: 0否 1是',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_code      (site_code),
    INDEX idx_sort           (sort_order),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='加盟政策';

-- 初始化加盟政策
INSERT INTO f_franchise_policy (site_code, title_zh, title_en, icon, content_zh, content_en, sort_order) VALUES
('cg', '品牌支持', 'Brand Support',     'icon-brand',     '提供统一品牌形象、VI系统、店面设计方案',           'Provide unified brand image, VI system, store design',  1),
('cg', '培训支持', 'Training Support',  'icon-training',  '产品知识、销售技巧、安装服务全流程培训',            'Product knowledge, sales skills, installation training', 2),
('cg', '营销支持', 'Marketing Support', 'icon-marketing', '活动策划、推广物料、线上引流全方位支持',            'Event planning, promotional materials, online marketing',3),
('cg', '区域保护', 'Territory Protection', 'icon-protection', '严格的区域保护政策，保障经销商利益',          'Strict territorial protection for dealers',              4);

-- ============================================================
-- 12. 在线留言/联系表单（f_contact_message）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_contact_message (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    type                VARCHAR(64)     DEFAULT NULL                        COMMENT '类型: join(加盟咨询)/cooperate(工程合作)/feedback(客户反馈)/other(其他)',

    name                VARCHAR(128)    NOT NULL                            COMMENT '姓名',
    phone               VARCHAR(32)     DEFAULT NULL                        COMMENT '电话',
    email               VARCHAR(128)    DEFAULT NULL                        COMMENT '邮箱',
    company             VARCHAR(256)    DEFAULT NULL                        COMMENT '公司名称',
    address             VARCHAR(512)    DEFAULT NULL                        COMMENT '地址',

    subject             VARCHAR(256)    DEFAULT NULL                        COMMENT '主题',
    message             TEXT            DEFAULT NULL                        COMMENT '留言内容',

    status              TINYINT         DEFAULT 0                           COMMENT '状态: 0待处理 1处理中 2已回复 3已关闭',
    reply_content       TEXT            DEFAULT NULL                        COMMENT '回复内容',
    reply_time          TIMESTAMP       NULL DEFAULT NULL                   COMMENT '回复时间',
    handled_by          VARCHAR(128)    DEFAULT NULL                        COMMENT '处理人',

    source_ip           VARCHAR(64)     DEFAULT NULL                        COMMENT 'IP地址',
    source_page         VARCHAR(512)    DEFAULT NULL                        COMMENT '来源页面',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID（访客留言为NULL）',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_type      (site_code, type),
    INDEX idx_status         (status),
    INDEX idx_create_time    (create_time),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='在线留言表单';

-- ============================================================
-- 13. 媒体库文件管理（f_media_library）
--    支持 MinIO 和本地存储
-- ============================================================
CREATE TABLE IF NOT EXISTS f_media_library (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    -- 文件信息
    file_name           VARCHAR(256)    NOT NULL                            COMMENT '原始文件名',
    file_type           VARCHAR(64)     DEFAULT NULL                        COMMENT '文件类型: image/video/document',
    mime_type           VARCHAR(128)    DEFAULT NULL                        COMMENT 'MIME类型',
    file_size           BIGINT          DEFAULT NULL                        COMMENT '文件大小（字节）',

    -- 存储
    storage_type        VARCHAR(32)     DEFAULT 'minio'                     COMMENT '存储类型: local/minio',
    file_path           VARCHAR(512)    NOT NULL                            COMMENT '存储路径（相对于bucket或upload目录）',
    full_url            VARCHAR(512)    DEFAULT NULL                        COMMENT '完整访问URL',

    -- MinIO
    bucket_name         VARCHAR(128)    DEFAULT NULL                        COMMENT 'MinIO bucket名称',
    object_key          VARCHAR(512)    DEFAULT NULL                        COMMENT 'MinIO object key',
    etag                VARCHAR(256)    DEFAULT NULL                        COMMENT 'MinIO ETag',

    -- 图片特有
    width               INT             DEFAULT NULL                        COMMENT '图片宽度（像素）',
    height              INT             DEFAULT NULL                        COMMENT '图片高度（像素）',
    thumb_path          VARCHAR(512)    DEFAULT NULL                        COMMENT '缩略图路径',

    -- 使用信息
    used_in             VARCHAR(256)    DEFAULT NULL                        COMMENT '使用位置: carousel/product/case/news/page',
    used_count          INT             DEFAULT 0                           COMMENT '引用次数',

    -- 上传信息
    uploaded_by         VARCHAR(128)    DEFAULT NULL                        COMMENT '上传人',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_type      (site_code, file_type),
    INDEX idx_used_in        (used_in),
    INDEX idx_create_time    (create_time),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='媒体库文件管理';

-- ============================================================
-- 14. 管理员账号（f_admin_user）
--    认证方式：Sa-Token
-- ============================================================
CREATE TABLE IF NOT EXISTS f_admin_user (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    username            VARCHAR(64)     NOT NULL                            COMMENT '用户名',
    password            VARCHAR(256)    NOT NULL                            COMMENT '加密密码（BCrypt）',
    nickname            VARCHAR(128)    DEFAULT NULL                        COMMENT '昵称',
    avatar              VARCHAR(512)    DEFAULT NULL                        COMMENT '头像',

    email               VARCHAR(128)    DEFAULT NULL                        COMMENT '邮箱',
    phone               VARCHAR(32)     DEFAULT NULL                        COMMENT '电话',

    role                VARCHAR(64)     DEFAULT 'editor'                    COMMENT '角色: super_admin/admin/editor',
    permissions_json    JSON            DEFAULT NULL                        COMMENT '权限列表',

    status              TINYINT         DEFAULT 1                           COMMENT '状态: 0禁用 1启用',
    last_login_time     TIMESTAMP       NULL DEFAULT NULL                   COMMENT '最后登录时间',
    last_login_ip       VARCHAR(64)     DEFAULT NULL                        COMMENT '最后登录IP',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '创建人用户ID',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人用户ID',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    UNIQUE KEY uk_username (username),
    INDEX idx_site_code      (site_code),
    INDEX idx_status         (status),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='管理员账号';

-- 初始化超级管理员（密码: [REDACTED]，BCrypt 加密）
INSERT INTO f_admin_user (site_code, username, password, nickname, role, status)
VALUES ('cg', 'admin', '$2a$10$gADNgagGqTDxK7dwg7yw6OmJWRsqdKK2bmOXsPTfU7mM0OvCSOo5W', '超级管理员', 'super_admin', 1);

-- ============================================================
-- 15. 操作日志（f_operation_log）
-- ============================================================
CREATE TABLE IF NOT EXISTS f_operation_log (
    id                  BIGINT          NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT '主键',
    site_code           VARCHAR(32)     NOT NULL DEFAULT 'cg'               COMMENT '站点代码',

    user_id             BIGINT          DEFAULT NULL                        COMMENT '操作用户ID',
    username            VARCHAR(64)     DEFAULT NULL                        COMMENT '操作用户名',
    operation           VARCHAR(128)    DEFAULT NULL                        COMMENT '操作类型: CREATE/UPDATE/DELETE/LOGIN/LOGOUT',
    module              VARCHAR(64)     DEFAULT NULL                        COMMENT '操作模块: product/case/news/page/media/user',

    description         TEXT            DEFAULT NULL                        COMMENT '操作描述',
    request_method      VARCHAR(16)     DEFAULT NULL                        COMMENT '请求方法: GET/POST/PUT/DELETE',
    request_url         VARCHAR(512)    DEFAULT NULL                        COMMENT '请求URL',
    request_params      TEXT            DEFAULT NULL                        COMMENT '请求参数',
    response_data       TEXT            DEFAULT NULL                        COMMENT '响应数据',

    ip_address          VARCHAR(64)     DEFAULT NULL                        COMMENT 'IP地址',
    user_agent          VARCHAR(512)    DEFAULT NULL                        COMMENT 'User-Agent',

    execution_time      INT             DEFAULT NULL                        COMMENT '执行时长（毫秒）',
    status              TINYINT         DEFAULT NULL                        COMMENT '状态: 0失败 1成功',
    error_msg           TEXT            DEFAULT NULL                        COMMENT '错误信息',

    -- 审计字段
    create_by           BIGINT          DEFAULT NULL                        COMMENT '操作用户ID（冗余）',
    update_by           BIGINT          DEFAULT NULL                        COMMENT '更新人（日志不改，占位）',
    create_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP  COMMENT '创建时间',
    update_time         DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    remark              VARCHAR(512)    DEFAULT NULL                        COMMENT '备注',
    del_flag            CHAR(1)         NOT NULL DEFAULT '0'                COMMENT '删除标志（0正常 2已删除）',

    INDEX idx_site_user      (site_code, user_id),
    INDEX idx_module         (module),
    INDEX idx_operation      (operation),
    INDEX idx_create_time    (create_time),
    INDEX idx_site_del       (site_code, del_flag)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='操作日志';

-- ============================================================
-- 数据库初始化完成
-- 共 15 张业务表
-- ============================================================
