package com.ejie.ad74a.model.avisos;

import java.util.Date;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * AvisosBajaBenef
 * 
 * @author UDA
 */

@XmlRootElement(name = "AvisosBajaBenef")
@XmlType(propOrder = { "idAviso", "idMotivobaja", "idLlamada", "canalComunicacion", "mantenerInst",
		"origenComunicacion", "observaciones", "fecBaja" })
public class AvisosBajaBenef implements java.io.Serializable {

	public AvisosBajaBenef(Long idAviso, Long idMotivobaja, String idLlamada, Integer canalComunicacion,
			Integer mantenerInst, Integer origenComunicacion, String observaciones, Date fecBaja) {
		super();
		this.idAviso = idAviso;
		this.idMotivobaja = idMotivobaja;
		this.idLlamada = idLlamada;
		this.canalComunicacion = canalComunicacion;
		this.setMantenerInst(mantenerInst);
		this.origenComunicacion = origenComunicacion;
		this.observaciones = observaciones;
		this.fecBaja = fecBaja;
	}

	private static final long serialVersionUID = 1L;
	private Long idAviso;
	private Long idMotivobaja;
	private String idLlamada;
	private Integer canalComunicacion;
	private Integer mantenerInst;
	private Integer origenComunicacion;
	private String observaciones;
	private Date fecBaja;

	public Long getIdAviso() {
		return idAviso;
	}

	public void setIdAviso(Long idAviso) {
		this.idAviso = idAviso;
	}

	@XmlElement(name = "idMotivobaja", nillable = true)
	public Long getIdMotivobaja() {
		return idMotivobaja;
	}

	public void setIdMotivobaja(Long idMotivobaja) {
		this.idMotivobaja = idMotivobaja;
	}

	@XmlElement(name = "idLlamada", nillable = true)
	public String getIdLlamada() {
		return idLlamada;
	}

	public void setIdLlamada(String idLlamada) {
		this.idLlamada = idLlamada;
	}

	@XmlElement(name = "canalComunicacion", nillable = true)
	public Integer getCanalComunicacion() {
		return canalComunicacion;
	}

	public void setCanalComunicacion(Integer canalComunicacion) {
		this.canalComunicacion = canalComunicacion;
	}

	@XmlElement(name = "origenComunicacion", nillable = true)
	public Integer getOrigenComunicacion() {
		return origenComunicacion;
	}

	public void setOrigenComunicacion(Integer origenComunicacion) {
		this.origenComunicacion = origenComunicacion;
	}

	@XmlElement(name = "observaciones", nillable = true)
	public String getObservaciones() {
		return observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

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

	@XmlElement(name = "mantenerInst", nillable = true)
	public Integer getMantenerInst() {
		return mantenerInst;
	}

	public void setMantenerInst(Integer mantenerInst) {
		this.mantenerInst = mantenerInst;
	}

	public void setMantenerInst(String mantenerInst) {
		if (mantenerInst.equals("on")) {
			this.mantenerInst = 1;
		} else {
			this.mantenerInst = 0;
		}

	}

	@JsonSerialize(using = JsonDateSerializer.class)
	@XmlElement(name = "fecBaja", nillable = true)
	public Date getFecBaja() {
		return fecBaja;
	}

	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecBaja(Date fecBaja) {
		this.fecBaja = fecBaja;
	}

}
