CoolFace
Apppublic

Hammad712/Auth

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
models.py55 linesDownload Raw Back to root
1from pydantic import BaseModel, EmailStr, Field, validator2from typing import List, Optional3 4# === Authentication Models ===5class User(BaseModel):6    name: str = Field(..., min_length=3, max_length=50)7    email: EmailStr8    password: str9 10    @validator("password")11    def validate_password(cls, value):12        if len(value) < 8:13            raise ValueError("Password must be at least 8 characters long.")14        if not any(char.isdigit() for char in value):15            raise ValueError("Password must include at least one number.")16        if not any(char.isupper() for char in value):17            raise ValueError("Password must include at least one uppercase letter.")18        if not any(char.islower() for char in value):19            raise ValueError("Password must include at least one lowercase letter.")20        if not any(char in "!@#$%^&*()-_+=<>?/" for char in value):21            raise ValueError("Password must include at least one special character.")22        return value23 24class UserUpdate(BaseModel):25    name: Optional[str] = Field(None, min_length=3, max_length=50)26    email: Optional[EmailStr]27    password: Optional[str]28 29    @validator("password")30    def validate_password(cls, value):31        if value is not None:32            if len(value) < 8:33                raise ValueError("Password must be at least 8 characters long.")34            if not any(char.isdigit() for char in value):35                raise ValueError("Password must include at least one number.")36            if not any(char.isupper() for char in value):37                raise ValueError("Password must include at least one uppercase letter.")38            if not any(char.islower() for char in value):39                raise ValueError("Password must include at least one lowercase letter.")40            if not any(char in "!@#$%^&*()-_+=<>?/" for char in value):41                raise ValueError("Password must include at least one special character.")42        return value43 44class Token(BaseModel):45    access_token: str46    refresh_token: str47    token_type: str48 49class LoginResponse(Token):50    name: str51    avatar: Optional[str] = None52 53class TokenData(BaseModel):54    email: Optional[str] = None55