-- ========================================
-- yanzhu-module-mall 建表 SQL
-- 数据库: MySQL 8.0+
-- 商城模块（包含商品、促销、交易、统计）
-- ========================================

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ========================================
-- 商品模块表
-- ========================================

-- ----------------------------
-- Table structure for product_category
-- ----------------------------
DROP TABLE IF EXISTS `product_category`;
CREATE TABLE `product_category` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类编号',
  `parent_id` bigint DEFAULT NULL COMMENT '父分类编号',
  `name` varchar(32) NOT NULL COMMENT '分类名称',
  `pic_url` varchar(256) DEFAULT NULL COMMENT '分类图片',
  `sort` int DEFAULT NULL COMMENT '排序',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类';

-- ----------------------------
-- Table structure for product_brand
-- ----------------------------
DROP TABLE IF EXISTS `product_brand`;
CREATE TABLE `product_brand` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '品牌编号',
  `name` varchar(64) NOT NULL COMMENT '品牌名称',
  `pic_url` varchar(256) DEFAULT NULL COMMENT '品牌图片',
  `sort` int DEFAULT NULL COMMENT '品牌排序',
  `description` varchar(256) DEFAULT NULL COMMENT '品牌描述',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品品牌';

-- ----------------------------
-- Table structure for product_spu
-- ----------------------------
DROP TABLE IF EXISTS `product_spu`;
CREATE TABLE `product_spu` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '商品 SPU 编号',
  `name` varchar(128) NOT NULL COMMENT '商品名称',
  `keyword` varchar(128) DEFAULT NULL COMMENT '关键字',
  `introduction` varchar(256) DEFAULT NULL COMMENT '商品简介',
  `description` text COMMENT '商品详情',
  `category_id` bigint DEFAULT NULL COMMENT '商品分类编号',
  `brand_id` bigint DEFAULT NULL COMMENT '商品品牌编号',
  `pic_url` varchar(256) DEFAULT NULL COMMENT '商品封面图',
  `slider_pic_urls` text COMMENT '商品轮播图',
  `unit` varchar(20) DEFAULT NULL COMMENT '单位',
  `spec_type` tinyint DEFAULT NULL COMMENT '规格类型',
  `price` decimal(15,2) NOT NULL COMMENT '商品价格',
  `market_price` decimal(15,2) DEFAULT NULL COMMENT '市场价',
  `cost_price` decimal(15,2) DEFAULT NULL COMMENT '成本价',
  `stock` int DEFAULT NULL COMMENT '库存',
  `low_stock` int DEFAULT NULL COMMENT '库存预警',
  `virtual_sales_count` int DEFAULT NULL COMMENT '虚拟销量',
  `actual_sales_count` int DEFAULT NULL COMMENT '实际销量',
  `sort` int DEFAULT NULL COMMENT '排序',
  `status` tinyint DEFAULT NULL COMMENT '商品状态',
  `recommend_sort` int DEFAULT NULL COMMENT '推荐排序',
  `recommend_status` bit(1) DEFAULT NULL COMMENT '推荐状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_category_id` (`category_id`),
  KEY `idx_brand_id` (`brand_id`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品 SPU';

-- ----------------------------
-- Table structure for product_sku
-- ----------------------------
DROP TABLE IF EXISTS `product_sku`;
CREATE TABLE `product_sku` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '商品 SKU 编号',
  `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号',
  `properties` text COMMENT '商品属性',
  `name` varchar(128) DEFAULT NULL COMMENT '商品名称',
  `pic_url` varchar(256) DEFAULT NULL COMMENT '商品图片',
  `price` decimal(15,2) NOT NULL COMMENT '商品价格',
  `market_price` decimal(15,2) DEFAULT NULL COMMENT '市场价',
  `cost_price` decimal(15,2) DEFAULT NULL COMMENT '成本价',
  `stock` int NOT NULL COMMENT '库存',
  `low_stock` int DEFAULT NULL COMMENT '库存预警',
  `weight` decimal(10,3) DEFAULT NULL COMMENT '商品重量',
  `volume` decimal(10,3) DEFAULT NULL COMMENT '商品体积',
  `bar_code` varchar(64) DEFAULT NULL COMMENT '条形码',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_spu_id` (`spu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品 SKU';

-- ----------------------------
-- Table structure for product_property
-- ----------------------------
DROP TABLE IF EXISTS `product_property`;
CREATE TABLE `product_property` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '商品属性编号',
  `name` varchar(32) NOT NULL COMMENT '属性名称',
  `type` tinyint NOT NULL COMMENT '属性类型',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `sort` int DEFAULT NULL COMMENT '排序',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品属性';

-- ----------------------------
-- Table structure for product_property_value
-- ----------------------------
DROP TABLE IF EXISTS `product_property_value`;
CREATE TABLE `product_property_value` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '商品属性值编号',
  `property_id` bigint NOT NULL COMMENT '商品属性编号',
  `name` varchar(32) NOT NULL COMMENT '属性值名称',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `sort` int DEFAULT NULL COMMENT '排序',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_property_id` (`property_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品属性值';

-- ----------------------------
-- Table structure for product_comment
-- ----------------------------
DROP TABLE IF EXISTS `product_comment`;
CREATE TABLE `product_comment` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '评价编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `order_id` bigint NOT NULL COMMENT '订单编号',
  `order_item_id` bigint NOT NULL COMMENT '订单项目编号',
  `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号',
  `sku_id` bigint DEFAULT NULL COMMENT '商品 SKU 编号',
  `type` tinyint DEFAULT NULL COMMENT '评价类型',
  `scores` tinyint DEFAULT NULL COMMENT '评分',
  `content` varchar(500) DEFAULT NULL COMMENT '评价内容',
  `pic_urls` text COMMENT '评价图片',
  `visible` bit(1) DEFAULT NULL COMMENT '是否可见',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_order_id` (`order_id`),
  KEY `idx_spu_id` (`spu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品评价';

-- ----------------------------
-- Table structure for product_favorite
-- ----------------------------
DROP TABLE IF EXISTS `product_favorite`;
CREATE TABLE `product_favorite` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_spu` (`user_id`, `spu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品收藏';

-- ----------------------------
-- Table structure for product_browse_history
-- ----------------------------
DROP TABLE IF EXISTS `product_browse_history`;
CREATE TABLE `product_browse_history` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_spu_id` (`spu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品浏览记录';

-- ----------------------------
-- Table structure for product_cart
-- ----------------------------
DROP TABLE IF EXISTS `product_cart`;
CREATE TABLE `product_cart` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '购物车编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号',
  `sku_id` bigint NOT NULL COMMENT '商品 SKU 编号',
  `count` int NOT NULL COMMENT '数量',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_sku` (`user_id`, `sku_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车';

-- ========================================
-- 交易模块表
-- ========================================

-- ----------------------------
-- Table structure for trade_order
-- ----------------------------
DROP TABLE IF EXISTS `trade_order`;
CREATE TABLE `trade_order` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单编号',
  `no` varchar(32) NOT NULL COMMENT '订单流水号',
  `type` tinyint NOT NULL COMMENT '订单类型',
  `terminal` tinyint NOT NULL COMMENT '订单来源',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `user_ip` varchar(32) DEFAULT NULL COMMENT '用户 IP',
  `user_remark` varchar(500) DEFAULT NULL COMMENT '用户备注',
  `status` tinyint NOT NULL COMMENT '订单状态',
  `product_count` int NOT NULL DEFAULT 0 COMMENT '商品数量',
  `cancel_type` tinyint DEFAULT NULL COMMENT '取消类型',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `comment_status` bit(1) DEFAULT NULL COMMENT '是否评价',
  `brokerage_user_id` bigint DEFAULT NULL COMMENT '推广人编号',
  `pay_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已支付',
  `pay_order_id` bigint DEFAULT NULL COMMENT '支付订单编号',
  `pay_channel_code` varchar(32) DEFAULT NULL COMMENT '支付渠道',
  `pay_time` datetime DEFAULT NULL COMMENT '支付时间',
  `total_price` int NOT NULL DEFAULT 0 COMMENT '商品总价（分）',
  `discount_price` int NOT NULL DEFAULT 0 COMMENT '优惠金额（分）',
  `delivery_price` int NOT NULL DEFAULT 0 COMMENT '运费金额（分）',
  `adjust_price` int NOT NULL DEFAULT 0 COMMENT '订单调价（分）',
  `pay_price` int NOT NULL DEFAULT 0 COMMENT '应付金额（分）',
  `delivery_type` tinyint NOT NULL DEFAULT 1 COMMENT '配送方式',
  `express_no` varchar(64) DEFAULT NULL COMMENT '物流单号',
  `delivery_template_id` bigint DEFAULT NULL COMMENT '物流模板编号',
  `logistics_id` bigint DEFAULT NULL COMMENT '物流公司编号',
  `delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
  `receive_time` datetime DEFAULT NULL COMMENT '收货时间',
  `receiver_name` varchar(32) NOT NULL COMMENT '收件人姓名',
  `receiver_mobile` varchar(32) NOT NULL COMMENT '收件人手机',
  `receiver_area_id` int NOT NULL COMMENT '收件人地区编号',
  `receiver_post_code` int DEFAULT NULL COMMENT '收件人邮编',
  `receiver_detail_address` varchar(256) NOT NULL COMMENT '收件人详细地址',
  `pick_up_store_id` bigint DEFAULT NULL COMMENT '自提门店编号',
  `pick_up_verify_code` varchar(32) DEFAULT NULL COMMENT '自提核销码',
  `refund_status` tinyint DEFAULT NULL COMMENT '退款状态',
  `refund_price` int DEFAULT 0 COMMENT '退款金额（分）',
  `after_sale_status` tinyint DEFAULT NULL COMMENT '售后状态',
  `coupon_id` bigint DEFAULT NULL COMMENT '优惠券编号',
  `coupon_price` int NOT NULL DEFAULT 0 COMMENT '优惠券抵扣金额（分）',
  `use_point` int DEFAULT 0 COMMENT '使用积分',
  `point_price` int NOT NULL DEFAULT 0 COMMENT '积分抵扣金额（分）',
  `give_point` int DEFAULT 0 COMMENT '赠送积分',
  `refund_point` int DEFAULT 0 COMMENT '退款积分',
  `vip_price` int NOT NULL DEFAULT 0 COMMENT 'VIP优惠金额（分）',
  `seckill_activity_id` bigint DEFAULT NULL COMMENT '秒杀活动编号',
  `bargain_activity_id` bigint DEFAULT NULL COMMENT '砍价活动编号',
  `bargain_record_id` bigint DEFAULT NULL COMMENT '砍价记录编号',
  `combination_activity_id` bigint DEFAULT NULL COMMENT '拼团活动编号',
  `combination_head_id` bigint DEFAULT NULL COMMENT '拼团团长编号',
  `combination_record_id` bigint DEFAULT NULL COMMENT '拼团记录编号',
  `finish_time` datetime DEFAULT NULL COMMENT '完成时间',
  `cancel_time` datetime DEFAULT NULL COMMENT '取消时间',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_no` (`no`),
  KEY `idx_status` (`status`),
  KEY `idx_pay_time` (`pay_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易订单';

-- ----------------------------
-- Table structure for trade_order_item
-- ----------------------------
DROP TABLE IF EXISTS `trade_order_item`;
CREATE TABLE `trade_order_item` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单项目编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `order_id` bigint NOT NULL COMMENT '订单编号',
  `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号',
  `sku_id` bigint NOT NULL COMMENT '商品 SKU 编号',
  `spu_name` varchar(128) NOT NULL COMMENT '商品名称',
  `sku_name` varchar(128) DEFAULT NULL COMMENT '商品 SKU 名称',
  `pic_url` varchar(256) DEFAULT NULL COMMENT '商品图片',
  `count` int NOT NULL COMMENT '数量',
  `price` int NOT NULL COMMENT '商品价格（分）',
  `discount_price` int NOT NULL DEFAULT 0 COMMENT '优惠金额（分）',
  `delivery_price` int DEFAULT 0 COMMENT '运费金额（分）',
  `adjust_price` int NOT NULL DEFAULT 0 COMMENT '调价金额（分）',
  `pay_price` int NOT NULL COMMENT '实付金额（分）',
  `coupon_price` int DEFAULT 0 COMMENT '优惠券抵扣金额（分）',
  `point_price` int NOT NULL DEFAULT 0 COMMENT '积分抵扣金额（分）',
  `use_point` int DEFAULT 0 COMMENT '使用积分',
  `give_point` int DEFAULT 0 COMMENT '赠送积分',
  `vip_price` int NOT NULL DEFAULT 0 COMMENT 'VIP优惠金额（分）',
  `comment_status` bit(1) DEFAULT NULL COMMENT '是否评价',
  `after_sale_id` bigint DEFAULT NULL COMMENT '售后编号',
  `after_sale_status` tinyint NOT NULL DEFAULT 0 COMMENT '售后状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_order_id` (`order_id`),
  KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易订单项目';

-- ----------------------------
-- Table structure for trade_order_log
-- ----------------------------
DROP TABLE IF EXISTS `trade_order_log`;
CREATE TABLE `trade_order_log` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志编号',
  `order_id` bigint NOT NULL COMMENT '订单编号',
  `user_id` bigint DEFAULT NULL COMMENT '用户编号',
  `user_type` tinyint DEFAULT NULL COMMENT '用户类型',
  `type` tinyint NOT NULL COMMENT '日志类型',
  `content` varchar(500) DEFAULT NULL COMMENT '日志内容',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易订单日志';

-- ----------------------------
-- Table structure for trade_after_sale
-- ----------------------------
DROP TABLE IF EXISTS `trade_after_sale`;
CREATE TABLE `trade_after_sale` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '售后编号',
  `no` varchar(32) NOT NULL COMMENT '售后单号',
  `status` tinyint NOT NULL COMMENT '售后状态',
  `way` tinyint NOT NULL COMMENT '售后方式',
  `type` tinyint NOT NULL COMMENT '售后类型',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `order_id` bigint NOT NULL COMMENT '订单编号',
  `order_no` varchar(32) NOT NULL COMMENT '订单单号',
  `order_item_id` bigint NOT NULL COMMENT '订单项目编号',
  `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号',
  `spu_name` varchar(128) NOT NULL COMMENT '商品名称',
  `sku_id` bigint DEFAULT NULL COMMENT '商品 SKU 编号',
  `properties` text COMMENT '商品属性',
  `pic_url` varchar(256) DEFAULT NULL COMMENT '商品图片',
  `count` int NOT NULL COMMENT '申请数量',
  `apply_reason` varchar(256) NOT NULL COMMENT '申请原因',
  `apply_description` varchar(500) DEFAULT NULL COMMENT '申请描述',
  `apply_pic_urls` text COMMENT '申请图片地址',
  `audit_user_id` bigint DEFAULT NULL COMMENT '审核用户编号',
  `audit_time` datetime DEFAULT NULL COMMENT '审核时间',
  `audit_reason` varchar(256) DEFAULT NULL COMMENT '审核原因',
  `refund_price` int NOT NULL COMMENT '退款金额（分）',
  `pay_refund_id` bigint DEFAULT NULL COMMENT '支付退款编号',
  `refund_time` datetime DEFAULT NULL COMMENT '退款时间',
  `logistics_id` bigint DEFAULT NULL COMMENT '物流公司编号',
  `logistics_no` varchar(64) DEFAULT NULL COMMENT '物流单号',
  `delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
  `receive_time` datetime DEFAULT NULL COMMENT '收货时间',
  `receive_reason` varchar(256) DEFAULT NULL COMMENT '收货原因',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_order_id` (`order_id`),
  KEY `idx_no` (`no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='售后订单';

-- ----------------------------
-- Table structure for trade_after_sale_log
-- ----------------------------
DROP TABLE IF EXISTS `trade_after_sale_log`;
CREATE TABLE `trade_after_sale_log` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志编号',
  `after_sale_id` bigint NOT NULL COMMENT '售后编号',
  `order_id` bigint NOT NULL COMMENT '订单编号',
  `order_item_id` bigint NOT NULL COMMENT '订单项目编号',
  `user_id` bigint DEFAULT NULL COMMENT '用户编号',
  `user_type` tinyint DEFAULT NULL COMMENT '用户类型',
  `type` tinyint NOT NULL COMMENT '日志类型',
  `before_status` tinyint DEFAULT NULL COMMENT '之前状态',
  `after_status` tinyint NOT NULL COMMENT '之后状态',
  `content` varchar(500) NOT NULL COMMENT '日志内容',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_after_sale_id` (`after_sale_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='售后日志';

-- ----------------------------
-- Table structure for delivery_express
-- ----------------------------
DROP TABLE IF EXISTS `delivery_express`;
CREATE TABLE `delivery_express` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '物流公司编号',
  `code` varchar(32) NOT NULL COMMENT '物流公司编码',
  `name` varchar(64) NOT NULL COMMENT '物流公司名称',
  `logo` varchar(256) DEFAULT NULL COMMENT '物流公司 logo',
  `sort` int DEFAULT NULL COMMENT '排序',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流公司';

-- ----------------------------
-- Table structure for delivery_express_template
-- ----------------------------
DROP TABLE IF EXISTS `delivery_express_template`;
CREATE TABLE `delivery_express_template` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '运费模板编号',
  `name` varchar(32) NOT NULL COMMENT '模板名称',
  `charge_mode` tinyint NOT NULL COMMENT '计费方式',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运费模板';

-- ----------------------------
-- Table structure for delivery_pick_up_store
-- ----------------------------
DROP TABLE IF EXISTS `delivery_pick_up_store`;
CREATE TABLE `delivery_pick_up_store` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '门店编号',
  `name` varchar(64) NOT NULL COMMENT '门店名称',
  `phone` varchar(20) NOT NULL COMMENT '门店手机',
  `area_id` bigint DEFAULT NULL COMMENT '地区编号',
  `detail_address` varchar(256) DEFAULT NULL COMMENT '详细地址',
  `logo` varchar(256) DEFAULT NULL COMMENT '门店 logo',
  `work_start_time` time DEFAULT NULL COMMENT '营业开始时间',
  `work_end_time` time DEFAULT NULL COMMENT '营业结束时间',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自提门店';

-- ----------------------------
-- Table structure for trade_config
-- ----------------------------
DROP TABLE IF EXISTS `trade_config`;
CREATE TABLE `trade_config` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `order_cancel_time` int DEFAULT NULL COMMENT '订单自动取消时间',
  `order_receive_time` int DEFAULT NULL COMMENT '订单自动收货时间',
  `order_comment_time` int DEFAULT NULL COMMENT '订单自动评价时间',
  `after_sale_time` int DEFAULT NULL COMMENT '售后有效期',
  `refund_audit_time` int DEFAULT NULL COMMENT '退款审核时间',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易配置';

-- ----------------------------
-- Table structure for brokerage_user
-- ----------------------------
DROP TABLE IF EXISTS `brokerage_user`;
CREATE TABLE `brokerage_user` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `balance` decimal(15,2) NOT NULL DEFAULT 0 COMMENT '佣金余额',
  `total_brokerage` decimal(15,2) NOT NULL DEFAULT 0 COMMENT '累计佣金',
  `withdraw_price` decimal(15,2) NOT NULL DEFAULT 0 COMMENT '已提现佣金',
  `bind_user_id` bigint DEFAULT NULL COMMENT '绑定用户编号',
  `bind_user_time` datetime DEFAULT NULL COMMENT '绑定时间',
  `enabled` bit(1) DEFAULT NULL COMMENT '是否启用',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分销用户';

-- ----------------------------
-- Table structure for brokerage_record
-- ----------------------------
DROP TABLE IF EXISTS `brokerage_record`;
CREATE TABLE `brokerage_record` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录编号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `biz_type` tinyint NOT NULL COMMENT '业务类型',
  `price` decimal(15,2) NOT NULL COMMENT '金额',
  `total_price` decimal(15,2) NOT NULL COMMENT '账户总余额',
  `description` varchar(256) DEFAULT NULL COMMENT '描述',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分销记录';

-- ----------------------------
-- Table structure for brokerage_withdraw
-- ----------------------------
DROP TABLE IF EXISTS `brokerage_withdraw`;
CREATE TABLE `brokerage_withdraw` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '提现编号',
  `no` varchar(32) NOT NULL COMMENT '提现单号',
  `user_id` bigint NOT NULL COMMENT '用户编号',
  `price` decimal(15,2) NOT NULL COMMENT '提现金额',
  `fee_price` decimal(15,2) NOT NULL DEFAULT 0 COMMENT '手续费',
  `total_price` decimal(15,2) NOT NULL COMMENT '到账金额',
  `status` tinyint NOT NULL COMMENT '状态',
  `pay_channel` varchar(32) DEFAULT NULL COMMENT '提现渠道',
  `pay_qrcode_url` varchar(256) DEFAULT NULL COMMENT '收款二维码',
  `transfer_time` datetime DEFAULT NULL COMMENT '转账时间',
  `transfer_no` varchar(64) DEFAULT NULL COMMENT '转账单号',
  `apply_reason` varchar(256) DEFAULT NULL COMMENT '申请原因',
  `audit_reason` varchar(256) DEFAULT NULL COMMENT '审核原因',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_no` (`no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分销提现';

-- ========================================
-- 促销模块表
-- ========================================

-- ----------------------------
-- Table structure for promotion_coupon
-- ----------------------------
DROP TABLE IF EXISTS `promotion_coupon`;
CREATE TABLE `promotion_coupon` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '优惠劵编号',
  `template_id` bigint NOT NULL COMMENT '优惠劵模板编号',
  `name` varchar(64) NOT NULL COMMENT '优惠劵名',
  `status` tinyint NOT NULL COMMENT '优惠码状态',
  `user_id` bigint DEFAULT NULL COMMENT '用户编号',
  `take_time` datetime DEFAULT NULL COMMENT '领取时间',
  `use_time` datetime DEFAULT NULL COMMENT '使用时间',
  `order_id` bigint DEFAULT NULL COMMENT '使用订单编号',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_template_id` (`template_id`),
  KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='优惠劵';

-- ----------------------------
-- Table structure for promotion_coupon_template
-- ----------------------------
DROP TABLE IF EXISTS `promotion_coupon_template`;
CREATE TABLE `promotion_coupon_template` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '优惠劵模板编号',
  `name` varchar(64) NOT NULL COMMENT '优惠劵名称',
  `status` tinyint NOT NULL COMMENT '状态',
  `discount_type` tinyint NOT NULL COMMENT '优惠类型',
  `discount_amount` decimal(15,2) DEFAULT NULL COMMENT '优惠金额',
  `discount_percent` decimal(5,2) DEFAULT NULL COMMENT '优惠折扣',
  `use_price` decimal(15,2) NOT NULL COMMENT '使用门槛',
  `total_count` int DEFAULT NULL COMMENT '总数量',
  `remaining_count` int DEFAULT NULL COMMENT '剩余数量',
  `take_limit_count` int DEFAULT NULL COMMENT '每人限领数量',
  `valid_type` tinyint NOT NULL COMMENT '有效类型',
  `valid_start_time` datetime DEFAULT NULL COMMENT '有效开始时间',
  `valid_end_time` datetime DEFAULT NULL COMMENT '有效结束时间',
  `product_scope` tinyint NOT NULL COMMENT '商品范围',
  `product_ids` text COMMENT '商品编号列表',
  `category_ids` text COMMENT '商品分类编号列表',
  `description` varchar(500) DEFAULT NULL COMMENT '使用说明',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租企编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='优惠劵模板';

-- ----------------------------
-- Table structure for promotion_activity
-- ----------------------------
DROP TABLE IF EXISTS `promotion_activity`;
CREATE TABLE `promotion_activity` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '活动编号',
  `name` varchar(64) NOT NULL COMMENT '活动名称',
  `status` tinyint NOT NULL COMMENT '状态',
  `start_time` datetime NOT NULL COMMENT '开始时间',
  `end_time` datetime NOT NULL COMMENT '结束时间',
  `remark` varchar(256) DEFAULT NULL COMMENT '活动备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='促销活动';

-- ----------------------------
-- Table structure for promotion_seckill_activity
-- ----------------------------
DROP TABLE IF EXISTS `promotion_seckill_activity`;
CREATE TABLE `promotion_seckill_activity` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '秒杀活动编号',
  `name` varchar(64) NOT NULL COMMENT '秒杀活动名称',
  `status` tinyint NOT NULL COMMENT '状态',
  `start_time` datetime NOT NULL COMMENT '开始时间',
  `end_time` datetime NOT NULL COMMENT '结束时间',
  `total_count` int NOT NULL COMMENT '总库存',
  `sold_count` int NOT NULL DEFAULT 0 COMMENT '已售数量',
  `remark` varchar(256) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='秒杀活动';

-- ----------------------------
-- Table structure for promotion_banner
-- ----------------------------
DROP TABLE IF EXISTS `promotion_banner`;
CREATE TABLE `promotion_banner` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `title` varchar(64) NOT NULL COMMENT '标题',
  `pic_url` varchar(256) NOT NULL COMMENT '图片地址',
  `url` varchar(256) DEFAULT NULL COMMENT '跳转链接',
  `sort` int DEFAULT NULL COMMENT '排序',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `position` tinyint DEFAULT NULL COMMENT '位置',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='广告 Banner';

-- ----------------------------
-- Table structure for promotion_article
-- ----------------------------
DROP TABLE IF EXISTS `promotion_article`;
CREATE TABLE `promotion_article` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '文章编号',
  `title` varchar(64) NOT NULL COMMENT '文章标题',
  `category_id` bigint DEFAULT NULL COMMENT '文章分类',
  `pic_url` varchar(256) DEFAULT NULL COMMENT '封面图',
  `content` text COMMENT '内容',
  `sort` int DEFAULT NULL COMMENT '排序',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `read_count` int DEFAULT NULL COMMENT '阅读量',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  KEY `idx_category_id` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章';

-- ----------------------------
-- Table structure for promotion_article_category
-- ----------------------------
DROP TABLE IF EXISTS `promotion_article_category`;
CREATE TABLE `promotion_article_category` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类编号',
  `name` varchar(32) NOT NULL COMMENT '分类名称',
  `sort` int DEFAULT NULL COMMENT '排序',
  `status` tinyint DEFAULT NULL COMMENT '状态',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章分类';

-- ========================================
-- 统计模块表
-- ========================================

-- ----------------------------
-- Table structure for statistics_product
-- ----------------------------
DROP TABLE IF EXISTS `statistics_product`;
CREATE TABLE `statistics_product` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `date` date NOT NULL COMMENT '统计日期',
  `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号',
  `browse_count` int DEFAULT 0 COMMENT '浏览量',
  `favorite_count` int DEFAULT 0 COMMENT '收藏量',
  `cart_count` int DEFAULT 0 COMMENT '加购量',
  `order_count` int DEFAULT 0 COMMENT '订单量',
  `order_user_count` int DEFAULT 0 COMMENT '下单用户数',
  `pay_count` int DEFAULT 0 COMMENT '支付量',
  `pay_user_count` int DEFAULT 0 COMMENT '支付用户数',
  `pay_price` decimal(15,2) DEFAULT 0 COMMENT '支付金额',
  `refund_count` int DEFAULT 0 COMMENT '退款量',
  `refund_price` decimal(15,2) DEFAULT 0 COMMENT '退款金额',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_date_spu` (`date`, `spu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品统计';

-- ----------------------------
-- Table structure for statistics_trade
-- ----------------------------
DROP TABLE IF EXISTS `statistics_trade`;
CREATE TABLE `statistics_trade` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `date` date NOT NULL COMMENT '统计日期',
  `order_count` int DEFAULT 0 COMMENT '订单量',
  `order_user_count` int DEFAULT 0 COMMENT '下单用户数',
  `pay_count` int DEFAULT 0 COMMENT '支付量',
  `pay_user_count` int DEFAULT 0 COMMENT '支付用户数',
  `pay_price` decimal(15,2) DEFAULT 0 COMMENT '支付金额',
  `refund_count` int DEFAULT 0 COMMENT '退款量',
  `refund_price` decimal(15,2) DEFAULT 0 COMMENT '退款金额',
  `after_sale_count` int DEFAULT 0 COMMENT '售后量',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_date` (`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易统计';

SET FOREIGN_KEY_CHECKS = 1;
