| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from pydantic import BaseModel, Field
- from typing import Optional
- from datetime import datetime
- from .user import UserResponse
-
- class TokenBase(BaseModel):
- access_token: str
- refresh_token: Optional[str] = None
- token_type: str = "bearer"
- expires_in: int
-
- class TokenResponse(TokenBase):
- user: UserResponse
-
- class LoginRequest(BaseModel):
- username: str = Field(..., min_length=1)
- password: str = Field(..., min_length=1)
-
- class EmailVerifyRequest(BaseModel):
- email: str
-
- class ResetPasswordRequest(BaseModel):
- token: str
- new_password: str = Field(..., min_length=8, max_length=100)
- confirm_password: str
-
- class Config:
- schema_extra = {
- "example": {
- "username": "john_doe",
- "email": "user@example.com"
- }
- }
-
- class RefreshTokenRequest(BaseModel):
- refresh_token: str
-
- class OAuth2Request(BaseModel):
- provider: str # google, github, facebook
- code: str
- redirect_uri: str
|