b9b5e2e2ff
- Task 加 task_code/tags/display_priority/claimed_by/claimed_at/doing_at;新增 TaskClaim 流水表。
- TaskService 加 claimed/doing/completed 状态机(claim/start_doing/complete),grab 并入 claim。
- TaskRepository 加 list_published/get_by_code/update/claim/set_doing + TaskClaimRepository;挂 Database。
- 端口:
· opc /tasks/grab-by-code、/tasks/{id}/doing、/tasks/{id}/complete
· operator POST /tasks(auto task_code) + PATCH /tasks/:id
· park /park/api/tasks(大屏展示,含 scan_payload 二维码载荷)
· training /api/tasks/claim-by-code、/api/tasks/my(小程序 C 端账号→OPC 身份 find-or-create 领单)
- 迁移 0008(tasks 加列 + task_claims)已应用+stamp;seed 补 task_code/tags/grab demo。
- tests/test_task_claim.py(自包含内存库, 状态机+流水+list_published), 直接 async 校验通过。
Co-Authored-By: Claude <noreply@anthropic.com>
32 lines
549 B
Python
32 lines
549 B
Python
from pydantic import BaseModel
|
|
|
|
class BidRequest(BaseModel):
|
|
quote: int = 0
|
|
plan: str = ""
|
|
|
|
|
|
class TaskClaimRequest(BaseModel):
|
|
task_code: str = ""
|
|
task_id: str = ""
|
|
|
|
|
|
|
|
class ProfileUpdate(BaseModel):
|
|
nickname: str | None = None
|
|
account: str | None = None
|
|
company: str | None = None
|
|
room: str | None = None
|
|
skills: list[str] = []
|
|
credit_score: int | None = None
|
|
|
|
|
|
|
|
class FinanceRecordCreate(BaseModel):
|
|
category: str = "income" # income | expense
|
|
amount: int
|
|
date: str = ""
|
|
note: str = ""
|
|
|
|
|
|
|