47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
# -*- coding = utf-8 -*-
|
|
# @Time : 2025/2/20 下午10:13
|
|
# @File : schema.py
|
|
# @Software : PyCharm
|
|
# @Author : xingc
|
|
# @Desc :
|
|
from datetime import date
|
|
from typing import Optional
|
|
|
|
from fastapi.openapi.models import Schema
|
|
from pydantic import BaseModel, constr
|
|
|
|
|
|
class User(BaseModel):
|
|
nickname: str
|
|
user_id: int
|
|
gender: Optional[int] = None
|
|
avatar_url: Optional[str] = None
|
|
wechat_openid: Optional[str] = None
|
|
wechat_union_id: Optional[str] = None
|
|
phone: Optional[str] = None
|
|
vip_expire_date: Optional[date] = None
|
|
points: Optional[int] = 0
|
|
displayed_card_total: Optional[int] = 0
|
|
|
|
|
|
class LiteUser(BaseModel):
|
|
nickname: str
|
|
user_id: int
|
|
gender: Optional[int] = None
|
|
avatar_url: Optional[str] = None
|
|
vip_expire_date: Optional[date] = None
|
|
displayed_card_total: Optional[int] = 0
|
|
|
|
|
|
class UserFollows(BaseModel):
|
|
nickname: str
|
|
user_id: int
|
|
gender: Optional[int] = None
|
|
avatar_url: Optional[int] = None
|
|
|
|
|
|
class UpdateUserIn(BaseModel):
|
|
nickname: Optional[constr(max_length=20)] = None
|
|
gender: Optional[int] = None
|
|
avatar_url: Optional[constr(pattern='^http[a-zA-Z0-9:/\.]+')] = None
|