package com.plannaplan.services; import java.util.List; import java.util.Optional; import com.plannaplan.entities.Commision; import com.plannaplan.entities.User; import com.plannaplan.repositories.AssignmentRepository; import com.plannaplan.repositories.CommisionRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class CommisionService { @Autowired private CommisionRepository repo; @Autowired private AssignmentRepository aRepository; public CommisionService() { } public Commision save(Commision commision) { Optional lastCommision = this.getNewestCommision(commision.getCommisionOwner()); if (lastCommision.isPresent()) { final Commision lastCom = lastCommision.get(); lastCom.getAssignments().forEach(assignment -> { assignment.setPastAssignment(true); this.aRepository.save(assignment); }); } this.repo.save(commision); return commision; } public List getUsersCommisions(User user) { return this.repo.getUsers(user.getId()); } public Optional getNewestCommision(User user) { return this.repo.getNewestCommision(user.getId()).stream().findFirst(); } public long getCommisionsAmmount() { return this.repo.count(); } }