# ALL - returns all sound recordings of a chart
# ENTRY - returns only entry and reentry sound recordings
# MAJOR_MOVE - returns sound recordings where trend >= 5, means the track moved 5 or more positions up or down in a chart
enum ChartSoundRecordingsItemsFilter {
    ALL
    ENTRY
    MAJOR_MOVE
}

type Query {
    analyticFeedStatuses: AnalyticFeedStatusesResult!
    chartAvailableDatesV2(chartId: ID!): [String!]!
        @deprecated(reason: "Use `ChartV2.dates` with a `limit` of 1.")
    chartRankingsInCatalogV2(
        chartId: String!
        chartDate: String!
        limit: Int! = 200
        offset: Int! = 0
    ): [ChartRankingV2!]!
        @cacheControl(scope: PRIVATE)
        @deprecated(reason: "Use `ChartV2Date.placements`.")
    chartRankingsV2(
        chartId: String!
        chartDate: String!
        limit: Int! = 200
        offset: Int! = 0
    ): [ChartRankingV2!]! @deprecated(reason: "Use `ChartV2Date.placements`.")
    chartSoundRecordings(
        countryCode: String!
        definitionKey: String!
        filterItems: ChartSoundRecordingsItemsFilter! = ALL
    ): [ChartRankingV2!]!
        @deprecated(
            reason: """
            Use `ChartV2Date.placements`.

            `filterItems: ENTRY` can be replaced with:
            ```
                filter: {
                    positionChange: {
                        eq: null
                    }
                }
            ```

            `filterItems: MAJOR_MOVE` can be replaced with:
            ```
                filter: {
                    positionChangeAbs: {
                        gt: 5
                    }
                }
                order: {
                    by: POSITION_CHANGE
                    order: DESC
                }
            ```
            """
        )
    chartsByPlatforms(platforms: [PlatformName!]): ChartsByPlatformsResults!
    chartsV2: [ChartV2!]!
    chartsV2ByDefinition(
        platform: String!
        target: String!
        frequency: String!
        countryCode: String
        type: String
        genre: String
    ): [ChartV2!]!
    chartsV2GroupBySlug(slug: String!): ChartV2Group
    marketRanks(storeIds: [Int!]): [MarketRank!]!
    newMusicFridayByDate(date: Date): NewMusicFridayDate
    newMusicFridayDates(limit: Int): [NewMusicFridayDate!]!
    playlistIds(
        includeHourly: Boolean
        includeNonPriority: Boolean
        storeIds: [Int!]
    ): [AnalyticsPlaylistId!]!
    topAccounts(
        limit: Int
        offset: Int
        orderDir: String
        orderBy: String
        storeIds: [Int]
        countries: [String!]
        labelIds: [Int!]
        subaccountIds: [Int!]
        companyBrand: String
        parentCompanyId: String
        serviceTier: String
        labelManager: String
        includeSubaccounts: Boolean
    ): AccountResults!
    topGlobalSoundRecordingFamilies(
        pagination: TopGlobalSoundRecordingFamiliesPaginationInput! = {}
        filter: GlobalSoundRecordingFamilyAnalyticsFilterInput!
    ): GlobalSoundRecordingFamilyResults!
}
