SQLite v1 已能建库,但 Python 代码还没有清晰的数据对象和 Repository。后续 Admin、任务执行和 UI 如果直接传字典或散落 SQL,会难以维护,也容易把数据库字段、状态值和界面显示混在一起。
client/src/task_models.py
client/src/task_repository.py
client/src/settings_repository.py
client/test
client/src
dataclass
Enum
sqlite3
unittest
sqlite3.Row
claimed
remote_task_id
admin_payload
pdd_data
updated_at DESC, id DESC
预计修改:
client/test/test_task_repository.py
client/test/test_settings_repository.py
git diff --check
从 client/ 执行:
client/
C:/Python310/python.exe -m py_compile src/task_models.py src/task_repository.py src/settings_repository.py test/test_task_repository.py test/test_settings_repository.py C:/Python310/python.exe -m unittest discover -s test -p "test_*.py" -v
状态:进行中。沿用 client/src 扁平代码和 client/test 测试目录;优先使用直白数据类与小型 Repository 方法,不引入 ORM 或复杂抽象。
TaskRepository
SettingsRepository
首轮测试发现 Dict 类型导入遗漏,已补齐;修正后全量 17 项 unittest 全部通过,语法检查和 git diff --check 通过。
Dict
实现提交:e60b0c9。归档提交:be6ee3d。本地归档:docs/task/8-定义任务数据模型与-sqlite-repository.md。
e60b0c9
be6ee3d
docs/task/8-定义任务数据模型与-sqlite-repository.md
工单保持打开,等待用户验收。
用户已要求继续下一阶段,视为 Task #8 验收通过。关闭本工单。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
SQLite v1 已能建库,但 Python 代码还没有清晰的数据对象和 Repository。后续 Admin、任务执行和 UI 如果直接传字典或散落 SQL,会难以维护,也容易把数据库字段、状态值和界面显示混在一起。
做什么 / 不做什么
client/src/task_models.py定义数据库状态枚举和简单数据类;client/src/task_repository.py实现领取任务写入、分页筛选、数量统计和详情读取;client/src/settings_repository.py实现非敏感设置的 JSON 读写和删除;client/test使用临时数据库测试。怎么做
client/src扁平结构,使用dataclass、Enum、sqlite3和unittest。sqlite3.Row。claimed状态写入;相同remote_task_id重复写入时明确报错,不覆盖本地执行状态。admin_payload和pdd_data。updated_at DESC, id DESC。预计修改:
client/src/task_models.pyclient/src/task_repository.pyclient/src/settings_repository.pyclient/test/test_task_repository.pyclient/test/test_settings_repository.py验收标准
claimed;updated_at DESC, id DESC稳定排序;git diff --check通过。怎么验证
从
client/执行:状态:进行中。沿用
client/src扁平代码和client/test测试目录;优先使用直白数据类与小型 Repository 方法,不引入 ORM 或复杂抽象。实施完成,等待用户验收
TaskRepository支持新任务写入、重复保护、稳定分页、AND 筛选、计数和详情 JSON;SettingsRepository支持非敏感 JSON 设置新增、读取、更新、删除和默认值;首轮测试发现
Dict类型导入遗漏,已补齐;修正后全量 17 项 unittest 全部通过,语法检查和git diff --check通过。实现提交:
e60b0c9。归档提交:be6ee3d。本地归档:docs/task/8-定义任务数据模型与-sqlite-repository.md。工单保持打开,等待用户验收。
用户已要求继续下一阶段,视为 Task #8 验收通过。关闭本工单。