inbox/inbox.graphql
Stepan Vladovskiy 905d03b9ed
All checks were successful
deploy / deploy (push) Successful in 1m26s
feat: with sdl resolver in inbox.graphql
2023-12-01 23:06:25 -03:00

100 lines
2.0 KiB
GraphQL

type _Service {
sdl: String
}
enum MessageStatus {
NEW
UPDATED
DELETED
}
type ChatMember {
id: Int!
slug: String!
name: String!
pic: String
last_seen: Int!
online: Boolean
# invitedAt: DateTime
# invitedBy: String # user slug
# TODO: keep invite databit
}
input ChatInput {
id: String!
title: String
description: String
}
input MessageInput {
id: String!
chat_id: String!
body: String
seen: Boolean
}
type ChatResult {
error: String
chat: Chat
chats: [Chat]
message: Message
messages: [Message]
members: [ChatMember]
}
type Mutation {
# inbox
create_chat(title: String, members: [Int]!): ChatResult!
update_chat(chat: ChatInput!): ChatResult!
delete_chat(chat_id: String!): ChatResult!
create_message(chat_id: String!, body: String!, reply_to: Int): ChatResult!
update_message(message: MessageInput!): ChatResult!
delete_message(chat_id: String!, message_id: Int!): ChatResult!
mark_as_read(chat_id: String!, message_id: Int!): ChatResult!
}
input MessagesBy {
created_by: String
body: String
chat: String
order: String
days: Int
stat: String
}
type Query {
# inbox
load_chats(limit: Int, offset: Int): ChatResult! # your chats
load_messages_by(by: MessagesBy!, limit: Int, offset: Int): ChatResult!
load_recipients(limit: Int, offset: Int): ChatResult!
search_recipients(query: String!, limit: Int, offset: Int): ChatResult!
search_messages(by: MessagesBy!, limit: Int, offset: Int): ChatResult!
_service: _Service!
}
type Message {
id: Int!
created_by: Int!
created_at: Int!
chat_id: String!
body: String!
updated_at: Int
reply_to: Int
seen: Boolean
}
type Chat {
id: String!
created_by: Int! # member_id
created_at: Int!
members: [ChatMember]
admins: [Int]
updated_at: Int
title: String
description: String
messages: [Message]
unread: Int
}