<?php

namespace App\EntityListener;

use App\Entity\Negotiation;
use App\Entity\Research;
use Doctrine\ORM\Mapping as ORM;

final class ResearchListener
{
    /**
     * @param Research $research
     * @ORM\PrePersist()
     * @ORM\PreUpdate()
     */
    public function removeProspectsWhichExistInNegotiations(Research $research)
    {
        $prospectsFromNegotiations = $research->getNegotiations()->map(function (Negotiation $negotiation) {
            return $negotiation->getProspect();
        });

        foreach ($research->getProspects() as $prospect) {
            if ($prospectsFromNegotiations->contains($prospect)) {
                $research->removeProspect($prospect);
            }
        }
    }
}
