-- =============================================
-- 补丁脚本：添加冷钱包表
-- 版本: V1.1
-- 日期: 2026-03-23
-- =============================================

-- ---------------------------------------------
-- 11. 冷钱包地址表
-- ---------------------------------------------
DROP TABLE IF EXISTS `cold_wallet`;
CREATE TABLE `cold_wallet` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(50) NOT NULL COMMENT '钱包名称',
  `address` varchar(255) NOT NULL COMMENT '钱包地址',
  `network` varchar(20) NOT NULL DEFAULT 'TRC20' COMMENT '网络类型: TRC20/ERC20/BEP20等',
  `is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认: 0-否 1-是',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用 1-启用',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_is_default` (`is_default`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='冷钱包地址表';

-- 插入默认测试钱包地址
INSERT INTO `cold_wallet` (`name`, `address`, `network`, `is_default`, `status`) VALUES
('USDT-TRC20 主钱包', 'TRX1234567890abcdefghijklmnopqrstuvwxyz1234', 'TRC20', 1, 1),
('USDT-ERC20 备用钱包', '0x1234567890abcdef1234567890abcdef12345678', 'ERC20', 0, 1);

-- 为 order_fund 表添加钱包相关字段
-- 注意：如果字段已存在会报错，可以忽略或手动检查后执行

-- 添加 wallet_id 字段
ALTER TABLE `order_fund` ADD COLUMN `wallet_id` bigint(20) DEFAULT NULL COMMENT '钱包ID' AFTER `amount`;

-- 添加 wallet_address 字段
ALTER TABLE `order_fund` ADD COLUMN `wallet_address` varchar(255) DEFAULT NULL COMMENT '钱包地址' AFTER `wallet_id`;

-- 添加 withdraw_contact 字段
ALTER TABLE `order_fund` ADD COLUMN `withdraw_contact` varchar(100) DEFAULT NULL COMMENT '提现联系方式' AFTER `wallet_address`;

-- 添加 pay_time 字段
ALTER TABLE `order_fund` ADD COLUMN `pay_time` datetime DEFAULT NULL COMMENT '打款时间' AFTER `remark`;

-- 添加 confirm_time 字段
ALTER TABLE `order_fund` ADD COLUMN `confirm_time` datetime DEFAULT NULL COMMENT '确认时间' AFTER `pay_time`;

-- 添加索引
ALTER TABLE `order_fund` ADD INDEX `idx_wallet_id` (`wallet_id`);
