init commit
All checks were successful
build-api-image / build (push) Successful in 51s

This commit is contained in:
Antonio Lopes dos Santos
2026-08-04 16:52:02 -03:00
commit afec302c3e
11594 changed files with 1636728 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Services\Geral;
use App\Enums\Cadastro\UnidadeMedida;
use App\Models\Geral\InterpretacaoImc;
use App\Utils\ConversaoUnidadeMedidaUtil;
class ImcService
{
public static function calculate($unidadeMedidaMassaId, $massa, $unidadeMedidaAlturaId, $altura) : array
{
if ($unidadeMedidaMassaId == UnidadeMedida::GRAMAS) {
$massa = ConversaoUnidadeMedidaUtil::gramasParaQuilogramas($massa);
}
if ($unidadeMedidaAlturaId == UnidadeMedida::CENTIMETROS) {
$altura = ConversaoUnidadeMedidaUtil::centimetrosParaMetros($altura);
}
$imc = number_format($altura == 0 ? 0 : ($massa / ($altura * $altura)), 1, '.', '');
$interpretacao = InterpretacaoImc::where('min', '<=', $imc)->where('max', '>=', $imc)->first();
return [
'imc' => $imc,
'classificacao' => $interpretacao->classificacao ?? null,
'grau_obesidade' => $interpretacao->grau_obesidade ?? null,
];
}
}