feat(routers): 完善auth、card、file、user相关接口开发
This commit is contained in:
@@ -4,37 +4,59 @@
|
||||
# @Software : PyCharm
|
||||
# @Author : xingc
|
||||
# @Desc :
|
||||
from typing import Optional, Literal
|
||||
import re
|
||||
from typing import Optional, Dict
|
||||
|
||||
from pydantic import BaseModel, conint
|
||||
from pydantic import BaseModel, constr, condecimal, field_validator
|
||||
|
||||
from core.base.schema import SupportPlatformType, PlatformSourceType
|
||||
from core.base.schema import SupportPlatformType, PlatformSourceType, CardCategoryType
|
||||
|
||||
|
||||
class CardPrice(BaseModel):
|
||||
front_picture: Optional[str] = None
|
||||
reverse_picture: Optional[str] = None
|
||||
|
||||
# 自定义校验规则
|
||||
@field_validator('front_picture', 'reverse_picture')
|
||||
def check_length(cls, value):
|
||||
if value is not None:
|
||||
if not re.match(r'^http.*\.jpg$', value):
|
||||
raise ValueError('链接不合法')
|
||||
return value
|
||||
|
||||
|
||||
class Card(BaseModel):
|
||||
cert_number: str
|
||||
card_year: conint(gt=0, le=2099)
|
||||
card_year: Optional[constr(pattern=r'^\d{4}([-~]\d{1,4})?$')]
|
||||
card_brand: Optional[str] = None
|
||||
card_score: Optional[float] = None
|
||||
auto_score: Optional[float] = None
|
||||
card_name: str
|
||||
card_number: Optional[str] = None
|
||||
card_type: Optional[str] = None
|
||||
card_picture: Optional[dict] = {}
|
||||
card_picture: Optional[CardPrice] = {}
|
||||
card_spare_picture: Optional[dict] = {}
|
||||
source: SupportPlatformType
|
||||
|
||||
|
||||
class CardIn(Card):
|
||||
category: CardCategoryType
|
||||
reward: Optional[bool] = False
|
||||
|
||||
|
||||
class UpdateCard(BaseModel):
|
||||
purchase_price: float
|
||||
display_price: float
|
||||
purchase_price: condecimal(max_digits=10, decimal_places=2)
|
||||
display_price: condecimal(max_digits=10, decimal_places=2)
|
||||
|
||||
|
||||
class CardOut(Card, UpdateCard):
|
||||
card_year: int
|
||||
class CardVisitOut(Card, UpdateCard):
|
||||
source: PlatformSourceType
|
||||
purchase_price: Optional[float] = None
|
||||
display_price: Optional[float] = None
|
||||
|
||||
|
||||
class CardOut(CardVisitOut):
|
||||
id: Optional[int] = None
|
||||
purchase_price: Optional[condecimal(max_digits=10, decimal_places=2)] = None
|
||||
display_price: Optional[condecimal(max_digits=10, decimal_places=2)] = None
|
||||
|
||||
|
||||
class DeleteCardIn(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user