type MoneyhubRevenueByTrack {
    account: AbacusAccount!
    accountPayeeCurrency: String!
    grossRevenuePayeeCurrency: Float!
    mechanicalDeductionAmountPayeeCurrency: Float!
    netRevenuePayeeCurrency: Float!
    publisherAdminFeePayeeCurrency: Float!
    subaccount: Subaccount
    subaccountRevenue: Float
    track: Track
    # there is no track information available form Track resovler if trackUniqueId is 0, so we have to fetch the name and id directly
    trackName: String!
}

type MoneyhubRevenueByTrackList {
    items: [MoneyhubRevenueByTrack!]!
    totalRecords: Int!
}

type MoneyhubTrackByAccount {
    track: Track!
}

extend type Query {
    moneyhubTracksByAccount(
        accountId: ID!
        subaccountId: ID
        isSubaccount: Boolean
        searchTerm: String
        limit: Int
    ): [MoneyhubTrackByAccount!]!
    moneyhubRevenueByTrack(
        accountId: ID!
        artistId: ID
        contractId: ID
        limit: Int
        offset: Int
        orderBy: String
        orderDir: String
        productId: ID
        projectId: ID
        searchTerm: String
        subaccountId: ID
        isSubaccount: Boolean
        statementPeriodIdStart: ID
        statementPeriodIdEnd: ID
        imprintIds: [ID!]
        storeIds: [ID!]
        countryCodes: [String!]
        transactionTypeIds: [ID!]
        activityPeriodIdStart: ID
        activityPeriodIdEnd: ID
    ): MoneyhubRevenueByTrackList!
}

