refactor: 清理废弃业务模块并更新全栈配置
- 移除后端产品、目的地、活动专题等废弃模块的数据库表与业务代码,删除冗余API接口 - 删除小程序端详情页、线路组件等冗余代码,移除搜索工具与测试用例,调整导航逻辑 - 清理管理端废弃的类型定义、编辑器与测试代码 - 更新项目文档,修正模块维护说明与接口文档内容
This commit is contained in:
1 parent
72e6071bb1
commit
548f91c37f
80 files changed
+953
-12702
No files matched your search
@@ -3,7 +3,6 @@ from typing import Literal
|
||||
from pydantic import BaseModel, EmailStr, Field, ValidationInfo, field_validator
|
||||
|
||||
|
||||
ProductStatus = Literal["draft", "published", "archived"]
|
||||
LeadStatus = Literal["new", "assigned", "contacted", "planning", "won", "invalid"]
|
||||
|
||||
|
||||
@@ -16,60 +15,6 @@ class PhoneLoginIn(BaseModel):
|
||||
code: str = Field(min_length=1, max_length=256)
|
||||
|
||||
|
||||
class ProductImageIn(BaseModel):
|
||||
url: str = ""
|
||||
alt: str | None = None
|
||||
sortOrder: int = 0
|
||||
|
||||
|
||||
class TextBlock(BaseModel):
|
||||
type: Literal["text"]
|
||||
text: str = ""
|
||||
|
||||
|
||||
class ImageBlock(BaseModel):
|
||||
type: Literal["image"]
|
||||
url: str = ""
|
||||
alt: str | None = None
|
||||
|
||||
|
||||
class ProductDetailSectionIn(BaseModel):
|
||||
key: str = ""
|
||||
label: str = ""
|
||||
title: str | None = None
|
||||
blocks: list[TextBlock | ImageBlock] = Field(default_factory=list)
|
||||
|
||||
|
||||
class ProductCreateIn(BaseModel):
|
||||
title: str = Field(min_length=2)
|
||||
subtitle: str | None = None
|
||||
destinationId: str | None = None
|
||||
priceAmount: int | None = Field(default=None, ge=0)
|
||||
priceUnit: str | None = None
|
||||
tags: list[str] = Field(default_factory=list)
|
||||
coverImage: str | None = None
|
||||
summary: str | None = None
|
||||
images: list[ProductImageIn] | None = None
|
||||
detailSections: list[ProductDetailSectionIn] | None = None
|
||||
status: ProductStatus = "draft"
|
||||
sortWeight: int = 0
|
||||
|
||||
|
||||
class ProductUpdateIn(BaseModel):
|
||||
title: str | None = Field(default=None, min_length=2)
|
||||
subtitle: str | None = None
|
||||
destinationId: str | None = None
|
||||
priceAmount: int | None = Field(default=None, ge=0)
|
||||
priceUnit: str | None = None
|
||||
tags: list[str] | None = None
|
||||
coverImage: str | None = None
|
||||
summary: str | None = None
|
||||
images: list[ProductImageIn] | None = None
|
||||
detailSections: list[ProductDetailSectionIn] | None = None
|
||||
status: ProductStatus | None = None
|
||||
sortWeight: int | None = None
|
||||
|
||||
|
||||
class LeadCreateIn(BaseModel):
|
||||
destination: str | None = None
|
||||
phone: str = Field(min_length=2, max_length=64)
|
||||
@@ -79,7 +24,6 @@ class LeadCreateIn(BaseModel):
|
||||
budgetMax: int | None = Field(default=None, ge=0)
|
||||
note: str | None = Field(default=None, max_length=1000)
|
||||
sourcePage: str | None = None
|
||||
sourceProductId: str | None = None
|
||||
|
||||
@field_validator("phone")
|
||||
@classmethod
|
||||
@@ -104,19 +48,6 @@ class LeadStatusIn(BaseModel):
|
||||
status: LeadStatus
|
||||
|
||||
|
||||
class ProductQuery(BaseModel):
|
||||
keyword: str | None = None
|
||||
destinationId: str | None = None
|
||||
status: ProductStatus = "published"
|
||||
take: int = Field(default=48, ge=1, le=100)
|
||||
|
||||
|
||||
class AdminProductQuery(BaseModel):
|
||||
keyword: str | None = None
|
||||
status: ProductStatus | None = None
|
||||
take: int = Field(default=100, ge=1, le=200)
|
||||
|
||||
|
||||
class LeadQuery(BaseModel):
|
||||
status: LeadStatus | None = None
|
||||
sourcePage: str | None = None
|
||||
@@ -141,19 +72,8 @@ class SiteConfigPatchIn(BaseModel):
|
||||
title: str | None = None
|
||||
kicker: str | None = None
|
||||
subtitle: str | None = None
|
||||
name: str | None = None
|
||||
slug: str | None = None
|
||||
region: str | None = None
|
||||
label: str | None = None
|
||||
keyword: str | None = None
|
||||
spots: str | None = None
|
||||
alt: str | None = None
|
||||
image: str | None = None
|
||||
description: str | None = None
|
||||
coverImage: str | None = None
|
||||
priceAmount: int | None = Field(default=None, ge=0)
|
||||
priceUnit: str | None = None
|
||||
tags: list[str] | None = None
|
||||
steps: list[str] | None = None
|
||||
destinationLabel: str | None = None
|
||||
destinationPlaceholder: str | None = None
|
||||
@@ -163,13 +83,8 @@ class SiteConfigPatchIn(BaseModel):
|
||||
notePlaceholder: str | None = None
|
||||
submitLabel: str | None = None
|
||||
chips: list[str] | None = None
|
||||
productIds: list[str] | None = None
|
||||
status: str | None = None
|
||||
startsAt: datetime | None = None
|
||||
endsAt: datetime | None = None
|
||||
targetType: str | None = None
|
||||
targetValue: str | None = None
|
||||
isHot: bool | None = None
|
||||
isActive: bool | None = None
|
||||
sortOrder: int | None = None
|
||||
|
||||
|
||||
Reference in new issue
Block a user