*/ protected $fillable = [ 'service_chat_id', 'message', 'from_user_id', 'to_user_id', 'to_admin', 'is_file', 'file_name', 'is_read', ]; public function getElapsedTimeAttribute() { $time = time() - $this->created_at->timestamp; $time = $time < 1 ? 1 : $time; $tokens = [ 31536000 => 'year', 2592000 => 'month', 604800 => 'week', 86400 => 'day', 3600 => 'hour', 60 => 'min', 1 => 'second', ]; foreach ($tokens as $unit => $text) { if ($time < $unit) { continue; } $numberOfUnits = floor($time / $unit); return $numberOfUnits . ' ' . $text . ($numberOfUnits > 1 ? 's' : '') . ' ago'; } return ''; } public function getFolderPathAttribute() { return self::PATH_PREFIX . '/' . $this->service_chat_id; } public function getFilePathAttribute() { return ! $this->file_name ? null : $this->getFolderPathAttribute() . "/{$this->file_name}"; } public function getFileUrlAttribute() { $path = $this->getFilePathAttribute(); if ($path && Storage::exists($path)) { return env('AWS_ENDPOINT') . env('AWS_BUCKET') . '/' . $path; } return null; } }