### 路由注册表
CREATE TABLE `front_proxy` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `appid` varchar(255) NOT NULL,
    `function_code` varchar(255) NOT NULL DEFAULT '' COMMENT '功能代码',
    `url` varchar(255) NOT NULL COMMENT '接口地址',
    `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '0：冻结不可用 1：正常可用',
    `timeout` int(11) NOT NULL DEFAULT '0' COMMENT '超时时间，单位毫秒。为0时走代理完关配置',
    `check_sess` tinyint(4) NOT NULL DEFAULT '1' COMMENT '权益session； 0不需要 1校验user 2 校验ent 3 全部',
    `check_power` tinyint(4) NOT NULL DEFAULT '0' COMMENT '权益校验;0：不需要 1：需要',
    `check_auth` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否需要认证；0不需要 1校验user 2 校验ent 3 全部',
    `check_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否需要检查状态（冻结）；0不需要 1校验user 2 校验ent 3 全部',
    `ploy_code` varchar(255) NOT NULL DEFAULT '' COMMENT '拦截策略code',
    `check_blacklist` tinyint(4) DEFAULT '0' COMMENT '此字段需要删除',
    `deduct_source` tinyint(4) NOT NULL DEFAULT '0' COMMENT '扣减来源；0：不扣减 1：前置代理（默认：1） 2：后端应用（必须返回后端应用）3：应用调资源中台自行扣减',
    `middleground_code` varchar(255) NOT NULL COMMENT '中台代码，需要根据中台代码，到etcd中找对应的中台api地址',
    `remark` varchar(255) DEFAULT NULL COMMENT '备注',
    `create_time` datetime NOT NULL COMMENT '创建时间',
    `create_persion` varchar(255) NOT NULL COMMENT '创建人',
    `update_time` datetime NOT NULL COMMENT '更新时间',
    `update_person` varchar(255) NOT NULL COMMENT '更新人',
    `power_type` tinyint(4) DEFAULT NULL COMMENT '权益判断方式、0走资源中台   \n1前置代理判断，是否是付费用户   \n2前置代理判断，是否是超级订阅\n   3前置代理判断，是否是大会员\n   4前置代理判断，是否是商机管理',
     PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8mb4 COMMENT='前置代理表';

### 旧字段
# UPDATE front_proxy SET ploy_code = ''

### 请求策略
CREATE TABLE `front_proxy_poly` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `code` varchar(255) NOT NULL COMMENT '策略编码',
    `ploy_rule` json NOT NULL COMMENT '策略规则',
    `remark` varchar(255) DEFAULT NULL COMMENT '备注',
    `create_time` datetime NOT NULL COMMENT '创建时间',
    `create_persion` varchar(255) NOT NULL COMMENT '创建人',
    `update_time` datetime NOT NULL COMMENT '更新时间',
    `update_person` varchar(255) NOT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
    UNIQUE KEY `onlyCode` (`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='前置代理-策略表';


### 白名单 && 黑名单
CREATE TABLE `front_proxy_blackWhite` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `value` varchar(255) NOT NULL COMMENT '用户id or 用户ip',
    `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '0：正常 1：白名单 -1:黑名单',
    `remark` varchar(255) DEFAULT NULL COMMENT '备注',
    `create_time` datetime NOT NULL COMMENT '创建时间',
    `create_persion` varchar(255) NOT NULL COMMENT '创建人',
    `update_time` datetime NOT NULL COMMENT '更新时间',
    `update_person` varchar(255) NOT NULL COMMENT '更新人',
    PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='前置代理-黑白名单';

### 变更记录
CREATE TABLE `front_proxy_history` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `userId` varchar(255) NOT NULL COMMENT '用户id',
    `before` varchar(255) DEFAULT NULL COMMENT '修改前',
    `after` varchar(255) DEFAULT NULL COMMENT '修改后',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='前置代理-操作变更记录';

### 管理员
CREATE TABLE `front_proxy_admin` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `account` varchar(255) NOT NULL COMMENT '账户',
   `password` varchar(255) DEFAULT NULL COMMENT '密码',
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='前置代理-管理员表';
