Files
zt-closet-backend/pkg/migration/000001_init.up.sql
T
2026-09-15 23:04:13 +08:00

626 lines
44 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- zt-closet 数据库全量初始化脚本(单一迁移版本)。
--
-- 维护约定:
-- 1. 项目当前无线上数据,所有结构变更统一合并进本文件,不再新增增量迁移(ALTER / UPDATE)。
-- 2. 新增字段或索引时,直接修改下方对应表的 CREATE TABLE 语句,并同步 000001_init.down.sql。
-- 3. 执行前需保证目标库为空(脚本只建表,不建库);迁移由 cmd/migrate 手动触发,服务启动不会自动迁移:
-- go run ./cmd/migrate up
-- 4. 迁移 DSN 已开启 multiStatements,本文件的多条语句可一次性执行。
-- 5. 字段与索引以 internal/mysqlmodel/ 的 GORM 模型为准,ER 图见 design/zt-closet-er.drawio。
-- ============================================================
-- 一、用户
-- ============================================================
CREATE TABLE `users` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`user_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户UUID',
`wx_open_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '微信openid',
`username` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户名',
`avatar` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '头像存储位置',
`sex` TINYINT NOT NULL DEFAULT 0 COMMENT '性别 1=男 2=女',
`birth_day` BIGINT NOT NULL DEFAULT 0 COMMENT '生日',
`phone` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '手机号',
`is_new_user` TINYINT NOT NULL DEFAULT 0 COMMENT '是否新用户 0=否 1=是',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 1=正常 2=临时禁用 3=永久禁用 4=已注销',
`ban_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '封禁原因',
`ban_start` BIGINT NOT NULL DEFAULT 0 COMMENT '封禁开始时间',
`ban_expire` BIGINT NOT NULL DEFAULT 0 COMMENT '封禁到期时间',
`vip_type` TINYINT NOT NULL DEFAULT 0 COMMENT 'VIP类型 1=非会员 2=月度会员 3=年度会员 4=体验会员',
`vip_start` BIGINT NOT NULL DEFAULT 0 COMMENT 'VIP开始时间',
`vip_expire` BIGINT NOT NULL DEFAULT 0 COMMENT 'VIP到期时间',
`last_login_time` BIGINT NOT NULL DEFAULT 0 COMMENT '最近登录时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_wx_open_id` (`wx_open_id`),
KEY `idx_users_user_uuid` (`user_uuid`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '用户表';
-- ============================================================
-- 二、衣物
-- ============================================================
CREATE TABLE `clothes` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`clothes_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '衣物UUID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '所属用户ID',
`category_main` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '衣物大类 上装/下装/连衣裙/外套/鞋/配饰',
`category_sub` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '衣物小类 T恤/牛仔裤/运动鞋等',
`style` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '风格',
`color` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '主颜色',
`color_sub` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '副颜色',
`thickness` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '厚度',
`version` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '版型 宽松/修身/阔腿/紧身/常规合身',
`material` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '材质 牛仔布/针织/皮质/纯棉/羊毛等',
`pattern` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '花纹',
`sleeve_type` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '袖型',
`clothes_type` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '衣长类型 短款/常规/中长/长款',
`neckline_type` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '领型',
`formality` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '正式程度 1-5',
`occasions` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '适用场合',
`visual_impact` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '视觉冲击力 1-5',
`name` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '名称',
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
`processed_image` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '处理后图片存储位置 相对路径',
`original_image_path` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '待处理原图本地路径(任务恢复用)',
`image_size` BIGINT NOT NULL DEFAULT 0 COMMENT '图片大小 单位:kb',
`image_process_status` TINYINT NOT NULL DEFAULT 0 COMMENT '处理状态 1=抠图中 2=分类中 3=排队中 4=成功 5=失败',
`fail_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '失败原因',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_clothes_uuid` (`clothes_uuid`),
KEY `idx_clothes_user_category` (`user_id`, `category_main`),
KEY `idx_clothes_user_status` (`user_id`, `image_process_status`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '衣物表';
-- ============================================================
-- 三、穿搭
-- ============================================================
CREATE TABLE `outfits` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`outfit_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '穿搭UUID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '所属用户ID',
`outfit_name` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '穿搭名称',
`outfit_desc` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '穿搭描述',
`scene` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '适合场景',
`source` TINYINT NOT NULL DEFAULT 0 COMMENT '来源 1=用户创建 2=AI推荐',
`is_public` TINYINT NOT NULL DEFAULT 0 COMMENT '是否公开 1=不公开 2=公开',
`audit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '审核状态 1=待审核 2=审核通过 3=审核不通过',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 1=正常 2=封禁 3=待用户保存',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_outfits_uuid` (`outfit_uuid`),
KEY `idx_outfits_user_status` (`user_id`, `status`),
KEY `idx_outfits_public` (`is_public`, `audit_status`),
-- 供「未保存 AI 穿搭」清理任务使用:
-- WHERE deleted_at = 0 AND source = 2 AND status = 3 AND created_at < ?
KEY `idx_outfits_source_status_created` (`source`, `status`, `created_at`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '穿搭表';
CREATE TABLE `outfit_items` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`outfit_id` BIGINT NOT NULL DEFAULT 0 COMMENT '穿搭ID',
`clothes_id` BIGINT NOT NULL DEFAULT 0 COMMENT '衣物ID',
PRIMARY KEY (`id`),
KEY `idx_outfit_items_outfit` (`outfit_id`),
KEY `idx_outfit_items_clothes` (`clothes_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '穿搭明细表';
-- ============================================================
-- 四、衣柜分享
-- ============================================================
CREATE TABLE `closet_shares` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`share_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '分享UUID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '所属用户ID',
`share_type` TINYINT NOT NULL DEFAULT 0 COMMENT '分享类型 1=部分衣物分享 2=全量快照分享',
`expire_time` BIGINT NOT NULL DEFAULT 0 COMMENT '过期时间',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '分享状态 1=正常 2=用户取消 3=已过期 4=管理员封禁',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_closet_shares_uuid` (`share_uuid`),
KEY `idx_closet_shares_user_status` (`user_id`, `status`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '衣柜分享表';
CREATE TABLE `closet_share_items` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`share_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '分享UUID',
`clothes_id` BIGINT NOT NULL DEFAULT 0 COMMENT '衣物ID',
PRIMARY KEY (`id`),
KEY `idx_closet_share_items_share` (`share_uuid`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '衣柜分享明细表';
-- 衣柜分享接收人关联表:记录"谁收到了谁的分享"(访问即视为收到,一对多、幂等)。
CREATE TABLE `closet_share_receivers` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`share_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '分享UUID',
`receiver_user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '接收人用户ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_closet_share_receiver` (`share_uuid`, `receiver_user_id`),
KEY `idx_closet_share_receivers_user` (`receiver_user_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '衣柜分享接收人关联表';
-- ============================================================
-- 五、穿搭分享
-- ============================================================
CREATE TABLE `outfit_shares` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`share_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '分享UUID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '所属用户ID',
`outfit_id` BIGINT NOT NULL DEFAULT 0 COMMENT '穿搭ID',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '分享状态 1=正常 2=用户取消',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_outfit_shares_uuid` (`share_uuid`),
KEY `idx_outfit_shares_user_status` (`user_id`, `status`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '穿搭分享表';
CREATE TABLE `outfit_share_receivers` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`share_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '分享UUID',
`receiver_user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '接收人用户ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_outfit_share_receiver` (`share_uuid`, `receiver_user_id`),
KEY `idx_outfit_share_receivers_user` (`receiver_user_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '穿搭分享接收人关联表';
-- ============================================================
-- 六、商品与订单
-- ============================================================
CREATE TABLE `goods` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`goods_code` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '商品编码',
`goods_name` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '商品名称',
`goods_type` TINYINT NOT NULL DEFAULT 0 COMMENT '商品类型 1=会员包 2=上传包 3=AI推荐包 4=衣柜分享包 5=搭配分享包',
`price` BIGINT NOT NULL DEFAULT 0 COMMENT '商品原价(分)',
`discount_price` BIGINT NOT NULL DEFAULT 0 COMMENT '商品售价(分)',
`member_days` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送会员天数',
`cos_quota` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送总上传额度',
`ai_recommend_quota` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送AI推荐额度',
`closet_share_quota` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送衣柜分享额度',
`outfit_share_quota` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送搭配分享额度',
`valid_days` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送额度有效期天数(加量包用;会员包为 0 表示跟随 VIP)',
`description` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '商品描述',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 1=上架 2=下架',
`product_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '虚拟支付道具ID(空表示未发布)',
`product_status` TINYINT NOT NULL DEFAULT 0 COMMENT '虚拟支付道具发布状态 0=未发布 1=发布中 2=已发布 3=发布失败',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_goods_code` (`goods_code`),
KEY `idx_goods_type_status` (`goods_type`, `status`),
KEY `idx_goods_product_status` (`product_status`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '商品表';
CREATE TABLE `orders` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`order_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '商户订单号',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '下单用户ID',
`goods_id` BIGINT NOT NULL DEFAULT 0 COMMENT '关联商品ID',
`goods_name` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '商品名称快照',
`unit_price` BIGINT NOT NULL DEFAULT 0 COMMENT '商品单价(分)',
`total_amount` BIGINT NOT NULL DEFAULT 0 COMMENT '订单总金额(分)',
`pay_amount` BIGINT NOT NULL DEFAULT 0 COMMENT '实付金额(分)',
`pay_channel` TINYINT NOT NULL DEFAULT 0 COMMENT '支付渠道 1=微信支付 2=微信虚拟支付',
`order_status` TINYINT NOT NULL DEFAULT 0 COMMENT '订单状态 1=待支付 2=已支付 3=已取消 4=已过期 5=已退款',
`transaction_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '微信支付流水号',
`member_days` BIGINT NOT NULL DEFAULT 0 COMMENT '购买的会员天数(快照)',
`goods_type` TINYINT NOT NULL DEFAULT 0 COMMENT '商品类型快照',
`quota_valid_days` BIGINT NOT NULL DEFAULT 0 COMMENT '额度有效期天数快照',
`cos_quota` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送上传额度(快照)',
`ai_recommend_quota` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送AI推荐额度(快照)',
`closet_share_quota` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送衣柜分享额度(快照)',
`outfit_share_quota` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送搭配分享额度(快照)',
`expire_time` BIGINT NOT NULL DEFAULT 0 COMMENT '支付过期时间',
`pay_time` BIGINT NOT NULL DEFAULT 0 COMMENT '支付完成时间',
`refund_time` BIGINT NOT NULL DEFAULT 0 COMMENT '退款时间',
`refund_amount` BIGINT NOT NULL DEFAULT 0 COMMENT '退款金额(分)',
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '订单备注',
`callback_raw` TEXT COMMENT '支付回调原始报文',
`xpay_product_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '虚拟支付道具ID(快照,pay_channel=2 时使用)',
`xpay_platform` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '虚拟支付平台 android/ios/harmony/windows',
`xpay_env` TINYINT NOT NULL DEFAULT 0 COMMENT '虚拟支付环境 0=现网 1=沙箱',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`),
KEY `idx_orders_user_status` (`user_id`, `order_status`),
KEY `idx_orders_expire` (`order_status`, `expire_time`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '订单表';
-- ============================================================
-- 七、额度
-- ============================================================
CREATE TABLE `user_quotas` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID',
`quota_type` TINYINT NOT NULL DEFAULT 0 COMMENT '额度类型 1=cos上传 2=AI推荐 3=社区分享 4=衣柜分享',
`total` BIGINT NOT NULL DEFAULT 0 COMMENT '总配额',
`used` BIGINT NOT NULL DEFAULT 0 COMMENT '已用量',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_quota` (`user_id`, `quota_type`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '用户额度表';
CREATE TABLE `user_daily_usages` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID',
`stat_date` BIGINT NOT NULL DEFAULT 0 COMMENT '统计日期(YYYYMMDD)',
`ai_recommend_count` BIGINT NOT NULL DEFAULT 0 COMMENT '当日AI推荐次数',
`outfit_share_count` BIGINT NOT NULL DEFAULT 0 COMMENT '当日社区分享次数',
`closet_share_count` BIGINT NOT NULL DEFAULT 0 COMMENT '当日衣柜分享次数',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_daily_usage_user_date` (`user_id`, `stat_date`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '用户每日用量统计表';
-- 额度凭证表:承载有有效期的赠送额度(会员包/加量包/广告激励)。
CREATE TABLE `quota_grants` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID',
`quota_type` TINYINT NOT NULL DEFAULT 0 COMMENT '额度类型 1=cos上传 2=AI推荐 3=社区分享 4=衣柜分享',
`amount` BIGINT NOT NULL DEFAULT 0 COMMENT '赠送总量',
`used` BIGINT NOT NULL DEFAULT 0 COMMENT '已用量(Cos 永久额度扣减;AI/社区/衣柜 每日额度恒为 0)',
`source` TINYINT NOT NULL DEFAULT 0 COMMENT '来源 1=会员包 2=加量包 3=广告激励',
`expire_time` BIGINT NOT NULL DEFAULT 0 COMMENT '到期时间(秒,0 表示跟随 VIP 有效期)',
`ref_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '关联ID(订单号/广告记录ID)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_grant_ref_type` (`ref_id`, `quota_type`),
KEY `idx_grant_user_type_expire` (`user_id`, `quota_type`, `expire_time`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '额度凭证表(有有效期赠送额度)';
CREATE TABLE `quota_flow_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`quota_flow_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '配额流水UUID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID',
`change_target` TINYINT NOT NULL DEFAULT 0 COMMENT '调整额度类型 1=配额调整 2=使用',
`change_type` TINYINT NOT NULL DEFAULT 0 COMMENT '变更类型 1=购买获赠 2=活动赠送 3=上传消耗 4=删除回退 5=人工调整 6=退款回收',
`change_num` BIGINT NOT NULL DEFAULT 0 COMMENT '变更数量(正数增加,负数减少)',
`old_value` BIGINT NOT NULL DEFAULT 0 COMMENT '变更前数值',
`new_value` BIGINT NOT NULL DEFAULT 0 COMMENT '变更后数值',
`order_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '关联订单号(购买/退款类);其余场景写流水UUID保证幂等',
`quota_type` TINYINT NOT NULL DEFAULT 0 COMMENT '关联业务类型 1=cos 2=AI 3=社区分享 4=衣柜分享',
`related_id` BIGINT NOT NULL DEFAULT 0 COMMENT '关联业务ID',
`reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '变更原因/备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_quota_flow_idem` (`order_no`, `quota_type`, `change_type`),
KEY `idx_quota_flow_user` (`user_id`),
KEY `idx_quota_flow_uuid` (`quota_flow_uuid`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '配额流水日志表';
-- ============================================================
-- 八、权益发放与回收(补偿任务)
-- ============================================================
CREATE TABLE `benefit_grant_tasks` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID',
`order_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '商户订单号',
`goods_id` BIGINT NOT NULL DEFAULT 0 COMMENT '关联商品ID',
`benefit_type` TINYINT NOT NULL DEFAULT 0 COMMENT '权益类型 1=vip 2=cos 3=ai 4=closet_share 5=outfit_share',
`amount` BIGINT NOT NULL DEFAULT 0 COMMENT '发放数量',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 0=待发放 1=已发放 2=发放失败',
`retry_count` INT NOT NULL DEFAULT 0 COMMENT '已重试次数',
`max_retry` INT NOT NULL DEFAULT 0 COMMENT '最大重试次数',
`last_error` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '最近一次失败原因',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_benefit_task_idem` (`order_no`, `benefit_type`),
KEY `idx_benefit_task_status` (`status`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '权益发放补偿任务表';
CREATE TABLE `benefit_revoke_tasks` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`order_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '商户订单号',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 0=待回收 1=已回收 2=回收失败',
`retry_count` INT NOT NULL DEFAULT 0 COMMENT '已重试次数',
`max_retry` INT NOT NULL DEFAULT 10 COMMENT '最大重试次数',
`last_error` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '最近一次失败原因',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_benefit_revoke_order` (`order_no`),
KEY `idx_benefit_revoke_status` (`status`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '退款权益回收任务';
-- ============================================================
-- 九、资金与调用流水
-- ============================================================
CREATE TABLE `refund_flow_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`order_id` BIGINT NOT NULL DEFAULT 0 COMMENT '关联订单ID',
`order_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '商户订单号(冗余,方便查询)',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID(冗余,方便按用户查)',
`refund_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '商户退款单号',
`wechat_refund_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '微信退款单号',
`refund_amount` BIGINT NOT NULL DEFAULT 0 COMMENT '本次退款金额(分)',
`refund_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '退款原因',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '退款状态 0=待处理 1=退款中 2=退款成功 3=退款失败',
`apply_time` BIGINT NOT NULL DEFAULT 0 COMMENT '申请时间',
`success_time` BIGINT NOT NULL DEFAULT 0 COMMENT '退款成功时间',
`fail_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '失败原因',
`callback_raw` TEXT COMMENT '微信退款回调原始报文',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_refund_flow_no` (`refund_no`),
KEY `idx_refund_flow_order` (`order_id`),
KEY `idx_refund_flow_user` (`user_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '退款流水日志表';
CREATE TABLE `vip_flow_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID',
`change_type` TINYINT NOT NULL DEFAULT 0 COMMENT '变更类型 1=开通 2=续费 3=活动赠送 4=到期失效 5=人工调整 6=退款回收',
`old_vip_type` TINYINT NOT NULL DEFAULT 0 COMMENT '变更前VIP类型 1=非会员 2=月度会员 3=年度会员 4=体验会员',
`new_vip_type` TINYINT NOT NULL DEFAULT 0 COMMENT '变更后VIP类型 1=非会员 2=月度会员 3=年度会员 4=体验会员',
`old_vip_expire` BIGINT NOT NULL DEFAULT 0 COMMENT '变更前到期时间(秒)',
`new_vip_expire` BIGINT NOT NULL DEFAULT 0 COMMENT '变更后到期时间(秒)',
`order_no` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '关联订单号(购买类变更)',
`source` TINYINT NOT NULL DEFAULT 0 COMMENT '变更来源 1=个人支付 2=活动赠送 3=系统 4=人工调整',
`reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '变更原因/备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_vip_flow_idem` (`order_no`, `change_type`),
KEY `idx_vip_flow_user` (`user_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '会员变更流水表';
CREATE TABLE `ai_recommend_flow_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`request_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '请求唯一ID',
`server_request_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '服务请求唯一ID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户ID',
`model_version` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '大模型版本',
`prompt_tokens` BIGINT NOT NULL DEFAULT 0 COMMENT '输入token数',
`completion_tokens` BIGINT NOT NULL DEFAULT 0 COMMENT '输出token数',
`result_content` TEXT COMMENT '推荐结果结构化数据',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 1=成功 2=失败',
`fail_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '失败原因',
`request_time` BIGINT NOT NULL DEFAULT 0 COMMENT '请求发起时间',
`response_time` BIGINT NOT NULL DEFAULT 0 COMMENT '响应返回时间',
PRIMARY KEY (`id`),
KEY `idx_ai_recommend_request` (`request_id`),
KEY `idx_ai_recommend_user` (`user_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = 'AI穿搭推荐流水表';
CREATE TABLE `ai_horoscope_flow_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`request_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '请求唯一ID(幂等依据)',
`zodiac` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '星座',
`server_request_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '服务请求唯一ID',
`stat_date` BIGINT NOT NULL DEFAULT 0 COMMENT '运势日期(YYYYMMDD)',
`model_version` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '大模型版本',
`prompt_tokens` BIGINT NOT NULL DEFAULT 0 COMMENT '输入token数',
`completion_tokens` BIGINT NOT NULL DEFAULT 0 COMMENT '输出token数',
`result_content` TEXT COMMENT '生成结果结构化数据',
`horoscope_id` BIGINT NOT NULL DEFAULT 0 COMMENT '生成的运势记录ID',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 1=成功 2=失败',
`fail_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '失败原因',
`request_time` BIGINT NOT NULL DEFAULT 0 COMMENT '请求发起时间',
`response_time` BIGINT NOT NULL DEFAULT 0 COMMENT '响应返回时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ai_horoscope_request` (`request_id`),
KEY `idx_ai_horoscope_date_zodiac` (`stat_date`, `zodiac`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = 'AI运势生成流水表';
-- ============================================================
-- 十、互动与通知
-- ============================================================
CREATE TABLE `collects` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`collect_type` TINYINT NOT NULL DEFAULT 0 COMMENT '业务类型 1=社区穿搭',
`target_id` BIGINT NOT NULL DEFAULT 0 COMMENT '业务目标ID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '收藏用户ID',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 1=已收藏 0=已取消',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_collect_user_target` (`collect_type`, `target_id`, `user_id`),
KEY `idx_collects_user` (`user_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '收藏表';
CREATE TABLE `likes` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`like_type` TINYINT NOT NULL DEFAULT 0 COMMENT '业务类型 1=社区穿搭',
`target_id` BIGINT NOT NULL DEFAULT 0 COMMENT '业务目标ID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '点赞用户ID',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态 1=已点赞 0=已取消',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_like_user_target` (`like_type`, `target_id`, `user_id`),
KEY `idx_likes_user` (`user_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '点赞表';
CREATE TABLE `user_notifications` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`notification_uuid` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '消息UUID',
`user_id` BIGINT NOT NULL DEFAULT 0 COMMENT '接收用户ID',
`msg_type` TINYINT NOT NULL DEFAULT 0 COMMENT '消息类型 1=点赞通知 2=订单通知 3=系统通知',
`sender_id` BIGINT NOT NULL DEFAULT 0 COMMENT '发送者ID 系统消息为0',
`title` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '消息标题',
`content` TEXT COMMENT '消息内容',
`is_read` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已读 1=未读 2=已读',
`read_time` BIGINT NOT NULL DEFAULT 0 COMMENT '阅读时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_notification_uuid` (`notification_uuid`),
KEY `idx_notifications_user_read` (`user_id`, `is_read`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '用户通知表';
-- ============================================================
-- 十一、运势与审核
-- ============================================================
CREATE TABLE `horoscopes` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`stat_date` BIGINT NOT NULL DEFAULT 0 COMMENT '运势日期(YYYYMMDD)',
`zodiac` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '星座',
`overall_score` TINYINT NOT NULL DEFAULT 0 COMMENT '综合运势 1-5分',
`love_score` TINYINT NOT NULL DEFAULT 0 COMMENT '爱情运势 1-5分',
`career_score` TINYINT NOT NULL DEFAULT 0 COMMENT '工作运势 1-5分',
`wealth_score` TINYINT NOT NULL DEFAULT 0 COMMENT '财富运势 1-5分',
`daily_text` TEXT COMMENT '今日运势详情',
`lucky_color` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '幸运色',
`lucky_number` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '幸运数字',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_horoscope_date_zodiac` (`stat_date`, `zodiac`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '星座运势表';
CREATE TABLE `closet_audit_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`target_id` BIGINT NOT NULL DEFAULT 0 COMMENT '衣柜分享ID',
`audit_result` TINYINT NOT NULL DEFAULT 0 COMMENT '审核结果 1=通过 2=驳回',
`reject_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '审核原因',
`audit_time` BIGINT NOT NULL DEFAULT 0 COMMENT '审核时间',
PRIMARY KEY (`id`),
KEY `idx_closet_audit_target` (`target_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '衣柜分享审核日志表';
CREATE TABLE `outfit_audit_logs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`created_at` BIGINT NOT NULL DEFAULT 0 COMMENT '创建时间',
`updated_at` BIGINT NOT NULL DEFAULT 0 COMMENT '更新时间',
`deleted_at` BIGINT NOT NULL DEFAULT 0 COMMENT '删除时间(0 表示未删除)',
`created_by` BIGINT NOT NULL DEFAULT 0 COMMENT '创建人',
`updated_by` BIGINT NOT NULL DEFAULT 0 COMMENT '更新人',
`deleted_by` BIGINT NOT NULL DEFAULT 0 COMMENT '删除人',
`target_id` BIGINT NOT NULL DEFAULT 0 COMMENT '穿搭ID',
`audit_result` TINYINT NOT NULL DEFAULT 0 COMMENT '审核结果 1=通过 2=驳回',
`reject_reason` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '审核原因',
`audit_time` BIGINT NOT NULL DEFAULT 0 COMMENT '审核时间',
PRIMARY KEY (`id`),
KEY `idx_outfit_audit_target` (`target_id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '穿搭审核日志表';