scalar DateTime type User { createdAt: DateTime! email: String emailConfirmed: Boolean id: Int! muted: Boolean rating: Int updatedAt: DateTime! username: String userpic: String userpicId: String wasOnlineAt: DateTime } type Message { author: Int! body: String! createdAt: DateTime! id: Int! replyTo: Int updatedAt: DateTime! visibleForUsers: [Int] } type createMessagePayload { status: Boolean! error: String message: Message } type deleteMessagePayload { status: Boolean! error: String } input MessageInput { body: String! replyTo: Int } input updateMessageInput { id: Int! body: String! } type Query { getMessages(count: Int = 100, page: Int = 1): [Message!]! } type Mutation { createMessage(input: MessageInput!): createMessagePayload! updateMessage(input: updateMessageInput!): createMessagePayload! deleteMessage(messageId: Int!): deleteMessagePayload! } type Subscription { messageCreated: Message! messageUpdated: Message! messageDeleted: Message! }