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;

/**
 * MaestroEmergencias generated by UDA, 05-jul-2023 13:01:03.
 * 
 * @author UDA
 */

public class MaestroEmergencias implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idTipoEmergencia46;
	private String descEs46;
	private String descEu46;
	private Date fAlta46;
	private String usuAlta46;
	private Date fModif46;
	private String usuModif46;
	private List<Emergencias> emergenciases = new ArrayList<Emergencias>();

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

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

	/**
	 * Method 'MaestroEmergencias'.
	 * 
	 * @param idTipoEmergencia46 Long
	 * @param descEs46           String
	 * @param descEu46           String
	 * @param fAlta46            Date
	 * @param usuAlta46          String
	 * @param fModif46           Date
	 * @param usuModif46         String
	 */
	public MaestroEmergencias(Long idTipoEmergencia46, String descEs46, String descEu46, Date fAlta46, String usuAlta46,
			Date fModif46, String usuModif46) {
		this.idTipoEmergencia46 = idTipoEmergencia46;
		this.descEs46 = descEs46;
		this.descEu46 = descEu46;
		this.fAlta46 = fAlta46;
		this.usuAlta46 = usuAlta46;
		this.fModif46 = fModif46;
		this.usuModif46 = usuModif46;
	}

	/**
	 * Method 'MaestroEmergencias'.
	 * 
	 * @param idTipoEmergencia46 Long
	 * @param descEs46           String
	 * @param descEu46           String
	 * @param fAlta46            Date
	 * @param usuAlta46          String
	 * @param fModif46           Date
	 * @param usuModif46         String
	 * @param emergenciases      List<Emergencias>
	 */
	public MaestroEmergencias(Long idTipoEmergencia46, String descEs46, String descEu46, Date fAlta46, String usuAlta46,
			Date fModif46, String usuModif46, List<Emergencias> emergenciases) {

		this.idTipoEmergencia46 = idTipoEmergencia46;
		this.descEs46 = descEs46;
		this.descEu46 = descEu46;
		this.fAlta46 = fAlta46;
		this.usuAlta46 = usuAlta46;
		this.fModif46 = fModif46;
		this.usuModif46 = usuModif46;
		this.emergenciases = emergenciases;
	}

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

	public Long getIdTipoEmergencia46() {
		return this.idTipoEmergencia46;
	}

	/**
	 * Method 'setIdTipoEmergencia46'.
	 *
	 * @param idTipoEmergencia46 Long
	 * @return
	 */

	public void setIdTipoEmergencia46(Long idTipoEmergencia46) {
		this.idTipoEmergencia46 = idTipoEmergencia46;
	}

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

	public String getDescEs46() {
		return this.descEs46;
	}

	/**
	 * Method 'setDescEs46'.
	 *
	 * @param descEs46 String
	 * @return
	 */

	public void setDescEs46(String descEs46) {
		this.descEs46 = descEs46;
	}

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

	public String getDescEu46() {
		return this.descEu46;
	}

	/**
	 * Method 'setDescEu46'.
	 *
	 * @param descEu46 String
	 * @return
	 */

	public void setDescEu46(String descEu46) {
		this.descEu46 = descEu46;
	}

	/**
	 * Method 'getfAlta46'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfAlta46() {
		return this.fAlta46;
	}

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

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

	public String getUsuAlta46() {
		return this.usuAlta46;
	}

	/**
	 * Method 'setUsuAlta46'.
	 *
	 * @param usuAlta46 String
	 * @return
	 */

	public void setUsuAlta46(String usuAlta46) {
		this.usuAlta46 = usuAlta46;
	}

	/**
	 * Method 'getfModif46'.
	 *
	 * @return java.util.Date
	 */

	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getfModif46() {
		return this.fModif46;
	}

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

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

	public String getUsuModif46() {
		return this.usuModif46;
	}

	/**
	 * Method 'setUsuModif46'.
	 *
	 * @param usuModif46 String
	 * @return
	 */

	public void setUsuModif46(String usuModif46) {
		this.usuModif46 = usuModif46;
	}

	/**
	 * Method 'getEmergenciases'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<Emergencias> getEmergenciases() {
		return this.emergenciases;
	}

	/**
	 * Method 'setEmergenciases'.
	 *
	 * @param emergenciases List
	 * @return
	 */
	public void setEmergenciases(List<Emergencias> emergenciases) {
		this.emergenciases = emergenciases;
	}

	/**
	 * 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(" [ idTipoEmergencia46: ").append(this.idTipoEmergencia46).append(" ]");
		result.append(", [ descEs46: ").append(this.descEs46).append(" ]");
		result.append(", [ descEu46: ").append(this.descEu46).append(" ]");
		result.append(", [ FAlta46: ").append(this.fAlta46).append(" ]");
		result.append(", [ usuAlta46: ").append(this.usuAlta46).append(" ]");
		result.append(", [ FModif46: ").append(this.fModif46).append(" ]");
		result.append(", [ usuModif46: ").append(this.usuModif46).append(" ]");
		result.append("}");
		return result.toString();
	}

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

}
