Files

37 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
from pydantic import BaseModel, ConfigDict, Field
from app.core.base_schema import BaseSchema
class MiniappLoginSchema(BaseModel):
"""小程序登录请求"""
code: str = Field(..., min_length=1, description="微信登录code")
class MiniappUserCreateSchema(BaseModel):
"""小程序用户创建"""
openid: str = Field(..., max_length=64, description="微信openid")
unionid: str | None = Field(default=None, max_length=64, description="微信unionid")
session_key: str | None = Field(default=None, max_length=64, description="会话密钥")
nickname: str | None = Field(default=None, max_length=64, description="昵称")
avatar: str | None = Field(default=None, max_length=512, description="头像URL")
class MiniappUserUpdateSchema(MiniappUserCreateSchema):
"""小程序用户更新"""
phone: str | None = Field(default=None, max_length=20, description="手机号")
class MiniappUserOutSchema(MiniappUserUpdateSchema, BaseSchema):
"""小程序用户响应"""
model_config = ConfigDict(from_attributes=True)
class MiniappLoginOutSchema(BaseModel):
"""小程序登录响应"""
access_token: str = Field(..., description="访问令牌")
token_type: str = Field(default="Bearer", description="令牌类型")
expires_in: int = Field(..., description="过期时间(秒)")
user: MiniappUserOutSchema = Field(..., description="用户信息")