type SocialPost {
    id: ID!
    postId: ID!
    platform: SocialPlatform!
    createdDate: DateTime!
    content: String
    creator: SocialFan!
    views: Float
    likes: Int
    reposts: Int
    comments: Int
    links: [SocialPostLink]
    url: String!
    imageLocation: String @deprecated(reason: "Retrieve images from assets field.")
    assets: [SocialAsset!]!
}

type SocialPostLink {
    url: String
}

type SocialAccount {
    url: String
    pendingUrl: String
    handle: String
    platform: SocialPlatform!
    followers: SocialAccountFollowers!
    linked: Boolean! @deprecated(reason: "This feature is no longer in use.")
    authUrl(redirectUrl: String!): String @deprecated(reason: "We no longer support social auth. This returns null.")
    unlinkPermission: SocialAuthUnlinkPermissionType! @deprecated(reason: "This feature is no longer in use.")
}

type SocialAccountFollowers {
    growthPercentage: Float
    totalFollowersPercentage: Float
    totalFollowersDifference: Long
    total: Long
    items(startDate: String, days: Int): [DailyTimeseries!]!
}

type SocialFan {
    id: ID!
    fanId: ID!
    platform: SocialPlatform!
    username: String
    displayName: String
    verified: Boolean!
    imageLocation: String
    mentions: Int
    followers: Int
    posts(
        limit: Int
        offset: Int
    ): [SocialPost]! @deprecated(reason: "This feature is no longer in use")
}

type SocialAsset {
    url: String!
    contentType: SocialContentType!
    metadata: SocialAssetMetadata
}

type SocialAssetMetadata {
    appleLinks: [String!] @deprecated(reason: "Removed to decrease metadata loading time")
    spotifyLinks: [String!] @deprecated(reason: "Removed to decrease metadata loading time")
    title: String!
    artistList: String!
    imageUrl: String!
}

type SpotifyPopularity {
    index: Int
    fanConversionPercentage: Float
    monthlyListeners: RankedMetric!
}

type RankedMetric {
    value: Long
    rank: Long
}
