VolunteerAchievementService.java

package org.petify.backend.services;

import org.petify.backend.repository.UserRepository;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Slf4j
public class VolunteerAchievementService {

    @Autowired
    private UserRepository userRepository;

    @Autowired
    private AchievementService achievementService;

    @Transactional
    public void onVolunteerApplicationSubmitted(String username) {
        try {
            achievementService.trackVolunteerAchievementByName(username, "Ochotnik");

            log.info("Volunteer achievement awarded to user: {}", username);
        } catch (Exception e) {
            log.error("Error awarding volunteer achievement for user {}: {}", username, e.getMessage());
        }
    }

    @Transactional
    public void onVolunteerApproved(String username) {
        try {
            log.info("Volunteer approved for user: {}", username);
        } catch (Exception e) {
            log.error("Error processing volunteer approval for user {}: {}", username, e.getMessage());
        }
    }
}