"""admin 首页轮播种子 schemas。金额单位:分(前端展示 ÷100 取元)。 种子 = 生成规则:masked_user 可空(空→feed 随机合成名)、金额是 [min_cents, max_cents] 区间。 """ from __future__ import annotations from pydantic import BaseModel class OpsMarqueeSeedOut(BaseModel): id: int masked_user: str | None = None min_cents: int max_cents: int enabled: bool sort_order: int created_at: str | None = None class OpsMarqueeSeedCreate(BaseModel): masked_user: str | None = None # 空 / 不传 → feed 随机合成脱敏名 min_cents: int max_cents: int enabled: bool = True sort_order: int = 0 class OpsMarqueeSeedUpdate(BaseModel): # masked_user:不传=不改;传空串=清空(改回随机合成);传值=固定该名 masked_user: str | None = None min_cents: int | None = None max_cents: int | None = None enabled: bool | None = None sort_order: int | None = None class OpsMarqueeSeedBulkCreate(BaseModel): """批量生成 count 条自动合成名种子(冷启动铺量)。""" count: int min_cents: int max_cents: int enabled: bool = True class OpsSavingsFeedPreviewItem(BaseModel): masked_user: str saved_amount_cents: int time: str class OpsSavingsFeedPreviewOut(BaseModel): """运营预览:实际混播出来的 feed(真实记录会插队,与客户端一致)。""" items: list[OpsSavingsFeedPreviewItem]