Files
rkm-conectasus-ci-sandbox/api/app/Rules/AtencaoBasica/Exportacao/FabricanteIsValid.php
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

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.';
}
}