# backend/core/users/services.py import logging from django.contrib.auth import get_user_model from rest_framework.exceptions import ValidationError from .serializers import UserSerializer from typing import TYPE_CHECKING if TYPE_CHECKING: from .models import CustomUser as User else: User = get_user_model() logger = logging.getLogger(__name__) class UserService: @staticmethod def update_user_profile(user, data: dict) -> User: """ Ažurira profil koristeći serializer za validaciju. Ovo osigurava da poslovna pravila definirana u serializeru budu poštivana i kod programskog ažuriranja. """ # Koristimo serializer za validaciju dolaznih podataka serializer = UserSerializer(user, data=data, partial=True) if not serializer.is_valid(): logger.error(f"Neuspješna validacija profila korisnika {user.id}: {serializer.errors}") raise ValidationError(serializer.errors) # Spremanje validiranih podataka updated_user = serializer.save() logger.info(f"Korisnik {user.id} je uspješno ažurirao profil.") return updated_user