-- 第一版租赁系统 只支持自营矿池挖矿

-- -- 创建用户表，存储用户基本信息
-- CREATE TABLE IF NOT EXISTS `lease_user` (
--     `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
--     `user_id` VARCHAR(50) NOT NULL UNIQUE COMMENT '用户id(邮箱)',
--     `password` VARCHAR(64) NOT NULL COMMENT '密码',
-- 		`address` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '钱包地址',
--     `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
--     `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
--
--

-- 创建店铺表
CREATE TABLE IF NOT EXISTS `lease_shop` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '店铺ID',
    `user_email` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '店铺拥有者邮箱',
    `name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '店铺名称',
    `image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '店铺图片路径',
    `state` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '商铺状态 0 待审核 1 审核通过(店铺开启) 2 店铺关闭',
    `description` TEXT COMMENT '店铺描述',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段',
    UNIQUE INDEX idx_email (user_email)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='店铺表';

-- 创建店铺--店铺支持收款地址配置表
CREATE TABLE IF NOT EXISTS `lease_shop_config` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '配置ID',
    `shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
    `product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品 ID (商品id为0代表适用于店铺中所有商品) ------- 该字段删除',
    `pay_coin`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'nexa rxd dgbo dgbq dgbs alph enx grs mona usdt usdc busd',
    `chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家地址链名称',
    `pay_coin_image`  VARCHAR(255) NOT NULL DEFAULT '' COMMENT '支付币种图标',
    `pay_type`  TINYINT(1) NOT NULL DEFAULT 0 COMMENT '币种类型 0 虚拟币 1 稳定币',
    `pay_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖方对应收款钱包',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `qrcode` LONGTEXT COMMENT '卖方对应收款钱包二维码',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='店铺支持收款地址配置表';


-- 用于店铺收款钱包配置 时下拉选择链和币
CREATE TABLE IF NOT EXISTS `lease_chain_coin_config` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '配置ID',
    `coin_full`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种全称',
    `coin_image`  VARCHAR(255) NOT NULL DEFAULT '' COMMENT '支付币种图标',
    `coin`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'nexa rxd dgbo dgbq dgbs alph enx grs mona usdt usdc busd',
    `chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '链名称'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='店铺支持收款地址配置表(店铺钱包)';


-- 创建商品表，存储挖矿机器和算力套餐信息
CREATE TABLE IF NOT EXISTS `lease_product` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '商品 ID',
    `shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
    `name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '商品名称',
    `image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '商品图片路径',
    `algorithm` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '算法',
    `sale_number` INT NOT NULL DEFAULT 0 COMMENT '销售机器数（租赁出一次算一个销售数）',
    `total_machine_number` INT NOT NULL DEFAULT 0 COMMENT '当前总矿机数（包含已售出矿机数）',
    `max_price` DECIMAL(30, 18) NOT NULL DEFAULT 0.000000 COMMENT '商品下机器最大价格',
    `min_price` DECIMAL(30, 18) NOT NULL DEFAULT 0.000000 COMMENT '商品下机器最小价格',
    `coin`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT ' 矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
    `coin_full_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT ' 矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
    `type` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '商品类型，0 矿机 1 算力 ',
    `state` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '上下架状态，0 上架，1 下架',
    `description` TEXT COMMENT '商品描述',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';

CREATE TABLE IF NOT EXISTS `lease_product_machine` (
     `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
    `shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
    `product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品 ID',
    `user` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器 对应的矿工账号',
    `type` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '矿机型号',
    `coin`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT ' 矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
    `miner` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器编号',
    `theory_power` DECIMAL(32, 6) NOT NULL DEFAULT 0.000000 COMMENT '商品机器单机算力（卖方手动填写）理论算力 （如果实时变化可不要这个字段）',
    `computing_power` DECIMAL(32, 6) NOT NULL DEFAULT 0.000000 COMMENT '实际算力（计算得到，商家不能够自己添加和修改） （如果实时变化可不要这个字段）',
    `theory_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.00 COMMENT '单机理论收益：单位usdt（每日:根据添加机器时，实时计算的收益值）',
-- 		`actual_income` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '单机预估实际收益(每日)',
    `unit`  VARCHAR(16) NOT NULL DEFAULT '' COMMENT '算力单位 GH/s TH/s PH/s',
-- 		`electricity_bill`  DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '电费 单位 $/度 (该字段目前未使用，可删除)',
    `max_lease_days` INT NOT NULL DEFAULT 7 COMMENT '矿机租售天数',
    `power_dissipation` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '功耗 单位kw/h',
    `income_rate` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 DEFAULT 0.00 COMMENT '收益率',
    `cost` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '默认单价单位$ [ 功耗 * 电费 * 24 * (1 + 收益率) ]',
    `price` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '实际单价',
    `sale_state` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '售出状态 0未售出 1已售出 2售出中(已下单情况该状态已不存在)',
    `state` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '上下架状态，0 上架，1 下架',
    `del` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除字段',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    KEY `idx_user_coin_miner` (`user`, `coin`, `miner`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表对应的物品机器表';




CREATE TABLE IF NOT EXISTS `lease_product_machine_price` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
    `product_machine_id` BIGINT NOT NULL DEFAULT 0 COMMENT '矿机id',
    `price` DECIMAL(30, 18) NOT NULL DEFAULT 0.00 COMMENT '实际单价',
    `coin`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '价值单位',
    `chain` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '链',
    `del` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表对应的物品机器表';


-- 创建已购机器表(租赁表)
CREATE TABLE IF NOT EXISTS `lease_user_owned_product` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
    `user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户id(邮箱)',
    `product_machine_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品对应的机器id',
    `user` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器 对应的矿工账号',
    `order_id` BIGINT NOT NULL DEFAULT 0 COMMENT '订单 ID',
    `miner` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器编号',
    `coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
    `estimated_end_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '预估商品结束时的总收益',
    `estimated_end_usdt_income`  DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '预估商品结束时的总收益 单价usdt',
    `current_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '当前收益（根据购买机器到现在的平均算力计算得到）单位 币种',
    `current_usdt_income`  DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '当前收益（根据购买机器到现在的平均算力计算得到----非实时）单位usdt',
    `settle_income`  DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '待结算收益(用于存储某天还未支付情况下的收益)',
    `settle_usdt_income`  DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '待结算收益 (用于存储某天还未支付情况下的收益----非实时)单位usdt',
    `order_item_id` BIGINT NOT NULL DEFAULT 0 COMMENT '订单明细 ID，关联订单中的购买记录',
    `address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖方对应收款钱包',
    `start_time` DATETIME NOT NULL COMMENT '商品开始使用时间(购买当天24点生效)',
    `end_time` DATETIME NOT NULL COMMENT '商品使用结束时间',
    `purchased_computing_power` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '购买算力时实时算力，当 type 为 1 时有效',
    `status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '商品状态，0 表示运行中，1  表示已过期 ',
    `type` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '商品类型，0 表示挖矿机器，1 表示算力套餐',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '购买时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户拥有商品详情表';


-- 创建购物车表，存储用户添加到购物车的商品信息
CREATE TABLE IF NOT EXISTS `lease_shopping_cart` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '购物车 ID',
    `user_id` varchar(64) NOT NULL DEFAULT '' COMMENT '用户 ID(邮箱)',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车表';


-- 创建购物车详情表
CREATE TABLE IF NOT EXISTS `lease_shopping_cart_info` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
    `cart_id` BIGINT NOT NULL DEFAULT 0 COMMENT '购物车ID',
    `product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品 ID',
    `product_machine_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品机器ID',
    `lease_time` int NOT NULL DEFAULT 1 COMMENT '租赁天数',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车详情表';

-- 创建订单表，存储订单基本信息
CREATE TABLE IF NOT EXISTS `lease_order_info` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '订单 ID',
    `order_number` VARCHAR(50) NOT NULL DEFAULT '' UNIQUE COMMENT '订单号',
    `user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户id(邮箱)',
    `total_price` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '订单总价',
    `status` TINYINT(1) NOT NULL DEFAULT 7 COMMENT '订单状态，0 表示待支付，1 表示（全部）已支付，2 表示已取消 3售后状态 4已退款 5 支付已超时 6 支付中 (  目前只有这三种状态 7 订单进行中 8 订单已完成 9 余额不足,订单已取消)  10 部分已支付',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '下单时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';



-- 创建订单明细表，存储订单中的商品明细
CREATE TABLE IF NOT EXISTS `lease_order_item` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '订单明细 ID',
    `order_id` BIGINT NOT NULL DEFAULT 0 COMMENT '订单 ID',
    `user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户id(邮箱)',
    `shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
    `product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品 ID',
    `product_machine_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品对应的机器id',
    `user` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器 对应的矿工账号',
    `miner` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器编号',
    `name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '商品名称',
    `theory_income` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '单机理论收益',
    `lease_time` INT NOT NULL DEFAULT 0 COMMENT '租赁天数',
    `status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '0 租约已过期 1 租约生效中 2 等待租约生效 ',
    `pay_coin`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'nexa rxd dgbo dgbq dgbs alph enx grs mona usdt usdc busd',
    `coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
    `address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖方对应收款钱包',
    `chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家地址链名称',
    `symbol` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家地址支付币种',
    `from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买方对应收款钱包(删除，支付时用户必定存在和卖家收款地址相同币种和链的地址，代码中已做处理)',
    `from_chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买方地址链名称（删除）',
    `from_symbol` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买方地址支付币种（删除）',
    `image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '商品图片路径',
    `quantity` INT NOT NULL DEFAULT 1 COMMENT '商品数量（弃用）',
    `price` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '商品价格',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单明细表';




-- 创建支付记录表，模拟支付信息
CREATE TABLE IF NOT EXISTS `lease_payment_record` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '支付记录 ID',
    `order_id` BIGINT NOT NULL DEFAULT 0 UNIQUE COMMENT '订单 ID',
    `shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
    `product_id` BIGINT COMMENT '商品 ID（后续删除）',
    `pay_coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'nexa rxd dgbo dgbq dgbs alph enx grs mona usdt usdc busd',
    `amount` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '需支付总金额',
    `pay_amount` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '已支付金额',
    `status` TINYINT(1) NOT NULL DEFAULT 7 COMMENT '支付状态0支付失败 1支付成功--全部货款已支付 2待支付 5支付已超时 6 支付中(  目前只有这三种状态 7 订单进行中 8 订单已完成 9 余额不足,订单已取消) 10支付成功--已支付部分货款 ',
    `from` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '买家钱包',
    `hash` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '交易id 交易成功后生成',
    `pay_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖方对应收款钱包',
    `qrcode` LONGTEXT COMMENT '支付地址二维码',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '支付时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    KEY `orderid_shopid` (`order_id`,`shop_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付记录表';



-- -- 创建商品收益表，存储每个商品对应的收益信息
-- CREATE TABLE IF NOT EXISTS `lease_product_income` (
--     `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '收益记录 ID',
--     `user_owned_product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户拥有商品详情 ID，关联 lease_user_owned_product 表',
--     `estimated_end_income` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '预估商品结束时的总收益',
--     `current_actual_income` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '当前实际总收益',
--     `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
--     `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间'
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品收益表';
--
--
-- --   删除
--  CREATE TABLE IF NOT EXISTS `lease_shop_address_config` (
-- 			`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
-- 			`user_id` varchar(64) NOT NULL COMMENT '买方账号id（邮箱）',
-- 			`address` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '卖方收款钱包 每个买方对应一个地址（自动生成匹配）',
-- 			`shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
-- 			 UNIQUE KEY `idx_user_address_shop` (`user_id`,`address`,shop_id)
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='矿池nexa机器实时平均算力';


-- 官方自动生成地址存储表
CREATE TABLE IF NOT EXISTS `lease_auto_address` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
    `address` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '钱包地址',
    `from_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `from_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0 未使用 1 已使用 2 钱包已过期',
    `bind_user` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '绑定者邮箱',
    UNIQUE INDEX `idx_address_from_symbol_from_chain` (`address`, `from_symbol`, `from_chain`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='官方自动生成地址表';


-- 个人钱包资料表
CREATE TABLE IF NOT EXISTS `lease_user_wallet_data` (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
    `user_id` VARCHAR(50) NOT NULL UNIQUE COMMENT '用户id(邮箱)',
    `queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '钱包唯一id(用于充值功能)',
    `from_address` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '充值钱包地址（我们提供）',
    `balance` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '余额',
    `blocked_balance` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '冻结余额(用户购买机器完成租约所需金额)',
    `to_address`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '收款钱包地址(用户自己填写)',
    `from_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `from_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `to_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `to_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `qrcode` LONGTEXT COMMENT '支付地址二维码',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段' ,
    UNIQUE INDEX `idx_user_from_info` (`user_id`, `from_address`,`from_symbol`, `from_chain`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户钱包信息表(个人钱包)';



-- 支付记录表
CREATE TABLE IF NOT EXISTS lease_pay_record_message (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
    `queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '消息ID',
    `from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买家充值地址',
    `to_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家充值地址',
    `order_number` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '订单号（方便查询,基本未使用)',
    `order_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '订单号',
    `shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
    `user_id` VARCHAR(50) NOT NULL COMMENT '买方邮箱',
    `block_amount`DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '买方钱包冻结金额',
    `amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '理论支付金额',
    `real_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际支付金额',
    `need_amount`  DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际应支付金额（支付是一天一次，根据一天内预估算力和实际算力差值计算得来）',
    `block_height` BIGINT NOT NULL DEFAULT 0 COMMENT '报块高度',
    `from_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `from_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `to_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `to_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `tx_hash` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '交易id',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '支付时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `status` tinyint(1) NOT NULL DEFAULT 2 COMMENT '0 支付失败 1 支付成功 2 支付中 3 校验失败 4 发送支付消息失败',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付记录表';


CREATE TABLE IF NOT EXISTS lease_pay_record_message_info (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
     `queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '消息ID',
    `from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买家充值地址',
    `to_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家充值地址',
    `order_number` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '订单号（方便查询,基本未使用)',
    `order_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '订单号',
    `shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
    `user_id` VARCHAR(50) NOT NULL COMMENT '买方邮箱',
    `block_amount`DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '买方钱包冻结金额',
    `amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '理论支付金额',
    `real_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际支付金额',
    `need_amount`  DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际应支付金额（支付是一天一次，根据一天内预估算力和实际算力差值计算得来）',
    `block_height` BIGINT NOT NULL DEFAULT 0 COMMENT '报块高度',
    `from_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `from_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `to_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `to_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `tx_hash` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '交易id',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '支付时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `status` tinyint(1) NOT NULL DEFAULT 2 COMMENT '0 支付失败 1 支付成功 2 支付中 3 校验失败 4 发送支付消息失败',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付记录详情表（订单对应每日应支付金额）';


-- 充值记录返回表
CREATE TABLE IF NOT EXISTS lease_pay_recharge_message (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
    `queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '消息ID',
    `address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '充值地址',
    `amount` DECIMAL(40, 6) NOT NULL DEFAULT 0.00000000 COMMENT '支付金额',
    `chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '链名称',
    `symbol` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '币种',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '充值时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '0 充值失败 1 充值成功 2 充值中',
    `tx_hash` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '交易id',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段' ,
    UNIQUE INDEX `tx_hash_key` (`tx_hash`);
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充值记录表';

-- 提现记录表
CREATE TABLE IF NOT EXISTS lease_pay_withdraw_message (
    `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
    `queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '消息ID',
    `from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '用户充值地址',
    `to_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '提现地址(用户自定义)',
    `amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '提现金额',
    `from_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `from_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `to_symbol`  VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
    `service_charge` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '提现费用',
    `to_chain`  VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '充值时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `status` tinyint(1) NOT NULL DEFAULT 2 COMMENT '0 提现失败 1 提现成功 2 提现中',
    `tx_hash` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '交易id',
    `del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='提现记录表';

CREATE TABLE IF NOT EXISTS  `nexa_real_power` (
    `id` int NOT NULL AUTO_INCREMENT,
    `user` varchar(64) NOT NULL COMMENT "挖矿账户",
    `miner` varchar(64) NOT NULL  COMMENT "矿工编号",
    `date` datetime NOT NULL,
    `power` decimal(32,6) NOT NULL COMMENT "实时算力单位 MH/S",
    PRIMARY KEY (`id`),
    UNIQUE KEY `user_miner` (`user`,`miner`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci  COMMENT='矿机实时算力';

CREATE TABLE IF NOT EXISTS  `grs_real_power` (
    `id` int NOT NULL AUTO_INCREMENT,
    `user` varchar(64) NOT NULL COMMENT "挖矿账户",
    `miner` varchar(64) NOT NULL  COMMENT "矿工编号",
    `date` datetime NOT NULL,
    `power` decimal(32,6) NOT NULL COMMENT "实时算力单位 MH/S",
    PRIMARY KEY (`id`),
    UNIQUE KEY `user_miner` (`user`,`miner`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci  COMMENT='矿机实时算力';

CREATE TABLE IF NOT EXISTS  `mona_real_power` (
    `id` int NOT NULL AUTO_INCREMENT,
    `user` varchar(64) NOT NULL COMMENT "挖矿账户",
    `miner` varchar(64) NOT NULL  COMMENT "矿工编号",
    `date` datetime NOT NULL,
    `power` decimal(32,6) NOT NULL COMMENT "实时算力单位 MH/S",
    PRIMARY KEY (`id`),
    UNIQUE KEY `user_miner` (`user`,`miner`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci  COMMENT='矿机实时算力';

CREATE TABLE IF NOT EXISTS  `rxd_real_power` (
    `id` int NOT NULL AUTO_INCREMENT,
    `user` varchar(64) NOT NULL COMMENT "挖矿账户",
    `miner` varchar(64) NOT NULL  COMMENT "矿工编号",
    `date` datetime NOT NULL,
    `power` decimal(32,6) NOT NULL COMMENT "实时算力单位 MH/S",
    PRIMARY KEY (`id`),
    UNIQUE KEY `user_miner` (`user`,`miner`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci  COMMENT='矿机实时算力';


ALTER TABLE lease_product MODIFY COLUMN `max_price` DECIMAL(30, 18) NOT NULL DEFAULT 0.000000 COMMENT '商品下机器最大价格';
ALTER TABLE lease_product MODIFY COLUMN		`min_price` DECIMAL(30, 18) NOT NULL DEFAULT 0.000000 COMMENT '商品下机器最小价格';
ALTER TABLE lease_product_machine MODIFY COLUMN `theory_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '单机理论收益：单位usdt（每日:根据添加机器时，实时计算的收益值）';
ALTER TABLE lease_user_owned_product MODIFY COLUMN 	`estimated_end_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '预估商品结束时的总收益';
ALTER TABLE lease_user_owned_product MODIFY COLUMN 	`estimated_end_usdt_income`  DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '预估商品结束时的总收益 单价usdt';
ALTER TABLE lease_user_owned_product MODIFY COLUMN 	`current_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '当前收益（根据购买机器到现在的平均算力计算得到）单位 币种';
ALTER TABLE lease_user_owned_product MODIFY COLUMN 	`current_usdt_income`  DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '当前收益（根据购买机器到现在的平均算力计算得到----非实时）单位usdt';
ALTER TABLE lease_user_owned_product MODIFY COLUMN 	`settle_income`  DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '待结算收益(用于存储某天还未支付情况下的收益)';
ALTER TABLE lease_user_owned_product MODIFY COLUMN 	`settle_usdt_income`  DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '待结算收益 (用于存储某天还未支付情况下的收益----非实时)单位usdt';
ALTER TABLE lease_pay_record_message MODIFY COLUMN	`block_amount`DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '买方钱包冻结金额';
ALTER TABLE lease_pay_record_message MODIFY COLUMN	  `amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '理论支付金额';
ALTER TABLE lease_pay_record_message MODIFY COLUMN		`real_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际支付金额';
ALTER TABLE lease_pay_record_message MODIFY COLUMN		 `need_amount`  DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际应支付金额（支付是一天一次，根据一天内预估算力和实际算力差值计算得来）';
ALTER TABLE lease_pay_withdraw_message MODIFY COLUMN		 `amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '提现金额';
ALTER TABLE lease_pay_recharge_message ADD COLUMN `block_height` BIGINT NOT NULL DEFAULT 0 COMMENT '报块高度';
ALTER TABLE lease_pay_recharge_message ADD COLUMN `from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '充值来源地址(用户自己的钱包)';
ALTER TABLE lease_pay_withdraw_message ADD COLUMN `block_height` BIGINT NOT NULL DEFAULT 0 COMMENT '报块高度';
ALTER TABLE lease_order_item ADD COLUMN  `already_pay_amount` DECIMAL(32, 18) NOT NULL DEFAULT 0.00 COMMENT '已支付总金额(每天加一)';
ALTER TABLE lease_order_item ADD COLUMN  `already_pay_real_amount` DECIMAL(32, 18) NOT NULL DEFAULT 0.00 COMMENT '已支付实际总金额';
ALTER TABLE lease_order_item ADD COLUMN  `settle_pay_real_amount` DECIMAL(32, 18) NOT NULL DEFAULT 0.00 COMMENT '当日待确认支付金额';
ALTER TABLE lease_order_info ADD COLUMN `fee` DECIMAL(32, 8) NOT NULL DEFAULT 0.00 COMMENT '订单手续费';
