package org.initialde.yakasave.Infrastructure.Persistence;

import org.initialde.yakasave.Domain.Entities.User;
import org.springframework.stereotype.Repository;

import java.util.Optional;
import java.util.UUID;

@Repository
public class UserRepositoryImpl implements UserRepository {
    private final JpaUserRepository jpaUserRepository;

    public UserRepositoryImpl(JpaUserRepository jpaUserRepository) {
        this.jpaUserRepository = jpaUserRepository;
    }

    @Override
    public void save(User user) {
        jpaUserRepository.save(user);
    }

    @Override
    public void deleteAll() {
        jpaUserRepository.deleteAll();
    }

    @Override
    public Optional<User> findById(UUID id) {
        return jpaUserRepository.findById(id);
    }

    @Override
    public boolean existsByUsername(String username) {
        return jpaUserRepository.existsUByUsername(username);
    }

    @Override
    public Optional<User> findByUsername(String username) {
        return jpaUserRepository.findUserByUsername(username);
    }
}
