Добавлены новые зависимости для работы с эмодзи и улучшена структура базы данных. Реализована модель сообщений и обновлены компоненты для поддержки новых функций мессенджера. Обновлены запросы и мутации для работы с сообщениями и чатом.
This commit is contained in:
@ -16,6 +16,12 @@ export const typeDefs = gql`
|
||||
|
||||
# Исходящие заявки
|
||||
outgoingRequests: [CounterpartyRequest!]!
|
||||
|
||||
# Сообщения с контрагентом
|
||||
messages(counterpartyId: ID!, limit: Int, offset: Int): [Message!]!
|
||||
|
||||
# Список чатов (последние сообщения с каждым контрагентом)
|
||||
conversations: [Conversation!]!
|
||||
}
|
||||
|
||||
type Mutation {
|
||||
@ -48,6 +54,13 @@ export const typeDefs = gql`
|
||||
respondToCounterpartyRequest(requestId: ID!, accept: Boolean!): CounterpartyRequestResponse!
|
||||
cancelCounterpartyRequest(requestId: ID!): Boolean!
|
||||
removeCounterparty(organizationId: ID!): Boolean!
|
||||
|
||||
# Работа с сообщениями
|
||||
sendMessage(receiverOrganizationId: ID!, content: String, type: MessageType = TEXT): MessageResponse!
|
||||
sendVoiceMessage(receiverOrganizationId: ID!, voiceUrl: String!, voiceDuration: Int!): MessageResponse!
|
||||
sendImageMessage(receiverOrganizationId: ID!, fileUrl: String!, fileName: String!, fileSize: Int!, fileType: String!): MessageResponse!
|
||||
sendFileMessage(receiverOrganizationId: ID!, fileUrl: String!, fileName: String!, fileSize: Int!, fileType: String!): MessageResponse!
|
||||
markMessagesAsRead(conversationId: ID!): Boolean!
|
||||
}
|
||||
|
||||
# Типы данных
|
||||
@ -55,6 +68,7 @@ export const typeDefs = gql`
|
||||
id: ID!
|
||||
phone: String!
|
||||
avatar: String
|
||||
managerName: String
|
||||
organization: Organization
|
||||
createdAt: String!
|
||||
updatedAt: String!
|
||||
@ -92,6 +106,9 @@ export const typeDefs = gql`
|
||||
users: [User!]!
|
||||
apiKeys: [ApiKey!]!
|
||||
isCounterparty: Boolean
|
||||
isCurrentUser: Boolean
|
||||
hasOutgoingRequest: Boolean
|
||||
hasIncomingRequest: Boolean
|
||||
createdAt: String!
|
||||
updatedAt: String!
|
||||
}
|
||||
@ -224,6 +241,46 @@ export const typeDefs = gql`
|
||||
request: CounterpartyRequest
|
||||
}
|
||||
|
||||
# Типы для сообщений
|
||||
type Message {
|
||||
id: ID!
|
||||
content: String
|
||||
type: MessageType
|
||||
voiceUrl: String
|
||||
voiceDuration: Int
|
||||
fileUrl: String
|
||||
fileName: String
|
||||
fileSize: Int
|
||||
fileType: String
|
||||
senderId: ID!
|
||||
senderOrganization: Organization!
|
||||
receiverOrganization: Organization!
|
||||
isRead: Boolean!
|
||||
createdAt: String!
|
||||
updatedAt: String!
|
||||
}
|
||||
|
||||
enum MessageType {
|
||||
TEXT
|
||||
VOICE
|
||||
IMAGE
|
||||
FILE
|
||||
}
|
||||
|
||||
type Conversation {
|
||||
id: ID!
|
||||
counterparty: Organization!
|
||||
lastMessage: Message
|
||||
unreadCount: Int!
|
||||
updatedAt: String!
|
||||
}
|
||||
|
||||
type MessageResponse {
|
||||
success: Boolean!
|
||||
message: String!
|
||||
messageData: Message
|
||||
}
|
||||
|
||||
# JSON скаляр
|
||||
scalar JSON
|
||||
`
|
Reference in New Issue
Block a user