Blame view
app/Models/Message.php
3.34 KB
02a1ed535 Первый коммит Rek... |
1 2 3 |
<?php namespace App\Models; |
7d97dde35 task-132985 minor... |
4 |
use App\Events\MessageSended; |
02a1ed535 Первый коммит Rek... |
5 6 |
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; |
712f07ca2 часть задачи по р... |
7 8 |
use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; |
f98ccb92c Массова рассылка |
9 |
use mysql_xdevapi\Collection; |
02a1ed535 Первый коммит Rek... |
10 11 12 13 |
class Message extends Model { use HasFactory; |
82a9544dc Связи моделей, гр... |
14 |
|
e688e0d8a Статистика работн... |
15 16 17 |
protected $fillable = [ 'user_id', 'to_user_id', |
712f07ca2 часть задачи по р... |
18 |
'title', |
e688e0d8a Статистика работн... |
19 20 |
'text', 'file', |
f8a3cafe5 диалоговые пробле... |
21 22 |
'flag_new', 'ad_employer_id', |
f98ccb92c Массова рассылка |
23 24 25 26 |
'job_title_id', 'chat_id_from', 'chat_id_to', 'reply_message_id', |
3d041f3f0 Изменения для соо... |
27 |
'original_file_name', |
e688e0d8a Статистика работн... |
28 |
]; |
82a9544dc Связи моделей, гр... |
29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* * Связь таблицы Message с таблицей User (Отправитель) */ public function user_from() { return $this->belongsTo(User::class, 'user_id'); } /* * Связь таблицы Message с таблицей User (Получатель) */ public function user_to() { return $this->belongsTo(User::class, 'to_user_id'); } |
e3c7b0ffb Коммит на понедел... |
42 43 |
// Связь модели Сообщения (Message) с моделью Вакансии (Ad_employer) public function vacancies() { |
6e2255214 Работа над сообще... |
44 |
return $this->belongsTo(Ad_employer::class, 'ad_employer_id', 'id'); |
e3c7b0ffb Коммит на понедел... |
45 |
} |
712f07ca2 часть задачи по р... |
46 47 |
public static function add_message( |
465aace57 task-132687 minor... |
48 |
Request $request, |
712f07ca2 часть задачи по р... |
49 50 51 |
int $user_id, int $to_user_id, array $message_params, |
f98ccb92c Массова рассылка |
52 53 |
string $file_store_path = '/', bool $is_admin_chat = false |
712f07ca2 часть задачи по р... |
54 |
) { |
09a2fc9d8 messages and subs... |
55 56 57 58 59 60 61 |
$superAdmin =User::superAdmin(); if ($superAdmin && $superAdmin->id == $to_user_id ){ $is_admin_chat=true; } |
712f07ca2 часть задачи по р... |
62 63 |
$message_params['user_id'] = $user_id; $message_params['to_user_id'] = $to_user_id; |
465aace57 task-132687 minor... |
64 65 66 |
$files = $request->file(); if (count($files) > 0) { $file = reset($files); |
3d041f3f0 Изменения для соо... |
67 68 |
$message_params['file'] = $file->store($file_store_path, 'public'); $message_params['original_file_name'] = $file->getClientOriginalName(); |
712f07ca2 часть задачи по р... |
69 |
} |
f98ccb92c Массова рассылка |
70 |
$chat_form = Chat::firstOrCreate([ |
09a2fc9d8 messages and subs... |
71 |
'user_id' => $user_id, |
f98ccb92c Массова рассылка |
72 73 74 75 |
'to_user_id' => $to_user_id, 'is_removed' => 0, 'is_admin_chat' => $is_admin_chat ? 1 : 0, ]); |
09a2fc9d8 messages and subs... |
76 |
$message_params['chat_id_from'] = $chat_form->id; |
f98ccb92c Массова рассылка |
77 |
|
f98ccb92c Массова рассылка |
78 79 80 |
$chat_to = Chat::firstOrCreate([ 'user_id' => $to_user_id, 'to_user_id' => $user_id, |
09a2fc9d8 messages and subs... |
81 |
'is_removed' => 0, |
f98ccb92c Массова рассылка |
82 83 |
]); $message_params['chat_id_to'] = $chat_to->id; |
f98ccb92c Массова рассылка |
84 |
|
7d97dde35 task-132985 minor... |
85 |
//dump('before creation '.$message_params['text']); |
712f07ca2 часть задачи по р... |
86 |
$new_message = Message::create($message_params); |
7d97dde35 task-132985 minor... |
87 |
//dump('after creation '.$new_message->id, [$new_message->id , $chat_form->last_message_id, $chat_to->last_message_id]); |
712f07ca2 часть задачи по р... |
88 |
|
7d97dde35 task-132985 minor... |
89 |
if ($new_message->id > $chat_form->last_message_id) { |
f98ccb92c Массова рассылка |
90 |
$chat_form->update(['last_message_date' => date("Y-m-d H:i:s"), 'last_message_id' => $new_message->id]); |
09a2fc9d8 messages and subs... |
91 |
$chat_to->update(['last_message_date' => date("Y-m-d H:i:s"), 'last_message_id' => $new_message->id]); |
712f07ca2 часть задачи по р... |
92 |
} |
7d97dde35 task-132985 minor... |
93 |
MessageSended::dispatch($new_message); |
712f07ca2 часть задачи по р... |
94 |
|
f98ccb92c Массова рассылка |
95 96 97 98 99 100 101 102 103 |
return $new_message ?? false; } public function getReplyMessageAttribute() { $reply_message = false; if ($this->attributes['reply_message_id']){ $reply_message = self::find($this->attributes['reply_message_id']); } |
712f07ca2 часть задачи по р... |
104 |
|
f98ccb92c Массова рассылка |
105 |
return $reply_message; |
712f07ca2 часть задачи по р... |
106 |
} |
02a1ed535 Первый коммит Rek... |
107 |
} |