版本:Draft v0.2

状态:领域设计阶段


1. 文档定位

本文档用于定义 QSL Management 重构后的核心业务对象(Domain
Model,领域模型)。

本文档回答:

  • 系统中有哪些核心对象;
  • 每个对象代表什么;
  • 对象之间如何关联;
  • 为什么采用这样的设计。

本文档不定义:

  • 数据库字段;
  • Halo Extension具体实现;
  • API接口。

相关文档:

  • qsl-management-rebuild-direction.md:总体架构方向
  • permission-model.md:权限模型
  • data-model-reference.md:字段设计

2. 核心领域思想

2.1 身份、活动与事件分离

QSL Management
不围绕用户组织数据,而围绕无线电领域中的客观实体组织数据。

核心关系:

Callsign 呼号身份
Operating Activity 活动
QSO 通联事件
QSL 卡片交换记录

其中:

  • Callsign 是无线电身份;
  • Activity 是具有时间范围和目的的使用场景;
  • QSO 是通信事件;
  • QSL 是通信事件后的业务记录。

3. Callsign Profile(呼号档案)

定义

Callsign 是业余无线电世界中的身份实体。

它独立存在,不依赖用户。

用户不是呼号本身,而是通过权限关系参与维护。


支持类型

包括:

  • Personal Station(个人台)
  • Club Station(集体台)
  • Special Event Station(特设台)
  • DXpedition Station(远征台)

例如:

BI1KBU(个人电台)
BY1CP(集体台)
B1CRA(竞赛特设台)
BS7H(黄岩岛远征电台)

特点

Callsign:

  • 可以没有系统用户;
  • 可以被多个用户维护;
  • 可以长期存在;
  • 管理人员可以变化;
  • 可以在不同活动中被不同团队使用。

生命周期

Discovered
Claimed
Managed
Archived

说明:

  • Discovered(发现):系统知道该呼号存在;
  • Claimed(认领):用户申请管理;
  • Managed(管理):建立正式权限关系;
  • Archived(归档):历史保存。

4. User(用户)

定义

User 表示系统使用者。

User 不代表:

  • 呼号;
  • 电台;
  • 通联主体。

User 只是:

一个可以登录系统并参与数据维护的人。

用户通过:

  • Permission Grant(权限授权)
  • Activity Permission(活动权限)

参与呼号管理。


5. User-Callsign Relationship(用户-呼号关系)

用户与呼号不是所有关系,而是权限关系。

User 用户
Permission Grant 权限授权
Callsign 呼号

支持:

一个用户管理多个呼号

例如:

用户:

王某


管理:

BI1KBU

BG1XXX

一个呼号由多个用户共同管理

例如:

呼号:

BI1SZB


用户A:

OWNER


用户B:

QSL_MANAGER


用户C:

GUEST

详细权限:

参考 permission-model.md


6. Activity(活动)

定义

Activity 描述一次具有:

  • 时间范围;
  • 使用目的;
  • 使用呼号;
  • 参与人员;

的无线电活动。


示例

活动:

2026 CQ比赛


呼号:

B1CRA


时间:

比赛期间

适用场景

包括:

  • 比赛;
  • 特设台;
  • POTA;
  • 卫星活动;
  • 野外架台。

作用

Activity 不是替代 CallSign,而是描述:

某个呼号在某个时间、某个目的下的使用过程。


7. QSO Record(通联记录)

定义

QSO 是真实发生的一次通信事件。

不是:

  • 用户日志;
  • 呼号属性;
  • 卡片记录。

示例

BI1KBU

↔

BI1SZB


7MHz

SSB

59/59

特点

QSO:

  • 属于无线电身份之间的通信历史;
  • 不属于用户;
  • 不因为管理人员变化而改变。

关系

呼号A
活动
QSO
呼号B

8. QSL Record(卡片交换记录)

定义

QSL 是 QSO 后续产生的业务流程记录。

负责:

  • 卡片发送;
  • 卡片接收;
  • 地址匹配;
  • 通知流程;
  • 状态管理。

关系

QSO

 |

QSL

QSL 可以进一步关联:

  • Activity;
  • 地址信息;
  • 卡片管理员。

例如:

B1CRA 比赛活动结束后:

  • 操作权限失效;
  • QSL管理员继续维护卡片流程。

9. Equipment(设备资源)

定义

Equipment 是辅助资源。

用于:

  • 设备库;
  • 输入联想;
  • 活动记录。

设备不是:

  • 用户属性;
  • 呼号属性;
  • QSO必须字段。

10. 公共数据与管理数据分离

Callsign 数据分为:

公共身份数据

例如:

  • 呼号;
  • 国家;
  • DXCC;
  • 公开QSL地址;
  • 公开联系方式。

管理数据

例如:

  • 管理权限;
  • 内部备注;
  • 工作流程状态。

11. 数据贡献与管理权分离

系统需要区分:

Contribution(数据贡献)

表示:

用户提供了一条关于呼号的信息。

例如:

BI1KBU 用户补充 BI1SZB 的公开QSL信息。


Claim(认领)

表示:

用户获得管理该呼号的权限。


原则:

贡献数据不等于获得呼号管理权限。


12. 领域关系总结

User 用户
Permission Grant 权限授权
Callsign 呼号
Activity 活动
QSO 通联
QSL 卡片