Files
junhong_cmp_fiber/.planning/phases/03-device-system/03-DISCUSSION-LOG.md
2026-03-28 11:16:02 +08:00

71 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 3: 设备体系完善 - Discussion Log
> **Audit trail only.** Do not use as input to planning, research, or execution agents.
> Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.
**Date:** 2026-03-28
**Phase:** 03-device-system
**Areas discussed:** Plan 分组策略, 实时字段暴露范围, is_current DTO 同步范围, Gateway 类型定义位置
---
## Plan 分组策略
| Option | Description | Selected |
|--------|-------------|----------|
| 2 个 Plan推荐 | Plan 1: D-0+D-1+D-2基础层Plan 2: D-3功能层—— 与 Phase 2 分法类似 | ✓ |
| 1 个 Plan | D-0~D-3 全在一个 Plan 里,顶序执行,简单直接但回滚粒度较粗 | |
| 3 个 Plan | Plan 1: D-0Plan 2: D-1+D-2并行Plan 3: D-3 —— 粒度最细 | |
**User's choice:** 2 个 Plan推荐
**Notes:** 与 Phase 2 的"小修合并 + REALNAME 独立"分法保持风格一致
---
## 实时字段暴露范围
| Option | Description | Selected |
|--------|-------------|----------|
| 不暴露(推荐) | 实时字段仅写入 DB响应只返回存储字段满足所有成功标准 | ✓ |
| 暴露实时字段 | 在 AssetRealtimeStatusResponse 新增嵌套 DeviceRealtimeInfo 结构rssi / battery / ssid 等),需较大 DTO 改动 | |
**User's choice:** 不暴露(推荐)
**Notes:** 成功标准 2/4 只要求 online_status / software_version 等存储字段同步,不特别要求实时字段。实时字段暴露推迟到后续阶段按需决策。
---
## is_current DTO 同步范围
| Option | Description | Selected |
|--------|-------------|----------|
| 两处都加(推荐) | BoundCardInfoasset_dto.go+ DeviceCardBindingResponsedevice_dto.go同时新增 is_current | ✓ |
| 仅 BoundCardInfo | 只改 BoundCardInfo设备管理页绑定列表看不到当前卡标识 | |
**User's choice:** 两处都加(推荐)
**Notes:** 保持前端两个场景下的数据一致性
---
## Gateway 类型定义位置
| Option | Description | Selected |
|--------|-------------|----------|
| 放 models.go推荐 | 与现有 DeviceInfoReq / SlotInfoResp 等结构保持一致Gateway 类型集中在一个文件 | ✓ |
| 放 device.go | 跟修正文档建议,类型和方法在同一文件,但与其他 Gateway 结构不一致 | |
**User's choice:** 放 models.go推荐
**Notes:** 修正文档将类型嵌入 device.go 代码片段属于示意用法,不代表最终放置位置,遵循现有项目分离风格
---
## Agent's Discretion
- `updateDeviceFromSyncInfo` 内 is_current 更新的事务策略(先全 false 再设 true
- `last_online_time` 字符串 → time.Time 的 Parse 格式
- GORM Updates 而非 Save 的具体写法
## Deferred Ideas
- 设备实时字段rssi / battery / ssid 等)暴露到 Refresh 响应 —— 超出当前成功标准
- DeviceRealtimeInfo 独立 DTO 结构 —— 等实时字段暴露需求时再建