<?php

class Seguro_Service_VistoriaPrevia
{
    public function dataAgendamentoValida(int $idProposta, Agro_Utils_Date $dataAgendamento): bool
    {
        $rowProposta = (new Seguro_Model_Propostas())->fetchRow(["id = {$idProposta}"]);

        if (!empty($rowProposta['dt_transmissao'])) {
            $dataTransmissao = Agro_Utils_Date::create($rowProposta['dt_transmissao']);

            if ($dataAgendamento->isEarlier($dataTransmissao)) {
                return false;
            }
        }

        $rowsItensSegurados = (new Seguro_Model_ItensSegurados())->getAllByProposta($idProposta);

        foreach ($rowsItensSegurados as $itemSegurado) {
            if (!empty($itemSegurado['dt_semeadura'])) {
                $dataPlantio = Agro_Utils_Date::create($itemSegurado['dt_semeadura']);

                if ($dataAgendamento->isEarlier($dataPlantio)) {
                    return false;
                }
            }
        }

        return true;
    }
}