2.9 KiB
2.9 KiB
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-0,Plan 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 |
|---|---|---|
| 两处都加(推荐) | BoundCardInfo(asset_dto.go)+ DeviceCardBindingResponse(device_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 结构 —— 等实时字段暴露需求时再建