-- ----------------------------
-- 1、国家/区域表
-- ----------------------------
DROP TABLE IF EXISTS bms_region;
CREATE TABLE bms_region (
  region_id        BIGINT(20)    NOT NULL AUTO_INCREMENT COMMENT '区域ID',
  country_name_cn  VARCHAR(100)           DEFAULT NULL    COMMENT '中文名',
  country_name_en  VARCHAR(100)  NOT NULL                COMMENT '英文名',
  country_code_2   VARCHAR(2)    NOT NULL                COMMENT 'ISO两位码',
  country_code_3   VARCHAR(3)             DEFAULT NULL    COMMENT 'ISO三位码',
  continent        VARCHAR(50)            DEFAULT NULL    COMMENT '洲/大区',
  sub_region       VARCHAR(50)            DEFAULT NULL    COMMENT '子区域',
  currency_code    VARCHAR(10)            DEFAULT NULL    COMMENT '货币代码',
  currency_name    VARCHAR(50)            DEFAULT NULL    COMMENT '货币名称',
  currency_symbol  VARCHAR(10)            DEFAULT NULL    COMMENT '货币符号',
  phone_prefix     VARCHAR(10)            DEFAULT NULL    COMMENT '电话前缀',
  flag_emoji       VARCHAR(10)            DEFAULT NULL    COMMENT '国旗emoji',
  flag_url         VARCHAR(500)           DEFAULT NULL    COMMENT '国旗图片URL',
  is_independent   CHAR(1)       NOT NULL DEFAULT '1'   COMMENT '是否独立(1是 0否)',
  is_eu            CHAR(1)       NOT NULL DEFAULT '0'   COMMENT '是否欧盟成员(1是 0否)',
  status           CHAR(1)       NOT NULL DEFAULT '0'   COMMENT '状态(0正常 1停用)',
  del_flag         CHAR(1)       NOT NULL DEFAULT '0'   COMMENT '删除标志(0存在 2删除)',
  create_by        VARCHAR(64)            DEFAULT ''     COMMENT '创建者',
  create_time      DATETIME               DEFAULT NULL    COMMENT '创建时间',
  update_by        VARCHAR(64)            DEFAULT ''     COMMENT '更新者',
  update_time      DATETIME               DEFAULT NULL    COMMENT '更新时间',
  remark           VARCHAR(500)           DEFAULT NULL    COMMENT '备注',
  PRIMARY KEY (region_id),
  UNIQUE INDEX idx_country_code_2 (country_code_2),
  INDEX idx_country_name_cn (country_name_cn),
  INDEX idx_country_name_en (country_name_en),
  INDEX idx_continent (continent)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='国家/区域表';

-- ----------------------------
-- 2、区域数据同步日志表
-- ----------------------------
DROP TABLE IF EXISTS bms_region_sync_log;
CREATE TABLE bms_region_sync_log (
  log_id        BIGINT(20)    NOT NULL AUTO_INCREMENT COMMENT '日志ID',
  sync_type     VARCHAR(20)  NOT NULL DEFAULT 'ALL'  COMMENT '同步类型(ALL全量)',
  status        VARCHAR(20)  NOT NULL DEFAULT 'PROCESSING' COMMENT '状态(PENDING/PROCESSING/SUCCESS/FAILED)',
  total_count   INT(11)               DEFAULT 0      COMMENT 'API返回总数',
  insert_count  INT(11)               DEFAULT 0      COMMENT '新增数',
  update_count  INT(11)               DEFAULT 0      COMMENT '更新数',
  fail_count    INT(11)               DEFAULT 0      COMMENT '失败数',
  duration_ms   BIGINT(20)            DEFAULT 0      COMMENT '耗时(毫秒)',
  error_msg     TEXT                  DEFAULT NULL    COMMENT '错误信息',
  create_by     VARCHAR(64)           DEFAULT ''     COMMENT '创建者',
  create_time   DATETIME              DEFAULT NULL    COMMENT '创建时间',
  update_by     VARCHAR(64)           DEFAULT ''     COMMENT '更新者',
  update_time   DATETIME              DEFAULT NULL    COMMENT '更新时间',
  PRIMARY KEY (log_id),
  INDEX idx_status (status),
  INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域数据同步日志表';

-- ----------------------------
-- 3、菜单数据
-- ----------------------------
-- 一级菜单: 数据管理
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('数据管理', 0, 6, 'data', NULL, 1, 0, 'M', '0', '0', '', 'chart', 'admin', sysdate(), '数据管理目录');

SET @parentId = LAST_INSERT_ID();

-- 二级菜单: 区域管理
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('区域管理', @parentId, 1, 'region', 'data/region/index', 1, 0, 'C', '0', '0', 'data:region:list', 'international', 'admin', sysdate(), '');

SET @regionMenuId = LAST_INSERT_ID();

-- 二级菜单: 同步日志
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('同步日志', @parentId, 2, 'region/sync-log', 'data/region/sync-log/index', 1, 0, 'C', '0', '0', 'data:region:log:list', 'log', 'admin', sysdate(), '');

-- 按钮权限 (区域管理)
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('区域查询', @regionMenuId, 1, '', NULL, 1, 0, 'F', '0', '0', 'data:region:query', '#', 'admin', sysdate(), '');
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('区域编辑', @regionMenuId, 2, '', NULL, 1, 0, 'F', '0', '0', 'data:region:edit', '#', 'admin', sysdate(), '');
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('区域删除', @regionMenuId, 3, '', NULL, 1, 0, 'F', '0', '0', 'data:region:remove', '#', 'admin', sysdate(), '');
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('数据同步', @regionMenuId, 4, '', NULL, 1, 0, 'F', '0', '0', 'data:region:sync', '#', 'admin', sysdate(), '');

-- 按钮权限 (同步日志)
SET @logMenuId = @regionMenuId + 1;
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark)
VALUES ('日志删除', @logMenuId, 1, '', NULL, 1, 0, 'F', '0', '0', 'data:region:log:remove', '#', 'admin', sysdate(), '');
