package it.integry.integrywmsnative.core.REST.model;

public class DistribuzioneColloDTO {

    private String gestione;
    private String dataCollo;
    private Integer numCollo;
    private String serCollo;
    private String criterioDistribuzione;

    public String getGestione() {
        return gestione;
    }

    public DistribuzioneColloDTO setGestione(String gestione) {
        this.gestione = gestione;
        return this;
    }

    public String getDataCollo() {
        return dataCollo;
    }

    public DistribuzioneColloDTO setDataCollo(String dataCollo) {
        this.dataCollo = dataCollo;
        return this;
    }

    public Integer getNumCollo() {
        return numCollo;
    }

    public DistribuzioneColloDTO setNumCollo(Integer numCollo) {
        this.numCollo = numCollo;
        return this;
    }

    public String getSerCollo() {
        return serCollo;
    }

    public DistribuzioneColloDTO setSerCollo(String serCollo) {
        this.serCollo = serCollo;
        return this;
    }

    public String getCriterioDistribuzione() {
        return criterioDistribuzione;
    }

    public CriterioDistribuzione getCriterioDistribuzioneEnum() {
        return CriterioDistribuzione.fromString(criterioDistribuzione);
    }

    public DistribuzioneColloDTO setCriterioDistribuzione(String criterioDistribuzione) {
        this.criterioDistribuzione = criterioDistribuzione;
        return this;
    }

    public DistribuzioneColloDTO setCriterioDistribuzione(CriterioDistribuzione criterioDistribuzione) {
        this.criterioDistribuzione = criterioDistribuzione != null ? criterioDistribuzione.getText() : null;
        return this;
    }

    public enum CriterioDistribuzione {
        UPDATE("U"), //UPDATE COLLO GIA' ESISTENTE
        SPLIT_ORDINE("O"); //UPDATE COLLO GIA' ESISTENTE

        private String text;
        CriterioDistribuzione(String text) {
            this.text = text;
        }
        public String getText() {
            return this.text;
        }

        public static CriterioDistribuzione fromString(String text) {
            for (CriterioDistribuzione b : CriterioDistribuzione.values()) {
                if (b.text.equalsIgnoreCase(text)) return b;
            }
            return null;
        }
    }
}
