-- 微信支付订单表
CREATE TABLE `yifan_wx_pay_order` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `created_id` int(11) DEFAULT NULL COMMENT '创建人ID',
  `updated_id` int(11) DEFAULT NULL COMMENT '更新人ID',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除(0否 1是)',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态(0禁用 1启用)',
  
  `order_no` varchar(64) NOT NULL COMMENT '订单号',
  `out_trade_no` varchar(64) DEFAULT NULL COMMENT '商户订单号(微信支付用)',
  `transaction_id` varchar(64) DEFAULT NULL COMMENT '微信支付订单号',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `openid` varchar(128) DEFAULT NULL COMMENT '用户openid',
  `pay_channel` varchar(32) NOT NULL DEFAULT 'wechat' COMMENT '支付渠道(wechat/alipay/balance)',
  `description` varchar(128) NOT NULL COMMENT '商品描述',
  `total_amount` decimal(10,2) NOT NULL COMMENT '订单金额(元)',
  `pay_amount` decimal(10,2) DEFAULT NULL COMMENT '实付金额(元)',
  `business_type` varchar(32) NOT NULL COMMENT '业务类型(naming_report等)',
  `business_id` int(11) DEFAULT NULL COMMENT '业务ID',
  `order_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '订单状态(0待支付 1已支付 2已取消 3已退款 4已关闭)',
  `trade_state` varchar(32) DEFAULT 'NOTPAY' COMMENT '支付状态(NOTPAY/SUCCESS/REFUND/CLOSED)',
  `trade_state_desc` varchar(256) DEFAULT NULL COMMENT '支付状态描述',
  `pay_time` datetime DEFAULT NULL COMMENT '支付时间',
  `expire_time` datetime DEFAULT NULL COMMENT '订单过期时间',
  `refund_amount` decimal(10,2) DEFAULT NULL COMMENT '退款金额(元)',
  `refund_time` datetime DEFAULT NULL COMMENT '退款时间',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_order_no` (`order_no`) COMMENT '订单号唯一索引',
  KEY `idx_user_id` (`user_id`),
  KEY `idx_out_trade_no` (`out_trade_no`),
  KEY `idx_business` (`business_type`, `business_id`),
  KEY `idx_order_status` (`order_status`),
  KEY `idx_created_time` (`created_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信支付订单表';
