feat: 开发采集、采集箱和商品编辑功能
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
"""商品 Pydantic 模型(列表 / 详情 / 部分更新)。"""
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
|
||||
class ProductListItem(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: UUID
|
||||
stage: str
|
||||
name: str = ""
|
||||
offer_id: str = ""
|
||||
price: float | None = None
|
||||
currency_code: str = "RUB"
|
||||
source_platform: str | None = None
|
||||
source_url: str | None = None
|
||||
asset_counts: dict | None = None
|
||||
ozon_product_id: int | None = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class ProductDetail(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: UUID
|
||||
shop_id: UUID | None = None
|
||||
stage: str
|
||||
source_platform: str | None = None
|
||||
source_item_id: str | None = None
|
||||
source_url: str | None = None
|
||||
|
||||
offer_id: str = ""
|
||||
ozon_product_id: int | None = None
|
||||
name: str = ""
|
||||
description: str = ""
|
||||
description_category_id: int | None = None
|
||||
type_id: int | None = None
|
||||
price: float | None = None
|
||||
old_price: float | None = None
|
||||
currency_code: str = "RUB"
|
||||
vat: str = "0"
|
||||
depth: float | None = None
|
||||
width: float | None = None
|
||||
height: float | None = None
|
||||
dimension_unit: str = "mm"
|
||||
weight: float | None = None
|
||||
weight_unit: str = "g"
|
||||
barcode: str | None = None
|
||||
|
||||
images: list | None = None
|
||||
primary_image: str | None = None
|
||||
images360: list | None = None
|
||||
color_image: str | None = None
|
||||
attributes: list | None = None
|
||||
complex_attributes: list | None = None
|
||||
|
||||
raw: dict | None = None
|
||||
pricing: dict | None = None
|
||||
copy: dict | None = None
|
||||
fx_rate: float | None = None
|
||||
asset_counts: dict | None = None
|
||||
|
||||
published_at: datetime | None = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class ProductUpdate(BaseModel):
|
||||
"""编辑页 autosave 的部分更新。仅允许业务字段,id/时间由服务端维护。"""
|
||||
|
||||
shop_id: UUID | None = None
|
||||
stage: str | None = None
|
||||
offer_id: str | None = None
|
||||
name: str | None = None
|
||||
description: str | None = None
|
||||
description_category_id: int | None = None
|
||||
type_id: int | None = None
|
||||
price: float | None = None
|
||||
old_price: float | None = None
|
||||
currency_code: str | None = None
|
||||
vat: str | None = None
|
||||
depth: float | None = None
|
||||
width: float | None = None
|
||||
height: float | None = None
|
||||
dimension_unit: str | None = None
|
||||
weight: float | None = None
|
||||
weight_unit: str | None = None
|
||||
barcode: str | None = None
|
||||
images: list | None = None
|
||||
primary_image: str | None = None
|
||||
attributes: list | None = None
|
||||
complex_attributes: list | None = None
|
||||
raw: dict | None = None
|
||||
pricing: dict | None = None
|
||||
copy: dict | None = None
|
||||
fx_rate: float | None = None
|
||||
source_url: str | None = None
|
||||
Reference in New Issue
Block a user