# -*- 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 class VisitUser(LiteUser): is_follow: Optional[bool] = False 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