package de.accso.flexinale.application.services;

import de.accso.flexinale.domain.model.Besucher;
import de.accso.flexinale.domain.model.Film;
import de.accso.flexinale.domain.model.Vorfuehrung;
import de.accso.flexinale.shared_kernel.Identifiable;
import jakarta.transaction.Transactional;

import java.util.List;

@Transactional
public class FilmService {

    private final de.accso.flexinale.domain.services.FilmService filmService;

    public FilmService(de.accso.flexinale.domain.services.FilmService filmService) {
       this.filmService = filmService;
    }

    public Film film(Identifiable.Id filmId) {
        return filmService.film(filmId);
    }

    public List<Film> filme() {
       return filmService.filme();
    }

    public List<Vorfuehrung> vorfuehrungenFuer(Identifiable.Id filmId) {
       return filmService.vorfuehrungenFuer(filmId);
    }

    public List<Identifiable.Id>  vorfuehrungenMitUeberlapp(List<Vorfuehrung> vorfuehrungenOfFilm, Besucher loggedinBesucher) {
       return filmService.vorfuehrungenMitUeberlapp(vorfuehrungenOfFilm, loggedinBesucher);
    }


    public List<Identifiable.Id> vorfuehrungenFuerDieDerBenutzerEinTicketHat(List<Vorfuehrung> vorfuehrungenOfFilm, Besucher loggedinBesucher) {
       return filmService.vorfuehrungenFuerDieDerBenutzerEinTicketHat(vorfuehrungenOfFilm, loggedinBesucher);
    }
}
