package it.integry.integrywmsnative.view.dialogs.available_items;

import it.integry.integrywmsnative.core.model.MtbAart;

public class DialogAvailableItemListModel {

    private String codMart;
    private String descrizioneEstesa;

    private boolean aggiunto;

    private boolean clickable;
    private MtbAart originalModel;

    public boolean isAggiunto() {
        return aggiunto;
    }

    public DialogAvailableItemListModel setAggiunto(boolean aggiunto) {
        this.aggiunto = aggiunto;
        return this;
    }

    public String getCodMart() {
        return codMart;
    }

    public DialogAvailableItemListModel setCodMart(String codMart) {
        this.codMart = codMart;
        return this;
    }

    public String getDescrizioneEstesa() {
        return descrizioneEstesa;
    }

    public DialogAvailableItemListModel setDescrizioneEstesa(String descrizioneEstesa) {
        this.descrizioneEstesa = descrizioneEstesa;
        return this;
    }

    public boolean isClickable() {
        return clickable;
    }

    public DialogAvailableItemListModel setClickable(boolean clickable) {
        this.clickable = clickable;
        return this;
    }

    public MtbAart getOriginalModel() {
        return originalModel;
    }

    public DialogAvailableItemListModel setOriginalModel(MtbAart originalModel) {
        this.originalModel = originalModel;
        return this;
    }

    public static DialogAvailableItemListModel fromMtbAart(MtbAart mtbAart) {
        return new DialogAvailableItemListModel()
                .setCodMart(mtbAart.getCodMart())
                .setDescrizioneEstesa(mtbAart.getDescrizioneEstesa())
                .setOriginalModel(mtbAart);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        DialogAvailableItemListModel that = (DialogAvailableItemListModel) o;

        return getOriginalModel().equals(that.getOriginalModel());
    }

    @Override
    public int hashCode() {
        return getOriginalModel().hashCode();
    }
}
