/*
 * Arrebol Consultancy copyright.
 * 
 * This code belongs to Arrebol Consultancy
 * its use, redistribution or modification are prohibited 
 * without written authorization from Arrebol Consultancy.
 */
package com.arrebol.taxiservicios.model.view;

import com.arrebol.taxiservicios.model.catalog.Location;
import com.arrebol.taxiservicios.model.enums.PersonType;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 *
 * @author Carlos Janitzio Zavala Lopez <janitzio.zavala@arrebol.com.mx>
 */
public class PersonListView implements Serializable {

    private static final long serialVersionUID = -1L;

    private String id;
    private String fullName;
    private String localNumber;
    private String mobileNumber;
    private String address;
    private String vehicles;
    private PersonType type;
    private Date admissionDate;
    private Float adeudoByCustomer;
    private Location location;
    private double saving;
    private String usuarioApp;
    private String mail;
    private Boolean ajustador;

    public Location getLocation() {
        return location;
    }

    public void setLocation(Location location) {
        this.location = location;
    }

    public String getId() {
        return id;
    }

    public PersonListView() {
    }

    /**
     *
     * @param id
     */
    public PersonListView(String id) {
        this.id = id;
    }

    /**
     *
     * @param id
     * @param fullName
     * @param localNumber
     * @param mobileNumber
     * @param address
     * @param vehicles
     */
    public PersonListView(String id, String fullName, String localNumber, String mobileNumber, String address, String vehicles) {
        this.id = id;
        this.fullName = fullName;
        this.localNumber = localNumber;
        this.mobileNumber = mobileNumber;
        this.address = address;
        this.vehicles = vehicles;
    }

    /**
     *
     * @param id
     * @param fullName
     * @param localNumber
     * @param mobileNumber
     * @param address
     * @param vehicles
     * @param admissionDate
     */
    public PersonListView(String id, String fullName, String localNumber, String mobileNumber, String address, String vehicles, Date admissionDate) {
        this.id = id;
        this.fullName = fullName;
        this.localNumber = localNumber;
        this.mobileNumber = mobileNumber;
        this.address = address;
        this.vehicles = vehicles;
        this.admissionDate = admissionDate;
    }

    /**
     *
     * @param id
     * @param fullName
     */
    public PersonListView(String id, String fullName) {
        this.id = id;
        this.fullName = fullName;
    }

    public PersonListView(String id, String fullName, String localNumber, String mobileNumber, String address, String vehicles, PersonType type, Date admissionDate, Float adeudoByCustomer, Location location, double saving, String usuarioApp, String mail, boolean ajustador) {
        this.id = id;
        this.fullName = fullName;
        this.localNumber = localNumber;
        this.mobileNumber = mobileNumber;
        this.address = address;
        this.vehicles = vehicles;
        this.type = type;
        this.admissionDate = admissionDate;
        this.adeudoByCustomer = adeudoByCustomer;
        this.location = location;
        this.saving = saving;
        this.usuarioApp = usuarioApp;
        this.mail = mail;
        this.ajustador = ajustador;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFullName() {
        return fullName;
    }

    public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    public String getLocalNumber() {
        return localNumber;
    }

    public void setLocalNumber(String localNumber) {
        this.localNumber = localNumber;
    }

    public String getMobileNumber() {
        return mobileNumber;
    }

    public void setMobileNumber(String mobileNumber) {
        this.mobileNumber = mobileNumber;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getVehicles() {
        return vehicles;
    }

    public void setVehicles(String vehicles) {
        this.vehicles = vehicles;
    }

    public PersonType getType() {
        return type;
    }

    public void setType(PersonType type) {
        this.type = type;
    }

    public Date getAdmissionDate() {
        return admissionDate;
    }

    public void setAdmissionDate(Date admissionDate) {
        this.admissionDate = admissionDate;
    }

    public Float getAdeudoByCustomer() {
        return adeudoByCustomer;
    }

    public void setAdeudoByCustomer(Float adeudoByCustomer) {
        this.adeudoByCustomer = adeudoByCustomer;
    }

    public double getSaving() {
        return saving;
    }

    public void setSaving(double saving) {
        this.saving = saving;
    }

    public String getUsuarioApp() {
        return usuarioApp;
    }

    public void setUsuarioApp(String usuarioApp) {
        this.usuarioApp = usuarioApp;
    }

    public String getMail() {
        return mail;
    }

    public void setMail(String mail) {
        this.mail = mail;
    }

    public Boolean getAjustador() {
        return ajustador;
    }

    public void setAjustador(Boolean ajustador) {
        this.ajustador = ajustador;
    }

    @Override
    public String toString() {
        return "PersonListView{" + "fullName=" + fullName + ", type=" + type + '}';
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 59 * hash + Objects.hashCode(this.id);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final PersonListView other = (PersonListView) obj;
        if (!Objects.equals(this.id, other.id)) {
            return false;
        }
        return true;
    }

}
