package fr.titionfire.ffsaf.domain.service; import fr.titionfire.ffsaf.data.model.ClubModel; import fr.titionfire.ffsaf.data.repository.ClubRepository; import fr.titionfire.ffsaf.net2.data.SimpleClubModel; import io.quarkus.hibernate.reactive.panache.Panache; import io.quarkus.hibernate.reactive.panache.common.WithSession; import io.quarkus.vertx.VertxContextSupport; import io.smallrye.mutiny.Uni; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import java.util.Collection; import java.util.List; @WithSession @ApplicationScoped public class ClubService { @Inject ClubRepository repository; public SimpleClubModel findByIdOptionalClub(long id) throws Throwable { return VertxContextSupport.subscribeAndAwait(() -> Panache.withTransaction(() -> repository.findById(id).map(SimpleClubModel::fromModel))); } public Collection findAllClub() throws Throwable { return VertxContextSupport.subscribeAndAwait(() -> Panache.withTransaction( () -> repository.findAll().list().map(clubModels -> clubModels.stream().map(SimpleClubModel::fromModel).toList()))); } public Uni> getAll() { return repository.listAll(); } public Uni setClubId(Long id, String id1) { return repository.findById(id).chain(clubModel -> { clubModel.setClubId(id1); return Panache.withTransaction(() -> repository.persist(clubModel)); }); } }