# 数据结构说明

## 数据文件位置

食品数据存储在：
```
技能目录/data/food_data.json
```

## 数据结构

### 根对象
```json
{
  "foods": [
    // 食品对象数组
  ],
  "created_at": "ISO格式的创建时间",
  "updated_at": "ISO格式的更新时间"
}
```

### 食品对象
```json
{
  "id": "唯一标识符 (UUID前8位)",
  "name": "食品名称",
  "production_date": "生产日期 (YYYY-MM-DD)",
  "expiry_days": "保质期天数 (整数)",
  "expiry_date": "过期日期 (YYYY-MM-DD, 自动计算)",
  "location": "存放位置",
  "quantity": "数量 (整数, 默认1)",
  "notes": "备注 (可选)",
  "created_at": "创建时间 (ISO格式)",
  "updated_at": "更新时间 (ISO格式)"
}
```

## 字段说明

### id
- **类型**: 字符串
- **说明**: 食品的唯一标识符
- **生成方式**: UUID前8位
- **示例**: "a1b2c3d4"

### name
- **类型**: 字符串
- **说明**: 食品名称
- **示例**: "牛奶", "鸡蛋", "面包"

### production_date
- **类型**: 字符串
- **格式**: YYYY-MM-DD
- **说明**: 生产日期
- **示例**: "2024-03-01"

### expiry_days
- **类型**: 整数
- **说明**: 保质期天数
- **示例**: 7 (表示7天保质期)

### expiry_date
- **类型**: 字符串
- **格式**: YYYY-MM-DD
- **说明**: 过期日期，自动计算：`生产日期 + 保质期天数`
- **示例**: "2024-03-08"

### location
- **类型**: 字符串
- **说明**: 存放位置
- **示例**: "冰箱", " pantry", "冷冻室"

### quantity
- **类型**: 整数
- **默认值**: 1
- **说明**: 食品数量
- **示例**: 2

### notes
- **类型**: 字符串
- **可选**: 是
- **说明**: 额外备注信息
- **示例**: "全脂牛奶", "有机鸡蛋"

### created_at
- **类型**: 字符串
- **格式**: ISO 8601
- **说明**: 记录创建时间
- **示例**: "2024-03-04T10:30:00"

### updated_at
- **类型**: 字符串
- **格式**: ISO 8601
- **说明**: 记录最后更新时间
- **示例**: "2024-03-04T10:30:00"

## 数据验证规则

1. **生产日期**: 必须为有效的YYYY-MM-DD格式
2. **保质期天数**: 必须为正整数
3. **过期日期**: 自动计算，必须晚于生产日期
4. **数量**: 必须为正整数
5. **所有必填字段**: name, production_date, expiry_days, location 必须提供

## 数据文件示例

```json
{
  "foods": [
    {
      "id": "a1b2c3d4",
      "name": "牛奶",
      "production_date": "2024-03-01",
      "expiry_days": 7,
      "expiry_date": "2024-03-08",
      "location": "冰箱",
      "quantity": 2,
      "notes": "全脂牛奶",
      "created_at": "2024-03-04T10:30:00",
      "updated_at": "2024-03-04T10:30:00"
    },
    {
      "id": "e5f6g7h8",
      "name": "鸡蛋",
      "production_date": "2024-02-28",
      "expiry_days": 30,
      "expiry_date": "2024-03-29",
      "location": "冰箱",
      "quantity": 12,
      "notes": "有机鸡蛋",
      "created_at": "2024-03-04T11:00:00",
      "updated_at": "2024-03-04T11:00:00"
    }
  ],
  "created_at": "2024-03-04T09:00:00",
  "updated_at": "2024-03-04T11:00:00"
}
```

## 数据备份建议

建议定期备份`food_data.json`文件，可以：
1. 复制到其他位置
2. 使用版本控制系统 (如git)
3. 同步到云存储