<?php

declare(strict_types=1);

namespace Xentral\Modules\TimeManagement\Wrapper;

use erpAPI;
use Xentral\Modules\TimeManagement\Exception\EmailNotSentException;
use Xentral\Modules\TimeManagement\Exception\EmailAccountNotFoundException;

final class TimeManagementMailerWrapper
{

    /** @var erpAPI erp */
    private $erp;

    /**
     * @param erpAPI $erp
     */
    public function __construct(erpAPI $erp)
    {
        $this->erp = $erp;
    }

    /**
     * @param string   $senderEmail
     * @param string[] $recipientEmails
     * @param string   $mailSubject
     * @param string   $mailContent
     *
     * @throws EmailAccountNotFoundException
     * @throws EmailNotSentException
     */
    public function send(string $senderEmail, array $recipientEmails, string $mailSubject, string $mailContent): void
    {
        foreach ($recipientEmails as $email) {
            $isSent = $this->erp->MailSend(
                $this->erp->GetFirmaMail(),
                $senderEmail,
                $email,
                '',
                $mailSubject,
                $mailContent,
                "",
                ""
            );
            if (!$isSent) {
                throw new EmailNotSentException('Mail could not be sent. More info in the logger');
            }
        }
    }
}