package it.integry.integrywmsnative.core.data_store.db.entity;

import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.Index;
import androidx.room.PrimaryKey;

import it.integry.integrywmsnative.core.utility.UtilityDate;

@Entity(
        tableName = "articoli_griglia",
        indices = {
                @Index(value = "id_griglia"),
        },
        foreignKeys = {
                @ForeignKey(
                        entity = Griglia.class,
                        parentColumns = "griglia_id",
                        childColumns = "id_griglia",
                        onDelete = ForeignKey.CASCADE
                )
        }
)
public class ArticoloGriglia {
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "articolo_griglia_id")
    private int articoloGrigliaId;

    @ColumnInfo(name = "cod_mart")
    private String codMart;

    @ColumnInfo(name = "descrizione")
    private String descrizione;

    @ColumnInfo(name = "unt_mis")
    private String untMis;

    @ColumnInfo(name = "qta_cnf")
    private float qtaCnf;

    @ColumnInfo(name = "bar_code")
    private String barCode;

    @ColumnInfo(name = "merce_da_ric")
    private float merceDaRic;

    @ColumnInfo(name = "media_sett")
    private float mediaSett;

    @ColumnInfo(name = "flag_qta_multipla")
    private String flagQtaMultipla;

    @ColumnInfo(name = "qta_min_ordinabile")
    private float qtaMinOrdinabile;

    @ColumnInfo(name = "id_griglia")
    private int idGriglia;

    public int getArticoloGrigliaId() {
        return articoloGrigliaId;
    }

    public void setArticoloGrigliaId(int articoloGrigliaId) {
        this.articoloGrigliaId = articoloGrigliaId;
    }

    public String getCodMart() {
        return codMart;
    }

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

    public String getDescrizione() {
        return descrizione;
    }

    public void setDescrizione(String descrizione) {
        this.descrizione = descrizione;
    }

    public String getUntMis() {
        return untMis;
    }

    public void setUntMis(String untMis) {
        this.untMis = untMis;
    }

    public float getQtaCnf() {
        return qtaCnf;
    }

    public void setQtaCnf(float qtaCnf) {
        this.qtaCnf = qtaCnf;
    }

    public String getBarCode() {
        return barCode;
    }

    public void setBarCode(String barCode) {
        this.barCode = barCode;
    }

    public float getMerceDaRic() {
        return merceDaRic;
    }

    public void setMerceDaRic(float merceDaRic) {
        this.merceDaRic = merceDaRic;
    }

    public float getMediaSett() {
        return mediaSett;
    }

    public void setMediaSett(float mediaSett) {
        this.mediaSett = mediaSett;
    }

    public String getFlagQtaMultipla() {
        return flagQtaMultipla;
    }

    public void setFlagQtaMultipla(String flagQtaMultipla) {
        this.flagQtaMultipla = flagQtaMultipla;
    }

    public float getQtaMinOrdinabile() {
        return qtaMinOrdinabile;
    }

    public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
        this.qtaMinOrdinabile = qtaMinOrdinabile;
    }

    public int getIdGriglia() {
        return idGriglia;
    }

    public void setIdGriglia(int idGriglia) {
        this.idGriglia = idGriglia;
    }

    public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
        ArticoloOrdine articolo = new ArticoloOrdine();

        articolo.setIdOrdine(ordine.getOrdineId());

        articolo.setBarCode(this.getBarCode());
        articolo.setCodMart(this.getCodMart());
        articolo.setMediaSett(this.getMediaSett());
        articolo.setFlagQtaMultipla(this.getFlagQtaMultipla());
        articolo.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
        articolo.setMerceDaRic(this.getMerceDaRic());
        articolo.setQtaCnf(this.getQtaCnf());
        articolo.setUntMis(this.getUntMis());
        articolo.setDescrizione(this.getDescrizione());
        articolo.setDataIns(UtilityDate.getDateInstance());
        articolo.setQtaOrd(0);

        return articolo;
    }
}
