package io.delphiplatform.api.v3.model;

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

/**
 * Available `include` values for tracklists of playlists
 */
public enum IncludeTracklistPlaylist {

    PLAYLISTS("playlists"),

    STREAMS("streams"),

    TRACK_INFO("track_info"),

    GRAS_TRACK_INFO("gras_track_info"),

    STREAMS_FOR_PERIOD("streams_for_period"),

    META_OWNER_CATEGORIES("meta_owner_categories"),

    PLAYLIST_DATES("playlist_dates"),

    NUM_TRACKS("num_tracks"),

    DSP_SYNC_DATE_TIME("dsp_sync_date_time");

    private final String value;

    IncludeTracklistPlaylist(String value) {
        this.value = value;
    }

    @JsonCreator
    public static IncludeTracklistPlaylist fromValue(String value) {
        for (IncludeTracklistPlaylist b : IncludeTracklistPlaylist.values()) {
            if (b.value.equals(value)) {
                return b;
            }
        }
        return null;
    }

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

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