17 lines
581 B
Python
17 lines
581 B
Python
from typing import Optional, Dict, Any, List
|
|
from pydantic import BaseModel, Field, EmailStr
|
|
|
|
class LoginDTO(BaseModel):
|
|
email: str = Field(..., description="Correo electrónico institucional")
|
|
password: str = Field(..., min_length=1, description="Contraseña de acceso")
|
|
|
|
class TokenResponseDTO(BaseModel):
|
|
access_token: str
|
|
refresh_token: str
|
|
token_type: str = "Bearer"
|
|
expires_in: int = 900 # 15 minutos en segundos
|
|
user: Dict[str, Any]
|
|
|
|
class RefreshTokenDTO(BaseModel):
|
|
refresh_token: str = Field(..., description="Token de refresco válido")
|