-- 创建用户饮食记录表
-- 该表用于存储用户通过AI视觉识别或手动输入的饮食记录
-- 包含详细的营养成分信息，支持营养分析和健康建议功能

CREATE TABLE IF NOT EXISTS `t_user_diet_history` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_id` varchar(255) NOT NULL COMMENT '用户ID',
  `meal_type` enum('breakfast','lunch','dinner','snack','other') NOT NULL DEFAULT 'other' COMMENT '餐次类型',
  `food_name` varchar(100) NOT NULL COMMENT '食物名称',
  `food_description` varchar(500) DEFAULT NULL COMMENT '食物描述（详细信息）',
  `weight_grams` float DEFAULT NULL COMMENT '食物重量（克）',
  `portion_description` varchar(50) DEFAULT NULL COMMENT '份量描述（如：1碗、2片、100g等）',
  `estimated_calories` float DEFAULT NULL COMMENT '估算总热量（卡路里）',
  `protein_grams` float DEFAULT NULL COMMENT '蛋白质含量（克）',
  `carbohydrate_grams` float DEFAULT NULL COMMENT '碳水化合物含量（克）',
  `fat_grams` float DEFAULT NULL COMMENT '脂肪含量（克）',
  `fiber_grams` float DEFAULT NULL COMMENT '膳食纤维含量（克）',
  `sugar_grams` float DEFAULT NULL COMMENT '糖分含量（克）',
  `sodium_mg` float DEFAULT NULL COMMENT '钠含量（毫克）',
  `additional_nutrition` json DEFAULT NULL COMMENT '其他营养信息（维生素、矿物质等）',
  `source` enum('manual','vision','other') NOT NULL DEFAULT 'manual' COMMENT '记录来源',
  `meal_time` datetime DEFAULT NULL COMMENT '用餐时间',
  `image_url` varchar(500) DEFAULT NULL COMMENT '食物图片URL',
  `ai_analysis_result` json DEFAULT NULL COMMENT 'AI识别原始结果',
  `notes` text DEFAULT NULL COMMENT '用户备注',
  `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否已删除',
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_meal_type` (`meal_type`),
  KEY `idx_created_at` (`created_at`),
  KEY `idx_user_created` (`user_id`, `created_at`),
  KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户饮食记录表';

-- 创建索引以优化查询性能
CREATE INDEX `idx_user_meal_time` ON `t_user_diet_history` (`user_id`, `meal_time`);
CREATE INDEX `idx_source` ON `t_user_diet_history` (`source`);

-- 示例数据（可选）
-- INSERT INTO `t_user_diet_history` (`user_id`, `meal_type`, `food_name`, `food_description`, `portion_description`, `estimated_calories`, `protein_grams`, `carbohydrate_grams`, `fat_grams`, `fiber_grams`, `source`, `meal_time`, `notes`) VALUES
-- ('test_user_001', 'breakfast', '燕麦粥', '燕麦片加牛奶和香蕉', '1碗', 320, 12.5, 45.2, 8.3, 6.8, 'manual', '2024-01-15 08:00:00', '早餐很有营养'),
-- ('test_user_001', 'lunch', '鸡胸肉沙拉', '烤鸡胸肉配蔬菜沙拉', '1份', 280, 35.0, 15.5, 8.0, 5.2, 'vision', '2024-01-15 12:30:00', 'AI识别添加'),
-- ('test_user_001', 'dinner', '三文鱼配糙米', '煎三文鱼配蒸糙米和西兰花', '1份', 450, 28.5, 52.0, 18.2, 4.5, 'manual', '2024-01-15 19:00:00', '晚餐丰富');
