From 34b662ce38bb70951219575d02e9c1fd253e280a Mon Sep 17 00:00:00 2001 From: Pine Date: Thu, 27 Aug 2026 19:29:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(tasks):=20=E4=BB=BB=E5=8A=A1=E5=88=9B?= =?UTF-8?q?=E5=BB=BA/=E6=9B=B4=E6=96=B0=20schema=20=E5=A2=9E=E5=A4=9A?= =?UTF-8?q?=E7=AB=AF=E9=85=8D=E7=BD=AE=E5=AD=97=E6=AE=B5(=E5=8F=AF?= =?UTF-8?q?=E8=A7=81=E6=80=A7/=E6=8C=87=E6=B4=BE/=E5=9B=AD=E5=8C=BA/?= =?UTF-8?q?=E5=90=8D=E9=A2=9D/=E6=9D=A1=E4=BB=B6/=E6=89=98=E7=AE=A1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/schemas/operator.py | 38 +++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/app/api/schemas/operator.py b/app/api/schemas/operator.py index e9df58d..759b266 100644 --- a/app/api/schemas/operator.py +++ b/app/api/schemas/operator.py @@ -18,6 +18,19 @@ class TaskCreateRequest(BaseModel): display_priority: int = 0 publisher_id: str | None = None publisher_name: str = "" + # ── 多端任务体系扩展字段 ── + publisher_role: str = "" # enterprise/operator/park + visibility: str = "public" # public/assigned_only/c_visible + c_visible: bool = True # 是否进 C 端任务广场 + park_public: bool = False # 是否公有任务(各园区大屏可见/本园可接) + assign_type: str = "" # opc/park(指派模式) + assign_park_id: str | None = None + assign_opc_id: str | None = None + park_id: str | None = None + bid_quota: int = 0 # 竞标报名人数上限 + win_quota: int = 0 # 竞标中标人数 + eligibility: str = "{}" # 接单资格条件(JSON) + settle_mode: str = "operator_escrow" # 资金托管方式 class TaskUpdateRequest(BaseModel): @@ -38,6 +51,18 @@ class TaskUpdateRequest(BaseModel): display_priority: int | None = None publisher_id: str | None = None publisher_name: str | None = None + publisher_role: str | None = None + visibility: str | None = None + c_visible: bool | None = None + park_public: bool | None = None + assign_type: str | None = None + assign_park_id: str | None = None + assign_opc_id: str | None = None + park_id: str | None = None + bid_quota: int | None = None + win_quota: int | None = None + eligibility: str | None = None + settle_mode: str | None = None class TaskStatusRequest(BaseModel): @@ -86,7 +111,8 @@ class ContentCreateRequest(BaseModel): title: str summary: str = "" body: str = "" - cover: str = "" # 封面图 + cover: str = "" # 加宽封面图(3.35:1) + cover_small: str = "" # 小封面图(1:1,可选) images: list[str] = [] # 图集 video: str = "" # 视频 URL video_cover: str = "" # 视频封面 @@ -95,11 +121,17 @@ class ContentCreateRequest(BaseModel): publisher_avatar: str = "" # 发布人头像 card_mode: str = "big" # big 大图 | small 小图(运营端设) is_public: bool = True # 是否公开 + priority: int = 0 # 优先级(越大越靠前) status: str = "draft" class ContentStatusRequest(BaseModel): - status: str # published/offline/draft + status: str # published/offline/draft/pending + + +class ContentReviewRequest(BaseModel): + """资讯审核:approve 通过上线 | offline 下架。""" + decision: str = "approve" class ContentUpdateRequest(BaseModel): @@ -109,6 +141,7 @@ class ContentUpdateRequest(BaseModel): summary: str | None = None body: str | None = None cover: str | None = None + cover_small: str | None = None images: list[str] | None = None video: str | None = None video_cover: str | None = None @@ -119,6 +152,7 @@ class ContentUpdateRequest(BaseModel): is_public: bool | None = None source: str | None = None tenant_id: str | None = None + priority: int | None = None status: str | None = None