Files
X25020501_card_book/core/routers/user/schema.py

60 lines
1.5 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 pydantic import constr
from core.base.schema import BaseMixin
class User(BaseMixin):
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
description: Optional[str | None] = None
last_active_at: Optional[str | None] = None
fans_count: Optional[int] = 0
followers_count: Optional[int] = 0
class LiteUser(BaseMixin):
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
description: Optional[str | None] = None
last_active_at: Optional[str | None] = None
fans_count: Optional[int] = 0
class UserFollows(BaseMixin):
nickname: str
user_id: int
gender: Optional[int] = None
avatar_url: Optional[int] = None
class UpdateUserIn(BaseMixin):
nickname: Optional[constr(max_length=20)] = None
gender: Optional[int] = None
avatar_url: Optional[constr(pattern='^http[a-zA-Z0-9:/\.]+')] = None
description: Optional[constr(max_length=200) | None] = None