from typing import Dict from src.models import User from src.utils import BcryptUtil from src.schemas import UserSignInSchema from src.repositories import UserRepository class UserService: def __init__(self): self.user_repository = UserRepository() async def create_user(self, user: UserSignInSchema): user = User(name=user.name, email=user.email) return await self.user_repository.insert_one(user) async def get_user(self, user_id): return await self.user_repository.get_by_id(user_id) async def delete_user(self, user_id): return await self.user_repository.delete(user_id) async def update_user(self, user_id, update_data): return await self.user_repository.update(user_id, update_data) async def list_users( self, page: int = 1, page_size: int = None, filter_by: Dict = None, order_by: str = None, ): return await self.user_repository.get_all( page=page, page_size=page_size, filter_by=filter_by, order_by=order_by )