package io.delphiplatform.api.v3.model;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

/**
 * Enum containing available `period_days` values for week ranges
 */
public enum PeriodDaysWeeks {

    DAYS_7("7 DAYS", 7),
    DAYS_14("14 DAYS", 14),
    DAYS_28("28 DAYS", 28);

    private final String value;
    private final Integer integerValue;

    PeriodDaysWeeks(String value, Integer integerValue) {
        this.value = value;
        this.integerValue = integerValue;
    }

    @JsonCreator
    public static PeriodDaysWeeks fromValue(String value) {
        for (PeriodDaysWeeks b : PeriodDaysWeeks.values()) {
            if (b.value.equals(value)) {
                return b;
            }
        }
        throw new IllegalArgumentException("Unexpected value '" + value + "'");
    }

    public static PeriodDaysWeeks fromIntegerValue(Integer integerValue) {
        for (PeriodDaysWeeks b : PeriodDaysWeeks.values()) {
            if (b.integerValue.equals(integerValue)) {
                return b;
            }
        }
        throw new IllegalArgumentException("Unexpected integer value '" + integerValue + "'");
    }

    public Integer getIntegerValue() {
        return integerValue;
    }

    @JsonValue
    public String getValue() {
        return value;
    }

    @Override
    public String toString() {
        return value;
    }
}

