package fassade; import backend.medium.Medien; import backend.benutzer.*; import java.time.LocalDate; import java.util.List; public class Fassade { private final Verwaltung verwaltung; private LocalDate aktuellesDatum; // Konstruktor public Fassade(Verwaltung verwaltung) { this.verwaltung = verwaltung; this.aktuellesDatum = LocalDate.now(); // Initiales Datum ist das heutige Datum } // Benutzer registrieren public void registriereBenutzer(Benutzer benutzer) { verwaltung.addBenutzer(benutzer); // Benutzer zur fassade.Verwaltung hinzufügen } // Benutzer anmelden public Benutzer anmeldenBenutzer(int kundennummer) { return verwaltung.benutzerListe.stream() .filter(b -> b.getKundennummer() == kundennummer) .findFirst() .orElse(null); // Gibt null zurück, wenn Benutzer nicht gefunden wurde } // backend.medium.Medien durchsuchen public List durchsuchenMedien(String suchbegriff) { // Rufe die Methode in der fassade.Verwaltung auf und übergebe die medienListe return verwaltung.durchsuchenMedien(verwaltung.mediensListe, suchbegriff); } // backend.medium.Medien ausleihen public void ausleihen(int medienId, Benutzer benutzer, LocalDate ausleihDatum, LocalDate rueckgabeDatum) { Medien medien = verwaltung.mediensListe.stream() .filter(m -> m.getId() == medienId) .findFirst() .orElse(null); if (medien != null) { verwaltung.addAL(medien, benutzer, ausleihDatum, rueckgabeDatum); // Leihe das Medium aus } else { System.out.println("backend.medium.Medien nicht gefunden."); } } // backend.medium.Medien zurückgeben public void rueckgabe(int medienId, Benutzer benutzer, LocalDate rueckgabeDatum) { verwaltung.rueckgabe(medienId, benutzer, rueckgabeDatum); // Rückgabe des Mediums } // backend.medium.Medien verlängern public void verlaengern(int medienId, Benutzer benutzer) { Medien medien = verwaltung.mediensListe.stream() .filter(m -> m.getId() == medienId) .findFirst() .orElse(null); if (medien != null) { verwaltung.verlängern(medien, benutzer); // Verlängere die Leihfrist } else { System.out.println("backend.medium.Medien nicht gefunden."); } } // Zeit verschieben public void zeitVerschieben(LocalDate neuesDatum) { this.aktuellesDatum = neuesDatum; // Aktuelles Datum auf das neue Datum setzen } // Aktuelles Datum abrufen public LocalDate getAktuellesDatum() { return aktuellesDatum; // Gibt das aktuelle Datum zurück } }