import re from typing import Literal from pydantic import BaseModel, Field, field_validator class BundleCreateRequest(BaseModel): subject_type: Literal["store", "lawyer"] = Field(description="主体类型") subject_id: int = Field(gt=0, description="主体ID") subject_name: str = Field(description="主体名称") business_segment: str = Field(description="业务板块") contact_name: str = Field(description="联系人姓名") contact_phone: str = Field(description="联系电话") ord_id: str = Field(description="统一社会信用代码") @field_validator("contact_phone") @classmethod def validate_contact_phone(cls, value: str) -> str: if not re.fullmatch(r"^1\d{10}$", value): raise ValueError("contact_phone 格式错误,应为11位手机号") return value