type GET_movie__movie_id__credits_CastEntry {
  adult: Boolean
  cast_id: Int
  character: String
  credit_id: String
  gender: Int
  id: Int
  known_for_department: String
  name: String
  order: Int
  original_name: String
  popularity: Float
  profile_path: String
}

type GET_movie__movie_id__credits_CrewEntry {
  adult: Boolean
  credit_id: String
  department: String
  gender: Int
  id: Int
  job: String
  known_for_department: String
  name: String
  original_name: String
  popularity: Float
  profile_path: String
}

type GET_movie__movie_id__credits_Root {
  cast: [GET_movie__movie_id__credits_CastEntry]
  crew: [GET_movie__movie_id__credits_CrewEntry]
  id: Int
}

type Query {
  GET_movie__movie_id__credits(
    movie_id: String!
    tmdb_access_token: String!
  ): GET_movie__movie_id__credits_Root
    @rest(
      endpoint: "https://api.themoviedb.org/3/movie/$movie_id;/credits"
      headers: [{ name: "authorization", value: "Bearer $tmdb_access_token;" }]
    )
}
type GET_tv__tv_id__season__season_number__credits_CastEntry {
  adult: Boolean
  character: String
  credit_id: String
  gender: Int
  id: Int
  known_for_department: String
  name: String
  order: Int
  original_name: String
  popularity: Float
  profile_path: String
}

type GET_tv__tv_id__season__season_number__credits_CrewEntry {
  adult: Boolean
  credit_id: String
  department: String
  gender: Int
  id: Int
  job: String
  known_for_department: String
  name: String
  original_name: String
  popularity: Float
  profile_path: String
}

type GET_tv__tv_id__season__season_number__credits_Root {
  cast: [GET_tv__tv_id__season__season_number__credits_CastEntry]
  crew: [GET_tv__tv_id__season__season_number__credits_CrewEntry]
  id: Int
}

type Query {
  GET_tv__tv_id__season__season_number__credits(
    season_number: String!
    tmdb_access_token: String!
    tv_id: String!
  ): GET_tv__tv_id__season__season_number__credits_Root
    @rest(
      endpoint: "https://api.themoviedb.org/3/tv/$tv_id;/season/$season_number;/credits"
      headers: [{ name: "authorization", value: "Bearer $tmdb_access_token;" }]
    )
}
type GET_search_tv_ResultsEntry {
  adult: Boolean
  backdrop_path: String
  first_air_date: Date
  genre_ids: [Int]
  id: Int
  name: String
  origin_country: [String]
  original_language: String
  original_name: String
  overview: String
  popularity: Float
  poster_path: String
  vote_average: Float
  vote_count: Int
}

type GET_search_tv_Root {
  page: Int
  results: [GET_search_tv_ResultsEntry]
  total_pages: Int
  total_results: Int
}

type Query {
  GET_search_tv(query: String, tmdb_access_token: String!): GET_search_tv_Root
    @rest(
      endpoint: "https://api.themoviedb.org/3/search/tv"
      headers: [{ name: "authorization", value: "Bearer $tmdb_access_token;" }]
    )
}
type GET_search_movie_ResultsEntry {
  adult: Boolean
  backdrop_path: String
  genre_ids: [Int]
  id: Int
  original_language: String
  original_title: String
  overview: String
  popularity: Float
  poster_path: String
  release_date: Date
  title: String
  video: Boolean
  vote_average: Float
  vote_count: Int
}

type GET_search_movie_Root {
  page: Int
  results: [GET_search_movie_ResultsEntry]
  total_pages: Int
  total_results: Int
}

type Query {
  GET_search_movie(
    query: String
    tmdb_access_token: String!
  ): GET_search_movie_Root
    @rest(
      endpoint: "https://api.themoviedb.org/3/search/movie"
      headers: [{ name: "authorization", value: "Bearer $tmdb_access_token;" }]
    )
}
