Blame view
app/Models/Message.php
2.91 KB
02a1ed535 Первый коммит Rek... |
1 2 3 4 5 6 |
<?php namespace App\Models; 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', |
e688e0d8a Статистика работн... |
27 |
]; |
82a9544dc Связи моделей, гр... |
28 29 30 31 32 33 34 35 36 37 38 39 40 |
/* * Связь таблицы 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 Коммит на понедел... |
41 42 |
// Связь модели Сообщения (Message) с моделью Вакансии (Ad_employer) public function vacancies() { |
6e2255214 Работа над сообще... |
43 |
return $this->belongsTo(Ad_employer::class, 'ad_employer_id', 'id'); |
e3c7b0ffb Коммит на понедел... |
44 |
} |
712f07ca2 часть задачи по р... |
45 46 |
public static function add_message( |
f98ccb92c Массова рассылка |
47 |
?Request $request, |
712f07ca2 часть задачи по р... |
48 49 50 |
int $user_id, int $to_user_id, array $message_params, |
f98ccb92c Массова рассылка |
51 52 |
string $file_store_path = '/', bool $is_admin_chat = false |
712f07ca2 часть задачи по р... |
53 54 55 |
) { $message_params['user_id'] = $user_id; $message_params['to_user_id'] = $to_user_id; |
f98ccb92c Массова рассылка |
56 |
if ($request && $request->has('file')) { |
712f07ca2 часть задачи по р... |
57 58 |
$message_params['file'] = $request->file('file')->store($file_store_path, 'public'); } |
f98ccb92c Массова рассылка |
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
$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; } |
712f07ca2 часть задачи по р... |
75 76 77 |
$new_message = Message::create($message_params); if (!empty($new_message->id)) { |
f98ccb92c Массова рассылка |
78 79 80 81 82 |
$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 часть задачи по р... |
83 |
} |
f98ccb92c Массова рассылка |
84 85 86 87 88 89 90 91 92 |
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 часть задачи по р... |
93 |
|
f98ccb92c Массова рассылка |
94 |
return $reply_message; |
712f07ca2 часть задачи по р... |
95 |
} |
02a1ed535 Первый коммит Rek... |
96 |
} |