feat: complete day 11

This commit is contained in:
Ayobami
2025-07-17 16:55:13 +01:00
parent 001e4b6d00
commit 9c84737fed
18 changed files with 919 additions and 177 deletions
+147
View File
@@ -211,3 +211,150 @@ type Mutation {
uploadFile(file: Upload!): FileUploadResponse!
}
type Movie {
id: ID!
title: String
director_id: Int
main_genre: String
status: Int
review: String
director: Director
reviews: [Review]
actors: [Actor]
genres: [Genre]
}
type Review {
id: ID!
notes: String
movie_id: Int
movie: Movie
}
type Director {
id: ID!
name: String
movies: [Movie]
}
type Actor {
id: ID!
name: String
movies: [Movie]
}
type MovieActor {
id: ID!
actor_id: Int
movie_id: Int
actor: Actor
movie: Movie
}
type Genre {
id: ID!
name: String
movies: [Movie]
}
type GenreMovie {
id: ID!
movie_id: Int
genre_id: Int
movie: Movie
genre: Genre
}
type MovieResponse {
success: Boolean!
data: Movie
error: String
}
type AllMoviesResponse {
success: Boolean!
data: [Movie]
error: String
}
type ReviewResponse {
success: Boolean!
data: Review
error: String
}
type AllReviewsResponse {
success: Boolean!
data: [Review]
error: String
}
type DirectorResponse {
success: Boolean!
data: Director
error: String
}
type AllDirectorsResponse {
success: Boolean!
data: [Director]
error: String
}
type ActorResponse {
success: Boolean!
data: Actor
error: String
}
type AllActorsResponse {
success: Boolean!
data: [Actor]
error: String
}
extend type Query {
getMovie(id: ID!): MovieResponse!
getAllMovies: AllMoviesResponse!
getReview(id: ID!): ReviewResponse!
getAllReviews: AllReviewsResponse!
getDirector(id: ID!): DirectorResponse!
getAllDirectors: AllDirectorsResponse!
getActor(id: ID!): ActorResponse!
getAllActors: AllActorsResponse!
getMoviesWithReviewCount(minReviews: Int!): AllMoviesResponse!
}
extend type Mutation {
createMovie(
title: String!
director_id: Int
main_genre: String
status: Int
review: String
): MovieResponse!
updateMovie(
id: ID!
title: String
director_id: Int
main_genre: String
status: Int
review: String
): MovieResponse!
deleteMovie(id: ID!): MovieResponse!
createReview(notes: String!, movie_id: Int!): ReviewResponse!
updateReview(id: ID!, notes: String, movie_id: Int): ReviewResponse!
deleteReview(id: ID!): ReviewResponse!
createDirector(name: String!): DirectorResponse!
updateDirector(id: ID!, name: String): DirectorResponse!
deleteDirector(id: ID!): DirectorResponse!
createActor(name: String!): ActorResponse!
updateActor(id: ID!, name: String): ActorResponse!
deleteActor(id: ID!): ActorResponse!
addActorToMoviesByGenre(actor_id: Int!, genre_id: Int!): AllMoviesResponse!
}