46 lines
2.0 KiB
PHP
46 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Rules\AtencaoBasica\Exportacao;
|
|
|
|
use App\Enums\AtencaoBasica\Exportacao\Fabricante;
|
|
use App\Enums\AtencaoBasica\Exportacao\VacinaAplicadaExterior;
|
|
use Illuminate\Contracts\Validation\Rule;
|
|
|
|
class FabricanteIsValid implements Rule
|
|
{
|
|
public function passes($attribute, $value)
|
|
{
|
|
return self::isValid($value);
|
|
}
|
|
|
|
public static function isValid($value)
|
|
{
|
|
|
|
$fabricanteVacina = [
|
|
VacinaAplicadaExterior::COVID_19_RECOMBINANTE_ASTRAZENECA_FIOCRUZ_COVISHIELD => Fabricante::OXFORD_ASTRAZENECA,
|
|
VacinaAplicadaExterior::COVID_19_INATIVADA_SINOVAC_BUTANTAN_CORONAVAC => Fabricante::SINOVAC_BUTANTAN,
|
|
VacinaAplicadaExterior::COVID_19_RNAM_PFIZER_COMIRNATY => Fabricante::PFIZER_BIONTECH,
|
|
VacinaAplicadaExterior::COVID_19_RECOMBINANTE_JANSSEN_AD26_COV2_S => Fabricante::JANSSEN_CILAG,
|
|
VacinaAplicadaExterior::COVID_19_RECOMBINANTE_ASTRAZENECA_COVAX_CHADOX1_S => Fabricante::ASTRAZENECA_CHADOX1_S,
|
|
VacinaAplicadaExterior::COVID_19_GAMALEYA_SPUTNIK_V_RECOMBINANTE => Fabricante::GAMALEYA_SPUTNIK_V,
|
|
VacinaAplicadaExterior::COVID_19_COVID_19_BHARAT_COVAXIN_INATIVADA => Fabricante::BHARAT_COVAXIN,
|
|
VacinaAplicadaExterior::COVID_19_MODERNA_RNAM => Fabricante::MODERNA,
|
|
VacinaAplicadaExterior::COVID_19_INATIVADA_SINOVAC_CORONAVAC => Fabricante::SINOVAC_CORONAVAC,
|
|
VacinaAplicadaExterior::COVID_19_RNAM_PFIZER_COMIRNATY_PEDIATRICA => Fabricante::COMIRNATY_PFIZER_BIONTECH,
|
|
VacinaAplicadaExterior::COVID_19_RNAM_PFIZER_COMIRNATY_PEDIATRICA_MENOR_5_ANOS => Fabricante::COMIRNATY_PFIZER_BIONTECH,
|
|
VacinaAplicadaExterior::COVID_19_RNAM_PFIZER_COMIRNATY_BIVALENTE => Fabricante::COMIRNATY_PFIZER_BIONTECH,
|
|
];
|
|
|
|
if (isset($fabricanteVacina[$value['vacina']]) && $value['fabricante'] != $fabricanteVacina[$value['vacina']]) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public function message()
|
|
{
|
|
return 'Dose inválida.';
|
|
}
|
|
}
|