package com.ejie.m62fb.model;


import com.ejie.m62fb.utils.serializers.JsonBigDecimalDeserializer;
import com.ejie.m62fb.utils.serializers.JsonBigDecimalSerializer;
import com.ejie.m62fb.model.base.AbstractM62FBModel;
import com.ejie.m62fb.model.direccion.Direccion;
import com.ejie.m62fb.model.persona.Persona;
import com.ejie.m62fb.model.tipos.TipoSiNo;
import com.ejie.x38.serialization.JsonDateDeserializer;
import com.ejie.x38.serialization.JsonDateSerializer;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;

/**
 * M62r17t0- Table BD reference
 * 
XXXX
 */

public class ContratoAlquilerad extends AbstractM62FBModel implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
			//PK
            private Integer idContrato;
            
            private AlojamientoDotacional alojamientoDotacional;
            private CuentaBancaria cuentaBancaria;
            private TipoSiNo indVisado;
            private Persona pagadorRenta;
            private Direccion direccion;
            
            private Long numContrato;
            private String texObservaciones;

            private BigDecimal imcPrecioRenta;
            private BigDecimal imcFianza;
            
            private Date fecEntContrato;
            private Date fecInicio;
            private Date fecFin;            
            private Date fecVisado;
            private Date fecEmpadron;
            private Date fecEnvContrato;
            private Date fecEnvFinContrato;
            private Date fecIniFac;
            
            
            private List<InquilinoAd> inquilinoAds = new ArrayList<InquilinoAd>();

	/** 
	 * Method 'ContratoAlquilerad'.
	 */
    public ContratoAlquilerad() {
    	super();
    }
	
    
    /** 
     * Method 'ContratoAlquilerad'.
     * @param idContrato Integer
     */    
     public ContratoAlquilerad(Integer idContrato) {
    	 super();
          this.idContrato = idContrato;
	}



    /**
	 * Method 'getIdContrato'.
	 *
	 * @return Integer
	 */
	public Integer getIdContrato() {
		return this.idContrato;
	}

	/**
	 * Method 'setIdContrato'.
	 *
	 * @param idContrato Integer
	 * @return
     */
	
	public void setIdContrato(Integer idContrato) {
		this.idContrato = idContrato;
	}
    /**
	 * Method 'getAlojamientoDotacional'.
	 *
	 * @return AlojamientoDotacional
	 */
	
	public AlojamientoDotacional getAlojamientoDotacional() {
		return this.alojamientoDotacional;
	}

	/**
	 * Method 'setAlojamientoDotacional'.
	 *
	 * @param alojamientoDotacional AlojamientoDotacional
	 * @return
     */
	
	public void setAlojamientoDotacional(AlojamientoDotacional alojamientoDotacional) {
		this.alojamientoDotacional = alojamientoDotacional;
	}
    /**
	 * Method 'getNumContrato'.
	 *
	 * @return Long
	 */
	
	
	public Long getNumContrato() {
		return this.numContrato;
	}

	/**
	 * Method 'setNumContrato'.
	 *
	 * @param numContrato Long
	 * @return
     */
	
	public void setNumContrato(Long numContrato) {
		this.numContrato = numContrato;
	}
    /**
	 * Method 'getFecEntContrato'.
	 *
	 * @return java.util.Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEntContrato() {
		return this.fecEntContrato;
	}

	/**
	 * Method 'setFecEntContrato'.
	 *
	 * @param fecEntContrato java.util.Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecEntContrato(Date fecEntContrato) {
		this.fecEntContrato = fecEntContrato;
	}
    /**
	 * Method 'getFecInicio'.
	 *
	 * @return java.util.Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecInicio() {
		return this.fecInicio;
	}

	/**
	 * Method 'setFecInicio'.
	 *
	 * @param fecInicio java.util.Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecInicio(Date fecInicio) {
		this.fecInicio = fecInicio;
	}
    /**
	 * Method 'getFecFin'.
	 *
	 * @return java.util.Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecFin() {
		return this.fecFin;
	}

	/**
	 * Method 'setFecFin'.
	 *
	 * @param fecFin java.util.Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecFin(Date fecFin) {
		this.fecFin = fecFin;
	}
    
	/**
	 * Method 'getIndVisado'
	 * 
	 * @return indVisado
	 */
	public TipoSiNo getIndVisado() {
		return this.indVisado;
	}

	/**
	 * Method 'setIndVisado'
	 * 
	 * @param indVisado
	 *            TipoSiNo
	 */
	public void setIndVisado(TipoSiNo indVisado) {
		this.indVisado = indVisado;
	}
	
    /**
	 * Method 'getFecVisado'.
	 *
	 * @return java.util.Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecVisado() {
		return this.fecVisado;
	}

	/**
	 * Method 'setFecVisado'.
	 *
	 * @param fecVisado java.util.Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecVisado(Date fecVisado) {
		this.fecVisado = fecVisado;
	}
    /**
	 * Method 'getFecEmpadron'.
	 *
	 * @return java.util.Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEmpadron() {
		return this.fecEmpadron;
	}

	/**
	 * Method 'setFecEmpadron'.
	 *
	 * @param fecEmpadron java.util.Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecEmpadron(Date fecEmpadron) {
		this.fecEmpadron = fecEmpadron;
	}
   
	/**
	 * Method 'getPagadorRenta'
	 * 
	 * @return pagadorRenta
	 */
	public Persona getPagadorRenta() {
		return this.pagadorRenta;
	}

	/**
	 * Method 'setPagadorRenta'
	 * 
	 * @param pagadorRenta
	 *            Persona
	 */
	public void setPagadorRenta(Persona pagadorRenta) {
		this.pagadorRenta = pagadorRenta;
	}

	
	/**
	 * Method 'getImcPrecioRenta'
	 * 
	 * @return imcPrecioRenta
	 */
	@JsonSerialize(using = JsonBigDecimalSerializer.class)
	public BigDecimal getImcPrecioRenta() {
		return this.imcPrecioRenta;
	}

	/**
	 * Method 'setImcPrecioRenta'
	 * 
	 * @param imcPrecioRenta
	 *            BigDecimal
	 */
	@JsonDeserialize(using = JsonBigDecimalDeserializer.class)
	public void setImcPrecioRenta(BigDecimal imcPrecioRenta) {
		this.imcPrecioRenta = imcPrecioRenta;
	}
    
    /**
	 * Method 'getImcFianza'.
	 *
	 * @return BigDecimal
	 */
	@JsonSerialize(using = JsonBigDecimalSerializer.class)
	public BigDecimal getImcFianza() {
		return this.imcFianza;
	}

	/**
	 * Method 'setImcFianza'.
	 *
	 * @param imcFianza BigDecimal
	 * @return
     */
	@JsonDeserialize(using = JsonBigDecimalDeserializer.class)
	public void setImcFianza(BigDecimal imcFianza) {
		this.imcFianza = imcFianza;
	}
	
	/**
	 * Method 'getCuentaBancaria'
	 * 
	 * @return cuentaBancaria
	 */
	public CuentaBancaria getCuentaBancaria() {
		return this.cuentaBancaria;
	}

	/**
	 * Method 'setCuentaBancaria'
	 * 
	 * @param cuentaBancaria
	 *            CuentaBancaria
	 */
	public void setCuentaBancaria(CuentaBancaria cuentaBancaria) {
		this.cuentaBancaria = cuentaBancaria;
	}
	
    /**
	 * Method 'getTexObservaciones'.
	 *
	 * @return String
	 */
	
	
	public String getTexObservaciones() {
		return this.texObservaciones;
	}

	/**
	 * Method 'setTexObservaciones'.
	 *
	 * @param texObservaciones String
	 * @return
     */
	
	public void setTexObservaciones(String texObservaciones) {
		this.texObservaciones = texObservaciones;
	}
    /**
	 * Method 'getFecEnvContrato'.
	 *
	 * @return java.util.Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEnvContrato() {
		return this.fecEnvContrato;
	}

	/**
	 * Method 'setFecEnvContrato'.
	 *
	 * @param fecEnvContrato java.util.Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecEnvContrato(Date fecEnvContrato) {
		this.fecEnvContrato = fecEnvContrato;
	}
    /**
	 * Method 'getFecEnvFinContrato'.
	 *
	 * @return java.util.Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecEnvFinContrato() {
		return this.fecEnvFinContrato;
	}

	/**
	 * Method 'setFecEnvFinContrato'.
	 *
	 * @param fecEnvFinContrato java.util.Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecEnvFinContrato(Date fecEnvFinContrato) {
		this.fecEnvFinContrato = fecEnvFinContrato;
	}
    /**
	 * Method 'getFecIniFac'.
	 *
	 * @return java.util.Date
	 */
	
	@JsonSerialize(using = JsonDateSerializer.class)
	public Date getFecIniFac() {
		return this.fecIniFac;
	}

	/**
	 * Method 'setFecIniFac'.
	 *
	 * @param fecIniFac java.util.Date
	 * @return
     */
	@JsonDeserialize(using = JsonDateDeserializer.class)
	public void setFecIniFac(Date fecIniFac) {
		this.fecIniFac = fecIniFac;
	}
	/**
	 * Method 'getInquilinoAds'.
	 *
	 * @return List
	 */
	@JsonIgnore
	public List<InquilinoAd> getInquilinoAds() {
		return this.inquilinoAds;
	}
	
	/**
	 * Method 'setInquilinoAds'.
	 *
	 * @param inquilinoAds List
	 * @return
	 */
	public void setInquilinoAds(List<InquilinoAd> inquilinoAds) {
		this.inquilinoAds = inquilinoAds;
	}
	
	/**
	 * Method 'getDireccion'
	 * 
	 * @return direccion
	 */
	public Direccion getDireccion() {
		return this.direccion;
	}

	/**
	 * Method 'setDireccion'
	 * 
	 * @param direccion
	 *            Direccion
	 */
	public void setDireccion(Direccion direccion) {
		this.direccion = direccion;
	}


}

