update
This commit is contained in:
parent
03bc65e551
commit
40f060dfac
@ -5,7 +5,9 @@ from pydantic import BaseModel, Field
|
|||||||
from typing import Optional, List
|
from typing import Optional, List
|
||||||
from datetime import datetime, date
|
from datetime import datetime, date
|
||||||
from .database import Base
|
from .database import Base
|
||||||
|
from sqlalchemy.orm import relationship
|
||||||
import enum
|
import enum
|
||||||
|
|
||||||
from app.core.utils import CommonUtils
|
from app.core.utils import CommonUtils
|
||||||
from app.core.imageprocessor import process_image, ImageFormat
|
from app.core.imageprocessor import process_image, ImageFormat
|
||||||
|
|
||||||
@ -23,6 +25,11 @@ class DeliveryTimeType(str, enum.Enum):
|
|||||||
IMMEDIATE = "IMMEDIATE" # 立即送
|
IMMEDIATE = "IMMEDIATE" # 立即送
|
||||||
SCHEDULED = "SCHEDULED" # 定时送
|
SCHEDULED = "SCHEDULED" # 定时送
|
||||||
|
|
||||||
|
class OperationType(str, enum.Enum):
|
||||||
|
"""经营类型枚举"""
|
||||||
|
SELF_OPERATED = "SELF_OPERATED" # 自营
|
||||||
|
MERCHANT = "MERCHANT" # 商家
|
||||||
|
|
||||||
class MerchantProductDB(Base):
|
class MerchantProductDB(Base):
|
||||||
__tablename__ = "merchant_products"
|
__tablename__ = "merchant_products"
|
||||||
|
|
||||||
@ -39,10 +46,12 @@ class MerchantProductDB(Base):
|
|||||||
promotion_text = Column(String(100)) # 促销文本
|
promotion_text = Column(String(100)) # 促销文本
|
||||||
product_detail = Column(Text, nullable=True) # 产品详细描述,Markdown格式
|
product_detail = Column(Text, nullable=True) # 产品详细描述,Markdown格式
|
||||||
purchase_note = Column(Text, nullable=True) # 购买须知,用于提供商品购买相关注意事项
|
purchase_note = Column(Text, nullable=True) # 购买须知,用于提供商品购买相关注意事项
|
||||||
|
operation_type = Column(Enum(OperationType), nullable=False, default=OperationType.MERCHANT) # 经营类型:自营或商家
|
||||||
qty = Column(Integer, nullable=False, default=0) # 库存
|
qty = Column(Integer, nullable=False, default=0) # 库存
|
||||||
is_sellout = Column(Boolean, nullable=False, default=False) # 是否售罄
|
is_sellout = Column(Boolean, nullable=False, default=False) # 是否售罄
|
||||||
delivery_type = Column(Enum(DeliveryType), nullable=False, default=DeliveryType.DELIVERY) # 配送类型
|
delivery_type = Column(Enum(DeliveryType), nullable=False, default=DeliveryType.DELIVERY) # 配送类型
|
||||||
pickup_place = Column(String(200), nullable=True) # 自提点
|
pickup_place = Column(String(200), nullable=True) # 自提点
|
||||||
|
pickup_time = Column(DateTime(timezone=True), nullable=True) # 自提时间
|
||||||
delivery_time_type = Column(Enum(DeliveryTimeType), nullable=False, default=DeliveryTimeType.IMMEDIATE) # 配送时间类型
|
delivery_time_type = Column(Enum(DeliveryTimeType), nullable=False, default=DeliveryTimeType.IMMEDIATE) # 配送时间类型
|
||||||
delivery_date = Column(Date, nullable=True) # 配送日期,仅对定时送有效
|
delivery_date = Column(Date, nullable=True) # 配送日期,仅对定时送有效
|
||||||
create_time = Column(DateTime(timezone=True), server_default=func.now())
|
create_time = Column(DateTime(timezone=True), server_default=func.now())
|
||||||
@ -65,10 +74,12 @@ class MerchantProductCreate(BaseModel):
|
|||||||
purchase_limit: int = Field(0, ge=0) # 限购次数,默认0表示不限购
|
purchase_limit: int = Field(0, ge=0) # 限购次数,默认0表示不限购
|
||||||
product_detail: Optional[str] = None # 产品详细描述,Markdown格式
|
product_detail: Optional[str] = None # 产品详细描述,Markdown格式
|
||||||
purchase_note: Optional[str] = None # 购买须知,用于提供商品购买相关注意事项
|
purchase_note: Optional[str] = None # 购买须知,用于提供商品购买相关注意事项
|
||||||
|
operation_type: OperationType = Field(OperationType.MERCHANT) # 经营类型:自营或商家
|
||||||
qty: int = Field(0, ge=0) # 库存
|
qty: int = Field(0, ge=0) # 库存
|
||||||
is_sellout: bool = Field(False) # 是否售罄
|
is_sellout: bool = Field(False) # 是否售罄
|
||||||
delivery_type: DeliveryType = Field(DeliveryType.DELIVERY) # 配送类型
|
delivery_type: DeliveryType = Field(DeliveryType.DELIVERY) # 配送类型
|
||||||
pickup_place: Optional[str] = Field(None, max_length=200) # 自提点
|
pickup_place: Optional[str] = Field(None, max_length=200) # 自提点
|
||||||
|
pickup_time: Optional[datetime] = Field(None) # 自提时间
|
||||||
delivery_time_type: DeliveryTimeType = Field(DeliveryTimeType.IMMEDIATE) # 配送时间类型
|
delivery_time_type: DeliveryTimeType = Field(DeliveryTimeType.IMMEDIATE) # 配送时间类型
|
||||||
delivery_date: Optional[date] = Field(None) # 配送日期
|
delivery_date: Optional[date] = Field(None) # 配送日期
|
||||||
status: ProductStatus = ProductStatus.UNLISTING
|
status: ProductStatus = ProductStatus.UNLISTING
|
||||||
@ -85,10 +96,12 @@ class MerchantProductUpdate(BaseModel):
|
|||||||
purchase_limit: Optional[int] = Field(None, ge=0) # 限购次数,可选字段
|
purchase_limit: Optional[int] = Field(None, ge=0) # 限购次数,可选字段
|
||||||
product_detail: Optional[str] = None # 产品详细描述,Markdown格式
|
product_detail: Optional[str] = None # 产品详细描述,Markdown格式
|
||||||
purchase_note: Optional[str] = None # 购买须知,用于提供商品购买相关注意事项
|
purchase_note: Optional[str] = None # 购买须知,用于提供商品购买相关注意事项
|
||||||
|
operation_type: Optional[OperationType] = None # 经营类型:自营或商家
|
||||||
qty: Optional[int] = Field(None, ge=0) # 库存
|
qty: Optional[int] = Field(None, ge=0) # 库存
|
||||||
is_sellout: Optional[bool] = None # 是否售罄
|
is_sellout: Optional[bool] = None # 是否售罄
|
||||||
delivery_type: Optional[DeliveryType] = None # 配送类型
|
delivery_type: Optional[DeliveryType] = None # 配送类型
|
||||||
pickup_place: Optional[str] = Field(None, max_length=200) # 自提点
|
pickup_place: Optional[str] = Field(None, max_length=200) # 自提点
|
||||||
|
pickup_time: Optional[datetime] = None # 自提时间
|
||||||
delivery_time_type: Optional[DeliveryTimeType] = None # 配送时间类型
|
delivery_time_type: Optional[DeliveryTimeType] = None # 配送时间类型
|
||||||
delivery_date: Optional[date] = None # 配送日期
|
delivery_date: Optional[date] = None # 配送日期
|
||||||
status: Optional[ProductStatus] = None
|
status: Optional[ProductStatus] = None
|
||||||
@ -109,10 +122,12 @@ class MerchantProductInfo(BaseModel):
|
|||||||
purchase_limit: int # 限购次数
|
purchase_limit: int # 限购次数
|
||||||
product_detail: Optional[str] = None # 产品详细描述,Markdown格式
|
product_detail: Optional[str] = None # 产品详细描述,Markdown格式
|
||||||
purchase_note: Optional[str] = None # 购买须知,用于提供商品购买相关注意事项
|
purchase_note: Optional[str] = None # 购买须知,用于提供商品购买相关注意事项
|
||||||
|
operation_type: OperationType # 经营类型:自营或商家
|
||||||
qty: int # 库存
|
qty: int # 库存
|
||||||
is_sellout: bool # 是否售罄
|
is_sellout: bool # 是否售罄
|
||||||
delivery_type: DeliveryType # 配送类型
|
delivery_type: DeliveryType # 配送类型
|
||||||
pickup_place: Optional[str] = None # 自提点
|
pickup_place: Optional[str] = None # 自提点
|
||||||
|
pickup_time: Optional[datetime] = None # 自提时间
|
||||||
delivery_time_type: DeliveryTimeType # 配送时间类型
|
delivery_time_type: DeliveryTimeType # 配送时间类型
|
||||||
delivery_date: Optional[date] = None # 配送日期
|
delivery_date: Optional[date] = None # 配送日期
|
||||||
gift_points_rate: float
|
gift_points_rate: float
|
||||||
|
|||||||
@ -35,3 +35,11 @@ ADD COLUMN product_detail TEXT COMMENT '产品详细描述,Markdown格式';
|
|||||||
-- 为merchant_products表添加purchase_note字段
|
-- 为merchant_products表添加purchase_note字段
|
||||||
ALTER TABLE merchant_products
|
ALTER TABLE merchant_products
|
||||||
ADD COLUMN purchase_note TEXT COMMENT '购买须知,用于提供商品购买相关注意事项';
|
ADD COLUMN purchase_note TEXT COMMENT '购买须知,用于提供商品购买相关注意事项';
|
||||||
|
|
||||||
|
-- 为merchant_products表添加pickup_time字段(带时区信息)
|
||||||
|
ALTER TABLE merchant_products
|
||||||
|
ADD COLUMN pickup_time DATETIME COMMENT '自提时间,用于指定商品自提的时间';
|
||||||
|
|
||||||
|
-- 为merchant_products表添加operation_type字段(枚举类型)
|
||||||
|
ALTER TABLE merchant_products
|
||||||
|
ADD COLUMN operation_type ENUM('SELF_OPERATED', 'MERCHANT') NOT NULL DEFAULT 'MERCHANT' COMMENT '经营类型:自营或商家';
|
||||||
BIN
jobs.sqlite
BIN
jobs.sqlite
Binary file not shown.
Loading…
Reference in New Issue
Block a user