# 机票价格判定策略 v2.2.2

## 核心思路

以用户**第一次搜索时的机票价格**为基准，持续监控价格变动，在合适时机提醒入手。

**v2.2.2 优化**：
- ✅ 输入验证（防止命令注入）
- ✅ 环境变量配置
- ✅ 完整安全文档

**v2.2.0 优化**：
- ✅ 创建成功确认
- ✅ 首次检查确认
- ✅ 每日汇总报告
- ✅ 多航班监控（前 3 个航班）
- ✅ 醒目提醒文案（🟢降价 / 🔴涨价）
- ✅ 帮助用户回忆（监控第 X 天）
- ✅ 可配置检查频率

---

## 基准价筛选策略

### 1. 多航班监控

首次搜索时，取**前 3 个符合条件的航班**作为监控对象：

| 航班 | 价格 | 航班号 | 出发时间 | 状态 |
|------|------|--------|----------|------|
| 航班 1 | ¥480 | KN5977 | 20:50 | 📍 基准价 |
| 航班 2 | ¥490 | MF8561 | 07:50 | 监控中 |
| 航班 3 | ¥510 | MU6873 | 08:15 | 监控中 |

**优势**：
- 任一航班降价超阈值都会提醒
- 避免遗漏好价格
- 给用户更多选择

### 2. 基准价确定

以**监控的航班中最低价**作为基准价：

```javascript
const basePrice = Math.min(...baseFlights.map(f => f.price));
```

---

## 价格波动判定

### 1. 波动幅度计算

```javascript
const diff = currentPrice - basePrice;
const percent = (diff / basePrice) * 100;

// 结果解读
diff < 0 && percent < -threshold  → 大幅下降（🟢 好时机）
diff > 0 && percent > threshold   → 大幅上涨（🔴 警示）
|percent| < threshold             → 正常波动（继续观望）
```

### 2. 默认阈值

| 类型 | 百分比阈值 | 金额阈值 | 触发条件 |
|------|------------|----------|----------|
| **下降提醒** | -10% | -¥200 | 满足任一即可 |
| **上涨提醒** | +15% | +¥300 | 满足任一即可 |

### 3. 用户自定义阈值

允许用户设置：
- 百分比阈值（如"波动 5% 就提醒我"）
- 固定金额阈值（如"便宜 100 块就通知我"）

---

## 智能提醒策略

### 1. 大幅下降（🟢 建议入手）

**触发条件**: 价格降幅 ≥ 阈值

**提醒文案**:
```
🟢 大降价！北京 → 上海

💰 ¥420（↓¥60，-12%）📉
📅 4 月 15 日 | ✈️ 直飞 | 🕐 07:50 出发
📊 基准价：¥480（监控第 3 天）
🏆 监控期间最低价！

✅ 强烈建议入手！
```

**关键元素**:
- 🟢 绿色标识 = 好时机
- 显示"监控第 X 天"帮助回忆
- 标注"历史最低"增加信心

### 2. 大幅上涨（🔴 警示）

**触发条件**: 价格涨幅 ≥ 阈值

**提醒文案**:
```
🔴 涨价了！北京 → 上海

💰 ¥580（↑¥100，+21%）📈
📅 4 月 15 日 | ✈️ 直飞
📊 基准价：¥480（监控第 5 天）
💡 提示：价格连续上涨 2 天

⚠️ 之前有更低价，建议尽快入手！
```

**关键元素**:
- 🔴 红色标识 = 警示
- 温和提示，不制造焦虑

### 3. 历史最低（🏆 新低价）

**触发条件**: 当前价 < 历史最低价

**额外标注**: 在降价提醒基础上添加"🏆 监控期间最低价！"

---

## 防骚扰机制

### 1. 提醒频率限制

- 同一任务 **24 小时内最多提醒 1 次**
- 避免价格频繁波动时反复推送

### 2. 重要程度分级

| 级别 | 条件 | 推送策略 |
|------|------|----------|
| **紧急** | 降幅 ≥ 30% 或 历史最低 | 立即推送 |
| **重要** | 降幅 ≥ 20% | 正常推送 |
| **一般** | 降幅 ≥ 10% | 正常推送 |

---

## 检查频率配置

### 默认频率

| 场景 | 频率 | 说明 |
|------|------|------|
| **日常监控** | 每天 1 次（9:00 AM） | 默认配置 |
| **接近出行** | 每天 2-4 次 | <3 天时自动加速 |
| **价格敏感** | 每小时 1 次 | 用户主动要求 |

### 用户配置

允许用户设置：
- 每天 1 次（默认）
- 每天 2 次（早晚各一次）
- 每小时 1 次（测试或紧急）

---

## 总结

v2.2.2 的判定策略：

1. **安全** - 输入验证，防止命令注入
2. **全面** - 多航班监控，不错过好价格
3. **醒目** - 涨跌一眼看清（🟢/🔴）
4. **贴心** - 帮助用户回忆（监控第 X 天）
5. **灵活** - 频率可配置，适应不同场景
