mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
message refactor
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Chat;
|
||||
|
||||
use App\Entities\Chat\ChatMessageEntity;
|
||||
use App\Models\ChatNotification;
|
||||
use App\Models\Usuarios\UserModel;
|
||||
use CodeIgniter\Model;
|
||||
@ -12,7 +13,7 @@ class ChatMessageModel extends Model
|
||||
protected $table = 'chat_messages';
|
||||
protected $primaryKey = 'id';
|
||||
protected $useAutoIncrement = true;
|
||||
protected $returnType = 'object';
|
||||
protected $returnType = ChatMessageEntity::class;
|
||||
protected $useSoftDeletes = true;
|
||||
protected $protectFields = true;
|
||||
protected $allowedFields = [
|
||||
@ -45,7 +46,7 @@ class ChatMessageModel extends Model
|
||||
// Callbacks
|
||||
protected $allowCallbacks = true;
|
||||
protected $beforeInsert = [];
|
||||
protected $afterInsert = [];
|
||||
protected $afterInsert = ['callbackNewMessage'];
|
||||
protected $beforeUpdate = [];
|
||||
protected $afterUpdate = [];
|
||||
protected $beforeFind = [];
|
||||
@ -82,7 +83,6 @@ class ChatMessageModel extends Model
|
||||
if ($auth_user->id == $message->sender_id) {
|
||||
$message->sender_first_name = $auth_user->first_name;
|
||||
$message->sender_last_name = $auth_user->last_name;
|
||||
|
||||
} else {
|
||||
$sender_user = $user->find($message->sender_id);
|
||||
$message->sender_first_name = $sender_user->first_name;
|
||||
@ -133,10 +133,10 @@ class ChatMessageModel extends Model
|
||||
->where("receiver_id", auth()->user()->id)->countAllResults();
|
||||
return $messagesFromReceiver;
|
||||
}
|
||||
public function get_chat_department_messages_count(int $chat_id) : int
|
||||
public function get_chat_department_messages_count(int $chat_id): int
|
||||
{
|
||||
$chatDepartmentMessagesCount = $this->builder()
|
||||
->where("id",$chat_id)
|
||||
->where("id", $chat_id)
|
||||
->countAllResults();
|
||||
return $chatDepartmentMessagesCount;
|
||||
}
|
||||
@ -194,4 +194,46 @@ class ChatMessageModel extends Model
|
||||
|
||||
return $messagesFromReceiver;
|
||||
}
|
||||
public function callbackNewMessage(array $data)
|
||||
{
|
||||
$authUser = auth()->user();
|
||||
$chatNotificationModel = model(ChatNotification::class);
|
||||
$chatMessageEntity = $this->find($data["id"]);
|
||||
$chatEntity = $chatMessageEntity->chat();
|
||||
if ($chatEntity->chat_department_id) {
|
||||
$chatDepartmentEntity = $chatEntity->department();
|
||||
$adminUsers = $chatDepartmentEntity->chatDepartmentAdminUsers();
|
||||
$modelFk = $chatEntity->relatedFk();
|
||||
$externalUsers = $chatDepartmentEntity->chatDepartmentExternalUsers($modelFk["relatedFkValue"], $modelFk["relatedModel"]);
|
||||
if ($modelFk["relatedModel"] && $modelFk["relatedFkValue"]) {
|
||||
|
||||
foreach ($adminUsers as $user) {
|
||||
if ($user->user_id != $authUser->id) {
|
||||
$chatNotificationModel->insert([
|
||||
"user_id" => $user->user_id,
|
||||
"chat_message_id" => $data["id"]
|
||||
]);
|
||||
}
|
||||
}
|
||||
foreach ($externalUsers as $user) {
|
||||
if ($user->user_id != $authUser->id) {
|
||||
$chatNotificationModel->insert([
|
||||
"user_id" => $user->user_id,
|
||||
"chat_message_id" => $data["id"]
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
foreach ($chatEntity->internalUsers() as $user) {
|
||||
if ($user->user_id != $authUser->id) {
|
||||
$chatNotificationModel->insert([
|
||||
"user_id" => $user->user_id,
|
||||
"chat_message_id" => $data["id"]
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user