Blame view
app/Models/Message.php
3.05 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', |
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( |
f98ccb92c Массова рассылка |
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; |
f98ccb92c Массова рассылка |
57 |
if ($request && $request->has('file')) { |
3d041f3f0 Изменения для соо... |
58 59 60 |
$file = $request->file('file'); $message_params['file'] = $file->store($file_store_path, 'public'); $message_params['original_file_name'] = $file->getClientOriginalName(); |
712f07ca2 часть задачи по р... |
61 |
} |
f98ccb92c Массова рассылка |
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
$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 часть задачи по р... |
78 79 80 |
$new_message = Message::create($message_params); if (!empty($new_message->id)) { |
f98ccb92c Массова рассылка |
81 82 83 84 85 |
$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 часть задачи по р... |
86 |
} |
f98ccb92c Массова рассылка |
87 88 89 90 91 92 93 94 95 |
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 часть задачи по р... |
96 |
|
f98ccb92c Массова рассылка |
97 |
return $reply_message; |
712f07ca2 часть задачи по р... |
98 |
} |
02a1ed535 Первый коммит Rek... |
99 |
} |