"""worker 侧数据模型:不引用网关的 Pydantic 模型 worker 通过 HTTP 与网关交互,看到的只有 JSON。这里定义 worker 自己用来表达 「领到的任务」「核对结论」的数据类——结构上对应网关响应,但**不 import** app.gateway 的任何东西,保证架构边界(worker → shared,禁止 worker → gateway)。 OrderState / TaskStatus 枚举在 app.shared.task_state,两侧共用同一份取值表。 """ from __future__ import annotations from dataclasses import dataclass, field from typing import Any @dataclass(slots=True) class LeaseTask: """worker 从网关领到的任务 对应网关 GET /api/orders/lease 的 LeaseData,但用 dataclass 表达——worker 内部不依赖网关侧的 Pydantic 模型。 """ task_id: str site: str intent: dict[str, Any] = field(default_factory=dict) lease_expires_at: str = "" lease_count: int = 1 known_state: str | None = None