"""# Summary Job domain model — a pipeline work item consumed by the background worker. """ from typing import Literal from pydantic import BaseModel, Field class Job(BaseModel): """A unit of background work. Attributes: name (str): Job name. status (str): Lifecycle status. Defaults to "pending". retry_count (int): Times the job failed. Defaults to 0. error_message (str | None): Last failure message. Defaults to None. payload (dict | None): Arbitrary job payload. Defaults to None. """ name: str status: Literal["pending", "processing", "done", "failed"] = "pending" retry_count: int = Field(default=0) error_message: str | None = None payload: dict | None = None model_config = {"extra": "ignore"}