package com.borjabolufer.elevate.model;

import java.io.Serializable;

public class Usuario implements Serializable {

    private static final long serialVersionUID = 1L;

    private Sexo sexo;
    private Objetivo objetivo;
    private Intensidad intensidad;
    private Edad edad;
    private Peso peso;
    private Altura altura;
    private DiasEntrenamiento dias;

    public Usuario(Sexo sexo, Objetivo objetivo, Intensidad intensidad,
                   Edad edad, Peso peso, Altura altura, DiasEntrenamiento dias) {
        this.sexo = sexo;
        this.objetivo = objetivo;
        this.intensidad = intensidad;
        this.edad = edad;
        this.peso = peso;
        this.altura = altura;
        this.dias = dias;
    }

    public Usuario() {
    }

    public Sexo getSexo() { return sexo; }
    public Objetivo getObjetivo() { return objetivo; }
    public Intensidad getIntensidad() { return intensidad; }
    public Edad getEdad() { return edad; }
    public Peso getPeso() { return peso; }
    public Altura getAltura() { return altura; }
    public DiasEntrenamiento getDias() { return dias; }

    public void setSexo(Sexo sexo) {
        this.sexo = sexo;
    }

    public void setObjetivo(Objetivo objetivo) {
        this.objetivo = objetivo;
    }

    public void setIntensidad(Intensidad intensidad) {
        this.intensidad = intensidad;
    }

    public void setEdad(Edad edad) {
        this.edad = edad;
    }

    public void setPeso(Peso peso) {
        this.peso = peso;
    }

    public void setAltura(Altura altura) {
        this.altura = altura;
    }

    public void setDias(DiasEntrenamiento dias) {
        this.dias = dias;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("UsuarioFitness {\n");
        sb.append("  Sexo = '").append(sexo != null ? sexo.getSexo() : "N/A").append("',\n");
        sb.append("  Objetivo = '").append(objetivo != null ? objetivo.getObjetivo() : "N/A").append("',\n");
        sb.append("  Intensidad = '").append(intensidad != null ? intensidad.getIntensidad() : "N/A").append("',\n");
        sb.append("  Edad = ").append(edad != null ? edad.getEdad() : "N/A").append(",\n");
        sb.append("  Peso = ").append(peso != null ? peso.getPeso() : "N/A").append(" kg,\n");
        sb.append("  Altura = ").append(altura != null ? altura.getAltura() : "N/A").append(" cm,\n");
        sb.append("  Días de entrenamiento = ").append(dias != null ? dias.getCantidad() : "N/A").append("\n}");
        return sb.toString();
    }
}