Добавить новость
ru24.net
Все новости
Март
2024

Контроллер для Laravel,для онлайн чата с пользователем

0
Написать контроллер для Laravel для онлайн чата с пользователем.

Есть три таблицы : пользователи, статусы чата и сообщения.

Нужно написать чат для общения с пользователем онлайн на laravel.

Принцип работы такой:
- сначала с пользователем общается бот и записывает всю беседу в таблицу сообщений, в какой-то момент бот определяет что беседу нужно передать человеку, в
этот момент мы отправляем оператору ссылку на диалог и переводим статус чата с ответов ботом на человека (и теперь входящее сообщение бот не отрабатывает).

Ваша задача реализовать онлайн чат с пользователем с автоматической подгрузкой новых сообщений. Также нужно будет добавить кнопку "перевести на бота" который будет менять статус чата на бота и автоматический перевод на бота если прошел час после последнего сообщения.

Сами таблицы:

CREATE TABLE `messages` (

`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,

`idMessage` VARCHAR(50) COLLATE utf8mb4_unicode_ci NOT NULL,

`senderNumber` VARCHAR(11) COLLATE utf8mb4_unicode_ci NOT NULL,

`role` INTEGER(11) NOT NULL,

`senderName` VARCHAR(50) COLLATE utf8mb4_unicode_ci NOT NULL,

`textMessage` TEXT COLLATE utf8mb4_unicode_ci NOT NULL,

`receivedAt` TIMESTAMP NOT NULL DEFAULT current_timestamp(),

`audioLink` VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`filepath` VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`created_at` TIMESTAMP NULL DEFAULT NULL,

`updated_at` TIMESTAMP NULL DEFAULT NULL,

`messageType` INTEGER(11) DEFAULT NULL,

`transcribedText` TEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL,

`messageStatus` INTEGER(11) DEFAULT 0,

`downloadStatus` INTEGER(11) DEFAULT 0,

`task_id` INTEGER(11) DEFAULT NULL,

`clientNotificationStatus` TINYINT(4) DEFAULT 0,

`imageLink` VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT 'Null',

PRIMARY KEY USING BTREE (`id`)

) ENGINE=InnoDB

AUTO_INCREMENT=848 ROW_FORMAT=DYNAMIC CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

Входящие сообщения обрабатываются в другом контроллере. для вас это только будут появляется новые сообщения в таблице.

Когда оператор отправляет сообщение заполняем поля textMessage, senderNumber,role=1, senderName=оператор

CREATE TABLE `bot_flags` (

`id` INTEGER(11) NOT NULL AUTO_INCREMENT,

`senderNumber` VARCHAR(20) COLLATE utf8mb4_general_ci DEFAULT NULL,

`promt_flag` TINYINT(4) DEFAULT NULL,

`kb_flag` TINYINT(4) DEFAULT NULL,

`setpromt_flag` TINYINT(4) DEFAULT NULL,

`created_at` TIMESTAMP NULL DEFAULT current_timestamp(),

`updated_at` TIMESTAMP NULL DEFAULT current_timestamp(),

`sleep_time` INTEGER(11) DEFAULT 3,

`wait_gpt_answer` INTEGER(11) DEFAULT 0,

PRIMARY KEY USING BTREE (`id`)

)




Moscow.media
Частные объявления сегодня





Rss.plus




Спорт в России и мире

Новости спорта


Новости тенниса
WTA

Касаткина проиграла американке Крюгер во втором круге турнира WTA в Абу-Даби






Свободную парковку обеспечили на месте незаконной платной автостоянки в Бибиреве

Магнитогорский клуб занял итоговое пятое место на первенстве России по следж-хоккею

Лолита осталась без газа: какие нарушения нашли в московской квартире певицы

В Москве проходят похороны основателя батальона «Арбат» Саркисяна