Добавлены новые зависимости для работы с эмодзи и улучшена структура базы данных. Реализована модель сообщений и обновлены компоненты для поддержки новых функций мессенджера. Обновлены запросы и мутации для работы с сообщениями и чатом.
This commit is contained in:
@ -15,6 +15,7 @@ model User {
|
||||
id String @id @default(cuid())
|
||||
phone String @unique
|
||||
avatar String? // URL аватара в S3
|
||||
managerName String? // Имя управляющего
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@ -25,6 +26,9 @@ model User {
|
||||
// SMS коды для авторизации
|
||||
smsCodes SmsCode[]
|
||||
|
||||
// Отправленные сообщения
|
||||
sentMessages Message[] @relation("SentMessages")
|
||||
|
||||
@@map("users")
|
||||
}
|
||||
|
||||
@ -106,6 +110,10 @@ model Organization {
|
||||
organizationCounterparties Counterparty[] @relation("OrganizationCounterparties")
|
||||
counterpartyOf Counterparty[] @relation("CounterpartyOf")
|
||||
|
||||
// Сообщения
|
||||
sentMessages Message[] @relation("SentMessages")
|
||||
receivedMessages Message[] @relation("ReceivedMessages")
|
||||
|
||||
@@map("organizations")
|
||||
}
|
||||
|
||||
@ -189,3 +197,41 @@ enum CounterpartyRequestStatus {
|
||||
REJECTED // Отклонена
|
||||
CANCELLED // Отменена отправителем
|
||||
}
|
||||
|
||||
// Модель сообщений в мессенджере
|
||||
model Message {
|
||||
id String @id @default(cuid())
|
||||
content String? // Текст сообщения (nullable для медиа)
|
||||
type MessageType @default(TEXT)
|
||||
voiceUrl String? // URL голосового файла в S3
|
||||
voiceDuration Int? // Длительность голосового сообщения в секундах
|
||||
fileUrl String? // URL файла/изображения в S3
|
||||
fileName String? // Оригинальное имя файла
|
||||
fileSize Int? // Размер файла в байтах
|
||||
fileType String? // MIME тип файла
|
||||
isRead Boolean @default(false)
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
// Отправитель
|
||||
sender User @relation("SentMessages", fields: [senderId], references: [id])
|
||||
senderId String
|
||||
senderOrganization Organization @relation("SentMessages", fields: [senderOrganizationId], references: [id])
|
||||
senderOrganizationId String
|
||||
|
||||
// Получатель
|
||||
receiverOrganization Organization @relation("ReceivedMessages", fields: [receiverOrganizationId], references: [id])
|
||||
receiverOrganizationId String
|
||||
|
||||
@@index([senderOrganizationId, receiverOrganizationId, createdAt])
|
||||
@@index([receiverOrganizationId, isRead])
|
||||
@@map("messages")
|
||||
}
|
||||
|
||||
// Типы сообщений
|
||||
enum MessageType {
|
||||
TEXT
|
||||
VOICE
|
||||
IMAGE
|
||||
FILE
|
||||
}
|
||||
|
Reference in New Issue
Block a user