package org.example;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Avaliacao {
private Cliente cliente;
private Funcionario funcionario;
private int idade;
private double peso;
private String sexo;
private String data;
private double altura;
private double massaMuscular;
private double imc;
private double percentualGordura;
public Avaliacao(Cliente cliente, Funcionario funcionario, int idade, double peso, String sexo, String data, double altura) {
this.cliente = cliente;
this.funcionario = funcionario;
this.idade = idade;
this.peso = peso;
this.sexo = sexo;
this.data = data;
this.altura = altura;
}
//getters e setters
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
public double getMassaMuscular() {
return massaMuscular;
}
public void setMassaMuscular(double massaMuscular) {
this.massaMuscular = massaMuscular;
}
public double getImc() {
return imc;
}
public void setImc(double imc) {
this.imc = imc;
}
public double getPercentualGordura() {
return percentualGordura;
}
public void setPercentualGordura(double percentualGordura) {
this.percentualGordura = percentualGordura;
}
//metodos
// Método para converter a data de String para Date
public Date getDataAsDate() throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
return formatter.parse(this.data);
}
//metodo calcular IMC
private double calcularIMC() {
return peso / (altura * altura);
}
//metodo calcular massa muscular (forma simplificada)
private double calcularMassaMuscular() {
return peso * (1 - percentualGordura / 100);
}
//metodo calcular % de gordura (formula simplificada)
private double calcularPercentualGordura() {
// usando IMC, idade e sexo (simplificado)
double fatorSexo = sexo.equalsIgnoreCase("masculino") ? 10.8 : 0;
return (1.2 * imc) + (0.23 * idade) - fatorSexo - 5.4;
}
public void atualizarCalculos() {
this.imc = calcularIMC();
this.massaMuscular = calcularMassaMuscular();
this.percentualGordura = calcularPercentualGordura();
}
@Override
public String toString() {
return "=================" +
"\n cliente=" + cliente +
"\n funcionario=" + funcionario +
"\n idade=" + idade +
"\n peso=" + peso +
"\n sexo='" + sexo + '\'' +
"\n data='" + data + '\'' +
"\n altura=" + altura +
"\n massaMuscular=" + massaMuscular +
"\n imc=" + imc +
"\n percentualGordura=" + percentualGordura;
}
}