/*
 Navicat Premium Data Transfer

 Source Server         : 118.89.113.119-db
 Source Server Type    : MySQL
 Source Server Version : 50744 (5.7.44-log)
 Source Host           : 118.89.113.119:3306
 Source Schema         : shop_msh

 Target Server Type    : MySQL
 Target Server Version : 50744 (5.7.44-log)
 File Encoding         : 65001

 Date: 16/01/2026 11:04:57
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for eb_user_sign
-- ----------------------------
DROP TABLE IF EXISTS `eb_user_sign`;
CREATE TABLE `eb_user_sign` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) NOT NULL DEFAULT '0' COMMENT '用户uid',
  `title` varchar(255) NOT NULL DEFAULT '' COMMENT '签到说明',
  `number` int(11) NOT NULL DEFAULT '0' COMMENT '获得',
  `balance` int(11) NOT NULL DEFAULT '0' COMMENT '剩余',
  `type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '类型，1积分，2经验',
  `plan_id` bigint(20) DEFAULT NULL COMMENT '关联的营养计划ID',
  `meal_type` varchar(20) DEFAULT NULL COMMENT '餐次：breakfast(早餐)/lunch(午餐)/dinner(晚餐)/snack(加餐)，打卡时必填',
  `photos_json` text COMMENT '饮食照片URL数组（1-3张），JSON格式',
  `notes` text COMMENT '备注说明（支持语音转文字）',
  `voice_url` varchar(500) DEFAULT NULL COMMENT '语音备注原始文件URL',
  `ai_recognized_foods_json` text COMMENT 'AI识别的食物列表，JSON格式：[{name, weight, unit, confidence}]',
  `ai_recognition_status` varchar(20) DEFAULT 'pending' COMMENT 'AI识别状态：pending(待识别)/success(成功)/failed(失败)',
  `ai_recognition_time` timestamp NULL DEFAULT NULL COMMENT 'AI识别完成时间',
  `is_manually_corrected` tinyint(1) DEFAULT '0' COMMENT '用户是否手动修正了AI识别结果：0=否，1=是',
  `recommended_dishes_json` text COMMENT '推荐菜品（来自营养计划），JSON格式',
  `actual_dishes_json` text COMMENT '实际食用（由AI识别结果生成），JSON格式',
  `actual_protein` decimal(5,1) DEFAULT NULL COMMENT '实际蛋白质摄入(g)',
  `actual_energy` int(11) DEFAULT NULL COMMENT '实际能量摄入(kcal)',
  `actual_potassium` int(11) DEFAULT NULL COMMENT '实际钾摄入(mg)',
  `actual_phosphorus` int(11) DEFAULT NULL COMMENT '实际磷摄入(mg)',
  `actual_sodium` int(11) DEFAULT NULL COMMENT '实际钠摄入(mg)',
  `target_protein` decimal(5,1) DEFAULT NULL COMMENT '目标蛋白质摄入(g)',
  `target_energy` int(11) DEFAULT NULL COMMENT '目标能量摄入(kcal)',
  `compliance_rate` int(11) DEFAULT NULL COMMENT '整体达标率(%)',
  `report_id` varchar(50) DEFAULT NULL COMMENT '报告编号，如：R20251120081501',
  `report_pdf_url` varchar(500) DEFAULT NULL COMMENT 'PDF报告下载链接',
  `report_generated_at` timestamp NULL DEFAULT NULL COMMENT '报告生成时间',
  `report_download_count` int(11) DEFAULT '0' COMMENT '报告下载次数',
  `report_share_count` int(11) DEFAULT '0' COMMENT '报告分享次数',
  `ai_comments_json` text COMMENT 'AI生成的点评，JSON格式：{strengths:[], suggestions:[], next_meal_advice:""}',
  `nutrition_score` int(11) DEFAULT NULL COMMENT '营养评分（0-100）',
  `copied_from_sign_id` int(11) DEFAULT NULL COMMENT '复制自哪条签到记录ID（关联eb_user_sign.id）',
  `is_copied` tinyint(1) DEFAULT '0' COMMENT '是否为复制的打卡：0=否，1=是',
  `create_day` date NOT NULL COMMENT '签到日期',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
  `task_id` varchar(255) DEFAULT NULL COMMENT '任务id',
  `enableAIVideo` tinyint(4) DEFAULT NULL COMMENT 'AI生成视频开关标记：0=否，1=是',
  `enableAIAnalysis` tinyint(4) DEFAULT NULL COMMENT 'AI分析开关标记：0=否，1=是',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `uk_uid_date_meal` (`uid`,`create_day`,`meal_type`,`type`),
  KEY `uid` (`uid`,`type`) USING BTREE,
  KEY `idx_plan_id` (`plan_id`),
  KEY `idx_meal_type` (`meal_type`),
  KEY `idx_report_id` (`report_id`),
  KEY `idx_nutrition_score` (`nutrition_score`),
  KEY `idx_copied_from` (`copied_from_sign_id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='签到记录表';

SET FOREIGN_KEY_CHECKS = 1;
