# 04 — 自动购包链路复用不可变套餐计时快照

**What to build:** 自动购包任务创建正式主套餐和加油包使用记录时，复用同步购买已经建立的套餐计时快照能力，在同一业务事务中保存购买时承诺。任务重试或重复消费不会重复创建使用记录，也不会产生缺少快照的新记录。

**Blocked by:** `.scratch/ur55-package-expiry-base/issues/03-snapshot-synchronous-package-purchases.md` — 03 — 同步购买链路创建不可变套餐计时快照

**Status:** completed

- [x] 架构主通道为复杂写，Application 通过 Port/Adapter 编排自动任务和持久化；只迁移自动购包形成套餐使用记录的完整用例，不迁移其调度、定价、支付或其他订单规则。
- [x] 自动购包创建主套餐和加油包时调用与同步购买相同的计时条款解析能力，不再自行读取套餐当前生效条件和时长决定使用记录语义。
- [x] 自动任务能够解析对应代理分配的覆盖值；无覆盖时使用套餐默认值，并为每条新使用记录写入四个非空、有效的计时快照。
- [x] 使用记录及其快照在同一业务事务提交，任一步骤失败均不留下部分订单、部分主套餐、部分加油包或空快照记录。
- [x] 重复任务和并发消费依赖数据库业务幂等事实或状态条件，不以 Redis 锁代替权威幂等；同一业务只生成一组套餐使用记录。
- [x] 队列载荷使用结构体或 map，不向统一入队能力传入预序列化字节。
- [x] 新自动购包记录无法生成完整快照时明确失败并记录中文上下文日志，不允许静默使用历史兼容回退。
- [x] 自动任务集成测试覆盖两个生效条件、跟随默认、主套餐、加油包、重复消费、并发、事务中途失败和购买后配置变化不修改快照。
