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 55 56 |
) { $message_params['user_id'] = $user_id; $message_params['to_user_id'] = $to_user_id; |
465aace57 task-132687 minor... |
57 58 59 |
$files = $request->file(); if (count($files) > 0) { $file = reset($files); |
3d041f3f0 Изменения для соо... |
60 61 |
$message_params['file'] = $file->store($file_store_path, 'public'); $message_params['original_file_name'] = $file->getClientOriginalName(); |
712f07ca2 часть задачи по р... |
62 |
} |
f98ccb92c Массова рассылка |
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
$chat_form = Chat::firstOrCreate([ 'user_id' => $is_admin_chat ? 0 : $user_id, 'to_user_id' => $to_user_id, 'is_removed' => 0, 'is_admin_chat' => $is_admin_chat ? 1 : 0, ]); $message_params[$is_admin_chat ? 'chat_id_to' : 'chat_id_from'] = $chat_form->id; if (!$is_admin_chat) { $chat_to = Chat::firstOrCreate([ 'user_id' => $to_user_id, 'to_user_id' => $user_id, 'is_removed' => 0 ]); $message_params['chat_id_to'] = $chat_to->id; } |
7d97dde35 task-132985 minor... |
79 |
//dump('before creation '.$message_params['text']); |
712f07ca2 часть задачи по р... |
80 |
$new_message = Message::create($message_params); |
7d97dde35 task-132985 minor... |
81 |
//dump('after creation '.$new_message->id, [$new_message->id , $chat_form->last_message_id, $chat_to->last_message_id]); |
712f07ca2 часть задачи по р... |
82 |
|
7d97dde35 task-132985 minor... |
83 |
if ($new_message->id > $chat_form->last_message_id) { |
f98ccb92c Массова рассылка |
84 85 86 87 88 |
$chat_form->update(['last_message_date' => date("Y-m-d H:i:s"), 'last_message_id' => $new_message->id]); if (!$is_admin_chat) { $chat_to->update(['last_message_date' => date("Y-m-d H:i:s"), 'last_message_id' => $new_message->id]); } |
712f07ca2 часть задачи по р... |
89 |
} |
7d97dde35 task-132985 minor... |
90 |
MessageSended::dispatch($new_message); |
712f07ca2 часть задачи по р... |
91 |
|
f98ccb92c Массова рассылка |
92 93 94 95 96 97 98 99 100 |
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 часть задачи по р... |
101 |
|
f98ccb92c Массова рассылка |
102 |
return $reply_message; |
712f07ca2 часть задачи по р... |
103 |
} |
02a1ed535 Первый коммит Rek... |
104 |
} |