package com.ejie.ad74a.model;

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

import org.springframework.context.i18n.LocaleContextHolder;

import com.ejie.ad74a.constantes.Constantes;
import com.fasterxml.jackson.annotation.JsonIgnore;

/**
 * Estados generated by UDA, 10-feb-2023 12:13:19.
 * 
 * @author UDA
 */

public class Estados implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idEstado30;
	private String descripcionEs30;
	private String descripcionEu30;
	private Integer orden30;
	private Integer visible30;
	private List<Expedientes> expedienteses = new ArrayList<Expedientes>();

	public static final String SEQUENCE_ESTADO = "SEQ_ESTADOS.NEXTVAL";

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

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

	/**
	 * Method 'Estados'.
	 * 
	 * @param idEstado30 Long
	 * @param descEs30   String
	 * @param descEu30   String
	 */
	public Estados(Long idEstado30, String descEs30, String descEu30, Integer orden30, Integer visible30) {
		this.idEstado30 = idEstado30;
		this.descripcionEs30 = descEs30;
		this.descripcionEu30 = descEu30;
		this.orden30 = orden30;
		this.visible30 = visible30;
	}

	/**
	 * Method 'Estados'.
	 * 
	 * @param idEstado30      Long
	 * @param descripcionEs30 String
	 * @param descripcionEu30 String
	 * @param expedienteses   List<Expedientes>
	 */
	public Estados(Long idEstado30, String descripcionEs30, String descripcionEu30, List<Expedientes> expedienteses) {

		this.idEstado30 = idEstado30;
		this.descripcionEs30 = descripcionEs30;
		this.descripcionEu30 = descripcionEu30;
		this.expedienteses = expedienteses;
	}

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

	public Long getIdEstado30() {
		return this.idEstado30;
	}

	/**
	 * Method 'setIdEstado30'.
	 *
	 * @param idEstado30 Long
	 * @return
	 */

	public void setIdEstado30(Long idEstado30) {
		this.idEstado30 = idEstado30;
	}

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

	public String getDescripcionEs30() {
		return this.descripcionEs30;
	}

	/**
	 * Method 'setDescripcionEs30'.
	 *
	 * @param descripcionEs30 String
	 * @return
	 */

	public void setDescripcionEs30(String descripcionEs30) {
		this.descripcionEs30 = descripcionEs30;
	}

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

	public String getDescripcionEu30() {
		return this.descripcionEu30;
	}

	/**
	 * Method 'setDescripcionEu30'.
	 *
	 * @param descripcionEu30 String
	 * @return
	 */

	public void setDescripcionEu30(String descripcionEu30) {
		this.descripcionEu30 = descripcionEu30;
	}

	/**
	 * Method 'getExpedienteses'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Expedientes> getExpedienteses() {
		return this.expedienteses;
	}

	/**
	 * Method 'setExpedienteses'.
	 *
	 * @param expedienteses List
	 * @return
	 */
	public void setExpedienteses(List<Expedientes> expedienteses) {
		this.expedienteses = expedienteses;
	}

	/**
	 * 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(" [ idEstado30: ").append(this.idEstado30).append(" ]");
		result.append(", [ : ").append(this.descripcionEs30).append(" ]");
		result.append(", [ descEu30: ").append(this.descripcionEu30).append(" ]");
		result.append(", [ orden30: ").append(this.orden30).append(" ]");
		result.append(", [ visible30: ").append(this.visible30).append(" ]");
		result.append("}");
		return result.toString();
	}

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

	public String getDesc() {
		if (LocaleContextHolder.getLocale().getLanguage().equalsIgnoreCase(Constantes.LOCALE_ES.getLanguage())) {
			return this.getDescripcionEs30();
		} else if (LocaleContextHolder.getLocale().getLanguage().equalsIgnoreCase(Constantes.LOCALE_EU.getLanguage())) {
			return this.getDescripcionEu30();
		}
		return "";
	}

	public Integer getOrden30() {
		return orden30;
	}

	public void setOrden30(Integer orden30) {
		this.orden30 = orden30;
	}

	public Integer getVisible30() {
		return visible30;
	}

	public void setVisible30(Integer visible30) {
		this.visible30 = visible30;
	}

}
