package de.accso.flexinale.infrastructure.security;

import de.accso.flexinale.shared_kernel.Identifiable;

import java.util.List;
import java.util.Optional;

@SuppressWarnings("unused")
public class BenutzerJpaRepositoryDelegate implements BenutzerDao {

    private final BenutzerJpaRepository benutzerJpaRepository;

    public BenutzerJpaRepositoryDelegate(BenutzerJpaRepository BenutzerJpaRepository) {
        this.benutzerJpaRepository = BenutzerJpaRepository;
    }

    @Override
    public List<BenutzerEntity> findAll() {
        return benutzerJpaRepository.findAll();
    }

    @Override
    public Optional<BenutzerEntity> findById(final Identifiable.Id id) {
        return benutzerJpaRepository.findById(id.id());
    }

    @Override
    public List<BenutzerEntity> findByName(final String name) {
        return benutzerJpaRepository.findByName(name);
    }

    @Override
    public Optional<BenutzerEntity> findByLogin(final String login) {
        return benutzerJpaRepository.findByLogin(login);
    }

    @Override
    public BenutzerEntity save(final BenutzerEntity benutzerEntity) {
        return benutzerJpaRepository.save(benutzerEntity);
    }

    @Override
    public void delete(final BenutzerEntity benutzerEntity) {
        benutzerJpaRepository.delete(benutzerEntity);
    }

    @Override
    public void deleteById(final Identifiable.Id id) {
        benutzerJpaRepository.deleteById(id.id());
    }

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