-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.gql
93 lines (81 loc) · 1.5 KB
/
schema.gql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# ------------------------------------------------------
# THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY)
# ------------------------------------------------------
type Author {
id: ID!
name: String!
createdAt: DateTime!
updatedAt: DateTime!
}
"""
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.
"""
scalar DateTime
type Category {
id: ID!
name: String!
createdAt: DateTime!
updatedAt: DateTime!
}
type Book {
id: ID!
slug: String!
name: String!
description: String!
image: String!
price: Float!
finalPrice: Float!
avgStars: Float!
totalReviews: Int!
soldQuantity: Int!
promotionListId: Int
createdAt: DateTime!
updatedAt: DateTime!
categories: [Category!]!
authors: [Author!]!
}
type BookList {
data: [Book!]!
totalPages: Int!
totalCount: Int!
}
type Query {
books(input: FindAllBooksInput!): BookList!
}
input FindAllBooksInput {
order: Order = DESC
sort: SortBy
page: Int
take: Int
rating: Int
search: String
authorSlugs: String
categorySlugs: String
}
enum Order {
ASC
DESC
}
enum SortBy {
ON_SALE
POPULAR
ASC_PRICE
DESC_PRICE
}
type Mutation {
createBook(input: CreateBookInput!): Book!
updateBook(id: Int!, input: UpdateBookInput!): Book!
deleteBook(id: Int!): [Book!]!
}
input CreateBookInput {
name: String!
description: String!
price: String!
categoryIds: String
authorIds: String
}
input UpdateBookInput {
name: String
description: String
price: String
}