Omar Essayes
06/11/2020, 1:04 PMRyan
06/11/2020, 1:08 PMOmar Essayes
06/11/2020, 2:51 PMOmar Essayes
06/11/2020, 2:51 PMenum Role{
ADMIN
SELLER
USER
}
*type* User {
id: ID! @id
name: String!
email: String! @unique
password: String!
resetToken: String
resetTokenExpiry: String
role: Role @default(value: USER)
cart: [CartItem]
orders: [Order]
}
*type* Item {
id: ID! @id
title: String!
description: String!
image: String
largeImage: String
price: Int!
user: User!
}
*type* CartItem {
id: ID! @id
quantity: Int!
item: Item
user: User!
}
*type* OrderItem {
id: ID! @id
title: String!
description: String!
image: String
largeImage: String
price: Int!
quantity: Int! @default(value: 1)
user: User!
}
*type* Order {
id: ID! @id
items: [OrderItem!]!
total: Int!
user: User!
charge: String
createdAt: DateTime! @createdAt
updatedAt: DateTime! @updatedAt
}Omar Essayes
06/11/2020, 2:51 PMOmar Essayes
06/11/2020, 2:52 PMtype SuccessMessage {
message: String
}
type Mutation {
createItem(title: String, description: String, price: Int, image: String, largeImage: String): Item!
updateItem(id: ID!, title: String, description: String, price: Int): Item!
deleteItem(id: ID!): Item
signup(email: String!, password: String!, name: String!): User!
signin(email: String!, password: String!): User!
logout: SuccessMessage
requestReset(email: String!): SuccessMessage
resetPassword(resetToken: String, password: String!, confirmPassword: String!): User!
updateRole(role: String, userId: ID!): User
addToCart(id: ID!): CartItem
removeFromCart(id: ID!): CartItem
createOrder(token: String!): Order!
}
type Query {
items(where: ItemWhereInput, orderBy: ItemOrderByInput, skip: Int, first: Int): [Item]!
item(id:ID!): Item
itemsConnection(id:ID!): ItemConnection!
me: User
users: [User]!
order(id: ID!): Order
orders(orderBy: OrderOrderByInput): [Order]!
}
# For secutiry reasons we're redefining the
# User type without sentive information
type User {
id: ID!
name: String!
email: String!
_#password: String!_
_#resetToken: String_
_#resetToenExpiry: String_
_#role: String_
cart: [CartItem]
orders: [Order]
}
type Item {
id: ID!
title: String!
description: String!
image: String
largeImage: String
price: Int!
user: User!
}
type CartItem {
id: ID!
quantity: Int!
item: Item
user: User!
}
type OrderItem {
id: ID!
title: String!
description: String!
image: String
largeImage: String
price: Int!
quantity: Int!
user: User!
}
type Order {
id: ID!
items: [OrderItem!]!
total: Int!
user: User!
charge: String
createdAt: String!
updatedAt: String!
}
Omar Essayes
06/11/2020, 2:52 PM