package com.ejie.ad74a.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.context.i18n.LocaleContextHolder;

import com.ejie.ad74a.constantes.Constantes;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * Dispositivos generated by UDA, 21-mar-2023 11:41:04.
 * 
 * @author UDA
 */

public class Dispositivos implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idDispositivo35;
	private String descEs35;
	private String descEu35;
	private Integer usoDispositivo35;
	private List<DispValoraciones> dispValoracioneses = new ArrayList<DispValoraciones>();
	private String usuAlta35;
	private Date fAlta35;

	/**
	 * Method 'Dispositivos'.
	 */
	public Dispositivos() {
	}

	/**
	 * Method 'Dispositivos'.
	 * 
	 * @param idDispositivo35 Long
	 */
	public Dispositivos(Long idDispositivo35) {
		this.idDispositivo35 = idDispositivo35;
	}

	/**
	 * Method 'Dispositivos'.
	 * 
	 * @param idDispositivo35  Long
	 * @param descEs35         String
	 * @param descEu35         String
	 * @param usoDispositivo35 Integer
	 * @param usuAlta35        String
	 * @param fAlta35          Date
	 */
	public Dispositivos(Long idDispositivo35, String descEs35, String descEu35, Integer usoDispositivo35,
			String usuAlta35, Date fAlta35) {
		this.idDispositivo35 = idDispositivo35;
		this.descEs35 = descEs35;
		this.descEu35 = descEu35;
		this.usoDispositivo35 = usoDispositivo35;
		this.usuAlta35 = usuAlta35;
		this.fAlta35 = fAlta35;
	}

	/**
	 * Method 'Dispositivos'.
	 * 
	 * @param idDispositivo35    Long
	 * @param descEs35           String
	 * @param descEu35           String
	 * @param usoDispositivo35   Integer
	 * @param usuAlta35          String
	 * @param fAlta35            Date
	 * @param dispValoracioneses List<DispValoraciones>
	 */
	public Dispositivos(Long idDispositivo35, String descEs35, String descEu35, Integer usoDispositivo35,
			String usuAlta35, Date fAlta35, List<DispValoraciones> dispValoracioneses) {

		this.idDispositivo35 = idDispositivo35;
		this.descEs35 = descEs35;
		this.descEu35 = descEu35;
		this.usoDispositivo35 = usoDispositivo35;
		this.dispValoracioneses = dispValoracioneses;
		this.usuAlta35 = usuAlta35;
		this.fAlta35 = fAlta35;
	}

	/**
	 * Method 'getIdDispositivo35'.
	 *
	 * @return Long
	 */

	public Long getIdDispositivo35() {
		return this.idDispositivo35;
	}

	/**
	 * Method 'setIdDispositivo35'.
	 *
	 * @param idDispositivo35 Long
	 * @return
	 */

	public void setIdDispositivo35(Long idDispositivo35) {
		this.idDispositivo35 = idDispositivo35;
	}

	/**
	 * Method 'getDescEs35'.
	 *
	 * @return String
	 */

	public String getDescEs35() {
		return this.descEs35;
	}

	/**
	 * Method 'setDescEs35'.
	 *
	 * @param descEs35 String
	 * @return
	 */

	public void setDescEs35(String descEs35) {
		this.descEs35 = descEs35;
	}

	/**
	 * Method 'getDescEu35'.
	 *
	 * @return String
	 */

	public String getDescEu35() {
		return this.descEu35;
	}

	/**
	 * Method 'setDescEu35'.
	 *
	 * @param descEu35 String
	 * @return
	 */

	public void setDescEu35(String descEu35) {
		this.descEu35 = descEu35;
	}

	/**
	 * Method 'getDispValoracioneses'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<DispValoraciones> getDispValoracioneses() {
		return this.dispValoracioneses;
	}

	/**
	 * Method 'setDispValoracioneses'.
	 *
	 * @param dispValoracioneses List
	 * @return
	 */
	public void setDispValoracioneses(List<DispValoraciones> dispValoracioneses) {
		this.dispValoracioneses = dispValoracioneses;
	}

	/**
	 * Intended only for logging and debugging.
	 * 
	 * Here, the contents of every main field are placed into the result.
	 * 
	 * @return String
	 */
	@Override
	public String toString() {
		StringBuilder result = new StringBuilder();
		result.append(this.getClass().getName()).append(" Object { ");
		result.append(" [ idDispositivo35: ").append(this.idDispositivo35).append(" ]");
		result.append(", [ descEs35: ").append(this.descEs35).append(" ]");
		result.append(", [ descEu35: ").append(this.descEu35).append(" ]");
		result.append(", [ usoDispositivo35: ").append(this.usoDispositivo35).append(" ]");
		result.append(", [ usuAlta35: ").append(this.usuAlta35).append(" ]");
		result.append(", [ fAlta35: ").append(this.fAlta35).append(" ]");
		result.append(", [ dispValoracioneses: ").append(this.dispValoracioneses).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getfAlta35'.
	 *
	 * @return java.util.Date
	 */
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfAlta35() {
		return this.fAlta35;
	}

	/**
	 * Method 'setFAlta35'.
	 *
	 * @param fAlta05 java.util.Date
	 * @return
	 */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setfAlta35(Date fAlta35) {
		this.fAlta35 = fAlta35;
	}

	/**
	 * Method 'getUsuAlta35'.
	 *
	 * @return String
	 */
	public String getUsuAlta35() {
		return usuAlta35;
	}

	/**
	 * Method 'setUsuAlta35'.
	 *
	 * @param usuAlta35 String
	 * @return
	 */
	public void setUsuAlta35(String usuAlta35) {
		this.usuAlta35 = usuAlta35;
	}

	/**
	 * Method 'getDesc'.
	 *
	 * @return String
	 */
	public String getDesc() {
		if (LocaleContextHolder.getLocale().getLanguage().equalsIgnoreCase(Constantes.LOCALE_ES.getLanguage())) {
			return this.getDescEs35();
		} else if (LocaleContextHolder.getLocale().getLanguage().equalsIgnoreCase(Constantes.LOCALE_EU.getLanguage())) {
			return this.getDescEu35();
		}
		return "";
	}

	/**
	 * Method 'getUsoDispositivo35'.
	 *
	 * @return Integer
	 */
	public Integer getUsoDispositivo35() {
		return usoDispositivo35;
	}

	/**
	 * Method 'setUsoDispositivo35'.
	 *
	 * @param usoDispositivo35 Integer
	 * @return
	 */
	public void setUsoDispositivo35(Integer usoDispositivo35) {
		this.usoDispositivo35 = usoDispositivo35;
	}
}
