package com.ejie.ad74a.model;

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

import com.ejie.ad74a.util.Utilidades;
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;

/**
 * Pagos generated by UDA, 15-sep-2023 12:25:35.
 * 
 * @author UDA
 */

public class Pagos implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private Long idPago74;
	private Long anyoPago74;
	private String mesPago74;
	private PrestadorServicio prestadorServicio;
	private Date fAlta74;
	private String usuAlta74;
	private Date fModif74;
	private String usuModif74;
	private Long numBenef;
	private Long numDias;
	private Double tarifa;
	private Long numTarifas;
	private Double total;
	private List<PagosBeneficiario> pagosBeneficiarios = new ArrayList<PagosBeneficiario>();

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

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

	/**
	 * Method 'Pagos'.
	 * 
	 * @param idPago74          Long
	 * @param anyoPago74        Long
	 * @param mesPago74         Long
	 * @param prestadorServicio PrestadorServicio
	 * @param fAlta74           Date
	 * @param usuAlta74         String
	 * @param fModif74          Date
	 * @param usuModif74        String
	 */
	public Pagos(Long idPago74, Long anyoPago74, String mesPago74, PrestadorServicio prestadorServicio, Date fAlta74,
			String usuAlta74, Date fModif74, String usuModif74) {
		this.idPago74 = idPago74;
		this.anyoPago74 = anyoPago74;
		this.mesPago74 = mesPago74;
		this.prestadorServicio = prestadorServicio;
		this.fAlta74 = fAlta74;
		this.usuAlta74 = usuAlta74;
		this.fModif74 = fModif74;
		this.usuModif74 = usuModif74;
	}

	/**
	 * Method 'Pagos'.
	 * 
	 * @param idPago74          Long
	 * @param anyoPago74        Long
	 * @param mesPago74         Long
	 * @param prestadorServicio PrestadorServicio
	 * @param fAlta74           Date
	 * @param usuAlta74         String
	 * @param fModif74          Date
	 * @param usuModif74        String
	 * @param numbenef          long
	 * @param numdias           long
	 * @param tarifa            Double
	 * @param numTarifas        Long
	 * @param total             Long
	 */
	public Pagos(Long idPago74, Long anyoPago74, String mesPago74, PrestadorServicio prestadorServicio, Date fAlta74,
			String usuAlta74, Date fModif74, String usuModif74, long numbenef, long numdias, Double tarifa,
			Long numTarifas, Double total) {
		this.idPago74 = idPago74;
		this.anyoPago74 = anyoPago74;
		this.mesPago74 = mesPago74;
		this.prestadorServicio = prestadorServicio;
		this.fAlta74 = fAlta74;
		this.usuAlta74 = usuAlta74;
		this.fModif74 = fModif74;
		this.usuModif74 = usuModif74;
		this.numBenef = numbenef;
		this.numDias = numdias;
		this.tarifa = tarifa;
		this.numTarifas = numTarifas;
		this.total = total;
	}

	/**
	 * Method 'Pagos'.
	 * 
	 * @param idPago74           Long
	 * @param anyoPago74         Long
	 * @param mesPago74          Long
	 * @param prestadorServicio  PrestadorServicio
	 * @param fAlta74            Date
	 * @param usuAlta74          String
	 * @param fModif74           Date
	 * @param usuModif74         String
	 * @param pagosBeneficiarios List<PagosBeneficiario>
	 */
	public Pagos(Long idPago74, Long anyoPago74, String mesPago74, PrestadorServicio prestadorServicio, Date fAlta74,
			String usuAlta74, Date fModif74, String usuModif74, List<PagosBeneficiario> pagosBeneficiarios) {

		this.idPago74 = idPago74;
		this.anyoPago74 = anyoPago74;
		this.mesPago74 = mesPago74;
		this.prestadorServicio = prestadorServicio;
		this.fAlta74 = fAlta74;
		this.usuAlta74 = usuAlta74;
		this.fModif74 = fModif74;
		this.usuModif74 = usuModif74;
		this.pagosBeneficiarios = pagosBeneficiarios;
	}

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

	public Long getIdPago74() {
		return this.idPago74;
	}

	/**
	 * Method 'setIdPago74'.
	 *
	 * @param idPago74 Long
	 * @return
	 */

	public void setIdPago74(Long idPago74) {
		this.idPago74 = idPago74;
	}

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

	public Long getAnyoPago74() {
		return this.anyoPago74;
	}

	/**
	 * Method 'setAnyoPago74'.
	 *
	 * @param anyoPago74 Long
	 * @return
	 */

	public void setAnyoPago74(Long anyoPago74) {
		this.anyoPago74 = anyoPago74;
	}

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

	public String getMesPago74() {
		return this.mesPago74;
	}

	/**
	 * Method 'setMesPago74'.
	 *
	 * @param mesPago74 Long
	 * @return
	 */

	public void setMesPago74(String mesPago74) {
		this.mesPago74 = mesPago74;
	}

	/**
	 * Method 'getPrestadorServicio'.
	 *
	 * @return PrestadorServicio
	 */

	public PrestadorServicio getPrestadorServicio() {
		return this.prestadorServicio;
	}

	/**
	 * Method 'setPrestadorServicio'.
	 *
	 * @param prestadorServicio PrestadorServicio
	 * @return
	 */

	public void setPrestadorServicio(PrestadorServicio prestadorServicio) {
		this.prestadorServicio = prestadorServicio;
	}

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

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

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

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

	public String getUsuAlta74() {
		return this.usuAlta74;
	}

	/**
	 * Method 'setUsuAlta74'.
	 *
	 * @param usuAlta74 String
	 * @return
	 */

	public void setUsuAlta74(String usuAlta74) {
		this.usuAlta74 = usuAlta74;
	}

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

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

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

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

	public String getUsuModif74() {
		return this.usuModif74;
	}

	/**
	 * Method 'setUsuModif74'.
	 *
	 * @param usuModif74 String
	 * @return
	 */

	public void setUsuModif74(String usuModif74) {
		this.usuModif74 = usuModif74;
	}

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

	public Long getNumBenef() {
		return numBenef;
	}

	/**
	 * Method 'setNumBenef'.
	 *
	 * @param numBenef Long
	 * @return
	 */

	public void setNumBenef(Long numBenef) {
		this.numBenef = numBenef;
	}

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

	public Long getNumDias() {
		return numDias;
	}

	/**
	 * Method 'setNumDias'.
	 *
	 * @param numDias Long
	 * @return
	 */

	public void setNumDias(Long numDias) {
		this.numDias = numDias;
	}

	/**
	 * Method 'getTarifa'.
	 *
	 * @return Double
	 */
	public Double getTarifa() {
		return tarifa;
	}

	/**
	 * Method 'setTarifa'.
	 *
	 * @param tarifa Double
	 * @return
	 */
	public void setTarifa(Double tarifa) {
		this.tarifa = tarifa;
	}

	/**
	 * Method 'getNumTarifas'.
	 *
	 * @return Long
	 */
	public Long getNumTarifas() {
		return numTarifas;
	}

	/**
	 * Method 'setNumTarifas'.
	 *
	 * @param numTarifas Long
	 * @return
	 */
	public void setNumTarifas(Long numTarifas) {
		this.numTarifas = numTarifas;
	}

	/**
	 * Method 'getTotal'.
	 *
	 * @return Long
	 */
	public Double getTotal() {
		return total;
	}

	/**
	 * Method 'setTotal'.
	 *
	 * @param total Double
	 * @return
	 */
	public void setTotal(Double total) {
		this.total = total;
	}

	/**
	 * Method 'getPagosBeneficiarios'.
	 *
	 * @return List
	 */

	@JsonIgnore
	public List<PagosBeneficiario> getPagosBeneficiarios() {
		return this.pagosBeneficiarios;
	}

	/**
	 * Method 'setPagosBeneficiarios'.
	 *
	 * @param pagosBeneficiarios List
	 * @return
	 */
	public void setPagosBeneficiarios(List<PagosBeneficiario> pagosBeneficiarios) {
		this.pagosBeneficiarios = pagosBeneficiarios;
	}

	/**
	 * 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(" [ idPago74: ").append(this.idPago74).append(" ]");
		result.append(", [ anyoPago74: ").append(this.anyoPago74).append(" ]");
		result.append(", [ mesPago74: ").append(this.mesPago74).append(" ]");
		result.append(", [ prestadorServicio: ").append(this.prestadorServicio).append(" ]");
		result.append(", [ fAlta74: ").append(this.fAlta74).append(" ]");
		result.append(", [ usuAlta74: ").append(this.usuAlta74).append(" ]");
		result.append(", [ fModif74: ").append(this.fModif74).append(" ]");
		result.append(", [ usuModif74: ").append(this.usuModif74).append(" ]");
		result.append(", [ numBenef: ").append(this.numBenef).append(" ]");
		result.append(", [ numDias: ").append(this.numDias).append(" ]");
		result.append("}");
		return result.toString();
	}

	/**
	 * Method 'getTarifaStr'.
	 *
	 * @return String
	 */
	public String getTarifaStr() {
		return Utilidades.BDto2DecimalMoneda(this.tarifa);
	}

	/**
	 * Method 'getTotalStr'.
	 *
	 * @return String
	 */
	public String getTotalStr() {
		return Utilidades.BDto2DecimalMoneda(this.total);
	}
}
