from typing import List, Optional from app.models.user import User from app.schemas.user import UserCreate, UserUpdate fake_users_db = [ User(id=1, username="admin", email="admin@example.com", full_name="Admin User"), User(id=2, username="john", email="john@example.com", full_name="John Doe"), User(id=3, username="jane", email="jane@example.com", full_name="Jane Smith"), ] class UserService: @staticmethod def get_all_users() -> List[User]: return fake_users_db @staticmethod def get_user_by_id(user_id: int) -> Optional[User]: for user in fake_users_db: if user.id == user_id: return user return None @staticmethod def create_user(user_data: UserCreate) -> User: new_id = max([u.id for u in fake_users_db]) + 1 if fake_users_db else 1 new_user = User( id=new_id, username=user_data.username, email=user_data.email, full_name=user_data.full_name ) fake_users_db.append(new_user) return new_user @staticmethod def update_user(user_id: int, user_data: UserUpdate) -> Optional[User]: for i, user in enumerate(fake_users_db): if user.id == user_id: update_data = user_data.model_dump(exclude_unset=True) for field, value in update_data.items(): setattr(user, field, value) return user return None user_service = UserService()