Automated Action e09f7ca405 Fix critical startup issue - remove email-validator dependency
- Replace EmailStr with custom email validation using regex
- Remove pydantic[email] dependency to prevent import errors
- Update config to use dynamic database path with proper directory creation
- Improve database session configuration with connection pooling
- Fix application startup failures caused by missing email-validator package

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-26 14:55:23 +00:00

47 lines
1.0 KiB
Python

from typing import Optional
from pydantic import BaseModel, field_validator
from datetime import datetime
import re
class UserBase(BaseModel):
email: Optional[str] = None
username: Optional[str] = None
is_active: Optional[bool] = True
is_verified: Optional[bool] = False
@field_validator('email')
@classmethod
def validate_email(cls, v):
if v is not None:
email_pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
if not re.match(email_pattern, v):
raise ValueError('Invalid email format')
return v
class UserCreate(UserBase):
email: str
username: str
password: str
class UserUpdate(UserBase):
password: Optional[str] = None
class UserInDBBase(UserBase):
id: Optional[int] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
class Config:
from_attributes = True
class User(UserInDBBase):
pass
class UserInDB(UserInDBBase):
hashed_password: str