/*
 * Jellyfin API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 10.11.6
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

package org.openhab.binding.jellyfin.internal.gen.current.model;

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

/**
 * Used to control the data that gets attached to DtoBaseItems.
 */
public enum ItemFields {
    AIR_TIME("AirTime"),
    CAN_DELETE("CanDelete"),
    CAN_DOWNLOAD("CanDownload"),
    CHANNEL_IMAGE("ChannelImage"),
    CHANNEL_INFO("ChannelInfo"),
    CHAPTERS("Chapters"),
    CHILD_COUNT("ChildCount"),
    CUMULATIVE_RUN_TIME_TICKS("CumulativeRunTimeTicks"),
    CUSTOM_RATING("CustomRating"),
    DATE_CREATED("DateCreated"),
    DATE_LAST_MEDIA_ADDED("DateLastMediaAdded"),
    DATE_LAST_REFRESHED("DateLastRefreshed"),
    DATE_LAST_SAVED("DateLastSaved"),
    DISPLAY_PREFERENCES_ID("DisplayPreferencesId"),
    ENABLE_MEDIA_SOURCE_DISPLAY("EnableMediaSourceDisplay"),
    ETAG("Etag"),
    EXTERNAL_URLS("ExternalUrls"),
    EXTRA_IDS("ExtraIds"),
    GENRES("Genres"),
    HEIGHT("Height"),
    IS_HD("IsHD"),
    ITEM_COUNTS("ItemCounts"),
    LOCAL_TRAILER_COUNT("LocalTrailerCount"),
    MEDIA_SOURCE_COUNT("MediaSourceCount"),
    MEDIA_SOURCES("MediaSources"),
    MEDIA_STREAMS("MediaStreams"),
    ORIGINAL_TITLE("OriginalTitle"),
    OVERVIEW("Overview"),
    PARENT_ID("ParentId"),
    PATH("Path"),
    PEOPLE("People"),
    PLAY_ACCESS("PlayAccess"),
    PRIMARY_IMAGE_ASPECT_RATIO("PrimaryImageAspectRatio"),
    PRODUCTION_LOCATIONS("ProductionLocations"),
    PROVIDER_IDS("ProviderIds"),
    RECURSIVE_ITEM_COUNT("RecursiveItemCount"),
    REFRESH_STATE("RefreshState"),
    REMOTE_TRAILERS("RemoteTrailers"),
    SEASON_USER_DATA("SeasonUserData"),
    SERIES_STUDIO("SeriesStudio"),
    SETTINGS("Settings"),
    SORT_NAME("SortName"),
    SPECIAL_EPISODE_NUMBERS("SpecialEpisodeNumbers"),
    SPECIAL_FEATURE_COUNT("SpecialFeatureCount"),
    STUDIOS("Studios"),
    TAGLINES("Taglines"),
    TAGS("Tags"),
    TRICKPLAY("Trickplay"),
    WIDTH("Width");

    private String value;

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

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

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

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

    /**
     * Convert the instance into URL query string.
     *
     * @param prefix prefix of the query string
     * @return URL query string
     */
    public String toUrlQueryString(String prefix) {
        if (prefix == null) {
            prefix = "";
        }

        return String.format(java.util.Locale.ROOT, "%s=%s", prefix, this.toString());
    }
}
