38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
"""
|
|
Pydantic schemas for authentication.
|
|
"""
|
|
|
|
from typing import Optional
|
|
from pydantic import BaseModel, EmailStr, Field
|
|
|
|
|
|
class LoginRequest(BaseModel):
|
|
"""Schema pour la requête de connexion"""
|
|
email: EmailStr = Field(..., description="Email de l'utilisateur")
|
|
password: str = Field(..., min_length=1, description="Mot de passe de l'utilisateur")
|
|
|
|
|
|
class RegisterRequest(BaseModel):
|
|
"""Schema pour la requête d'inscription"""
|
|
email: EmailStr = Field(..., description="Email de l'utilisateur")
|
|
password: str = Field(..., min_length=8, description="Mot de passe (min 8 caractères)")
|
|
name: Optional[str] = Field(None, description="Nom de l'utilisateur (optionnel)")
|
|
referral_code: Optional[str] = Field(None, description="Code de parrainage (optionnel)")
|
|
|
|
|
|
class AuthResponse(BaseModel):
|
|
"""Schema pour la réponse d'authentification"""
|
|
data: dict
|
|
meta: dict
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class ErrorResponse(BaseModel):
|
|
"""Schema pour les réponses d'erreur"""
|
|
error: dict
|
|
|
|
class Config:
|
|
from_attributes = True
|