from pydantic import BaseModel, EmailStr from datetime import datetime from typing import Optional class UserBase(BaseModel): email: EmailStr first_name: str last_name: str position: Optional[str] = None phone: Optional[str] = None address: Optional[str] = None bio: Optional[str] = None class UserCreate(UserBase): password: str class UserUpdate(BaseModel): first_name: Optional[str] = None last_name: Optional[str] = None position: Optional[str] = None phone: Optional[str] = None address: Optional[str] = None bio: Optional[str] = None profile_picture: Optional[str] = None class UserResponse(UserBase): id: int is_active: bool is_admin: bool profile_picture: Optional[str] = None date_joined: datetime last_login: Optional[datetime] = None class Config: from_attributes = True class Token(BaseModel): access_token: str token_type: str class TokenData(BaseModel): email: Optional[str] = None