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

import { exists, mapValues } from '../runtime';
/**
 * Class LibrarySummary.
 * @export
 * @interface ItemCounts
 */
export interface ItemCounts {
    /**
     * Gets or sets the movie count.
     * @type {number}
     * @memberof ItemCounts
     */
    movieCount?: number;
    /**
     * Gets or sets the series count.
     * @type {number}
     * @memberof ItemCounts
     */
    seriesCount?: number;
    /**
     * Gets or sets the episode count.
     * @type {number}
     * @memberof ItemCounts
     */
    episodeCount?: number;
    /**
     * Gets or sets the artist count.
     * @type {number}
     * @memberof ItemCounts
     */
    artistCount?: number;
    /**
     * Gets or sets the program count.
     * @type {number}
     * @memberof ItemCounts
     */
    programCount?: number;
    /**
     * Gets or sets the trailer count.
     * @type {number}
     * @memberof ItemCounts
     */
    trailerCount?: number;
    /**
     * Gets or sets the song count.
     * @type {number}
     * @memberof ItemCounts
     */
    songCount?: number;
    /**
     * Gets or sets the album count.
     * @type {number}
     * @memberof ItemCounts
     */
    albumCount?: number;
    /**
     * Gets or sets the music video count.
     * @type {number}
     * @memberof ItemCounts
     */
    musicVideoCount?: number;
    /**
     * Gets or sets the box set count.
     * @type {number}
     * @memberof ItemCounts
     */
    boxSetCount?: number;
    /**
     * Gets or sets the book count.
     * @type {number}
     * @memberof ItemCounts
     */
    bookCount?: number;
    /**
     * Gets or sets the item count.
     * @type {number}
     * @memberof ItemCounts
     */
    itemCount?: number;
}

/**
 * Check if a given object implements the ItemCounts interface.
 */
export function instanceOfItemCounts(value: object): boolean {
    let isInstance = true;

    return isInstance;
}

export function ItemCountsFromJSON(json: any): ItemCounts {
    return ItemCountsFromJSONTyped(json, false);
}

export function ItemCountsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ItemCounts {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        
        'movieCount': !exists(json, 'MovieCount') ? undefined : json['MovieCount'],
        'seriesCount': !exists(json, 'SeriesCount') ? undefined : json['SeriesCount'],
        'episodeCount': !exists(json, 'EpisodeCount') ? undefined : json['EpisodeCount'],
        'artistCount': !exists(json, 'ArtistCount') ? undefined : json['ArtistCount'],
        'programCount': !exists(json, 'ProgramCount') ? undefined : json['ProgramCount'],
        'trailerCount': !exists(json, 'TrailerCount') ? undefined : json['TrailerCount'],
        'songCount': !exists(json, 'SongCount') ? undefined : json['SongCount'],
        'albumCount': !exists(json, 'AlbumCount') ? undefined : json['AlbumCount'],
        'musicVideoCount': !exists(json, 'MusicVideoCount') ? undefined : json['MusicVideoCount'],
        'boxSetCount': !exists(json, 'BoxSetCount') ? undefined : json['BoxSetCount'],
        'bookCount': !exists(json, 'BookCount') ? undefined : json['BookCount'],
        'itemCount': !exists(json, 'ItemCount') ? undefined : json['ItemCount'],
    };
}

export function ItemCountsToJSON(value?: ItemCounts | null): any {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        
        'MovieCount': value.movieCount,
        'SeriesCount': value.seriesCount,
        'EpisodeCount': value.episodeCount,
        'ArtistCount': value.artistCount,
        'ProgramCount': value.programCount,
        'TrailerCount': value.trailerCount,
        'SongCount': value.songCount,
        'AlbumCount': value.albumCount,
        'MusicVideoCount': value.musicVideoCount,
        'BoxSetCount': value.boxSetCount,
        'BookCount': value.bookCount,
        'ItemCount': value.itemCount,
    };
}

