# Main Schema schema { query: Query; } scalar Date; # Simple type to contain all scalar types type AllTypes { # Field Description for String testString: String; # Field Description for Int testInt: Int; # Field Description for ID testID: ID; # Field Description for Boolean testBoolean: Boolean; # Field Description for Float testFloat: Float; } interface ISearchable { searchPreview: String!; } union ProductTypes = Movie | Book; # Testing enum enum MovieGenere { ACTION COMEDY THRILLER DRAMA } # Testing Input input SearchByGenere { before: Date; after: Date; genere: MovieGenere!; } # Testing Interface type Movie implements ISearchable { id: ID!; searchPreview: String!; rentPrice: Float; publishDate: Date; genere: MovieGenere; cast: [String]; } # Testing Interface type Book implements ISearchable { id: ID!; searchPreview: String!; price: Float; publishDate: Date; authors: [String]; } type Query { testString: String; testDate; Date; allTypes: AllTypes; allProducts: [ProductTypes]; # searches only movies by genere with sophisticated argument searchMovieByGenere(searchObject: SearchByGenere!): [Movie]; # Searchs all products by text string searchProduct(text: String!): [ISearchable]; }