-- =============================================================================
-- 商品评价 biz_goods_review
-- 用途：订单完成后会员评价；C 端详情/全部评价页只读展示（GD14）
-- 关联文档：doc/消费者APP/商品详情内页/商品详情内页功能需求.md §10
--           doc/消费者APP/商品详情内页/商品详情内页技术方案.md §2.4
-- 说明：评价写接口、商家回复维护在「评价管理」模块（待建）；本表为权威存储
-- =============================================================================

-- -----------------------------------------------------------------------------
-- 商品评价 biz_goods_review
-- 说明：一行一评（uk_order_item_review）；C端列表 filter show_flag=1 AND del_flag=0
--       按 create_time DESC 排序；会员昵称/头像/商品主图为提交时快照
-- -----------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `biz_goods_review` (
  `review_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '评价ID，主键',
  `goods_id` bigint(20) NOT NULL COMMENT '被评商品ID（biz_goods.goods_id）；C端按商品分页列表的主键',
  `order_id` bigint(20) NOT NULL COMMENT '来源订单ID（biz_order.order_id）',
  `order_item_id` bigint(20) NOT NULL COMMENT '来源订单明细行ID（biz_order_item.item_id）；一行一评',
  `member_id` bigint(20) NOT NULL COMMENT '评价人会员ID（biz_member.member_id = sys_user.user_id）',
  `shop_id` bigint(20) NOT NULL COMMENT '所属店铺ID（biz_shop.shop_id）；冗余字段，供商家端评价管理按店过滤',
  `member_nick_name` varchar(64) DEFAULT NULL COMMENT '评价提交时会员昵称快照；C端展示，可按产品策略脱敏',
  `member_avatar` varchar(512) DEFAULT NULL COMMENT '评价提交时会员头像URL快照；C端展示用户头像',
  `content` varchar(1000) NOT NULL COMMENT '评价正文；必填；C端详情/全部评价页展示',
  `score` tinyint(4) DEFAULT NULL COMMENT '评分星级：1~5；可为空（若产品不要求星级展示）',
  `review_pics` varchar(2000) DEFAULT NULL COMMENT '评价晒图URL列表，英文逗号分隔；建议最多9张，应用层校验',
  `goods_main_pic` varchar(512) DEFAULT NULL COMMENT '评价关联商品主图URL快照（提交时写入）；对应需求「评价区商品图片」，不随商品后续改图变化',
  `goods_spec` varchar(64) DEFAULT NULL COMMENT '评价时商品规格文案快照；首期单规格可写「默认」；多SKU后写当时选中规格',
  `reply_content` varchar(500) DEFAULT NULL COMMENT '商家回复正文；null 表示未回复；C端有值时展示在评价下方',
  `reply_by` varchar(64) DEFAULT NULL COMMENT '商家回复操作人账号（商家后台登录用户）',
  `reply_time` datetime DEFAULT NULL COMMENT '商家回复时间；reply_content 非空时应有值',
  `show_flag` char(1) NOT NULL DEFAULT '1' COMMENT 'C端可见标志：1 显示 0 隐藏（平台/商家屏蔽）；列表 SQL 须 filter show_flag=1',
  `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志：0 正常存在 2 逻辑删除；C端仅读 del_flag=0',
  `create_time` datetime NOT NULL COMMENT '评价提交时间；C端列表按此字段倒序（最新优先）',
  `update_time` datetime DEFAULT NULL COMMENT '最后更新时间；商家回复、屏蔽/取消屏蔽时更新',
  PRIMARY KEY (`review_id`),
  UNIQUE KEY `uk_order_item_review` (`order_item_id`),
  KEY `idx_order_id` (`order_id`),
  KEY `idx_goods_list` (`goods_id`,`show_flag`,`del_flag`,`create_time`),
  KEY `idx_shop_list` (`shop_id`,`show_flag`,`del_flag`,`create_time`),
  KEY `idx_member` (`member_id`,`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品评价（订单完成后会员提交；C端只读展示）';
