<?php
 namespace App\Models; use Illuminate\Database\Eloquent\Model; class ChatSession extends Model { protected $fillable = [ 'client_id', 'admin_id', 'department_id', 'visitor_name', 'visitor_email', 'public_token', 'visitor_id', 'ip_address', 'country', 'user_agent', 'start_url', 'referrer', 'status', 'rating', 'rating_comment', 'started_at', 'ended_at', 'closed_by', ]; protected $casts = [ 'started_at' => 'datetime', 'ended_at' => 'datetime', ]; public function client() { return $this->belongsTo(Client::class); } public function admin() { return $this->belongsTo(Admin::class); } public function department() { return $this->belongsTo(TicketDepartment::class, 'department_id'); } public function messages() { return $this->hasMany(ChatMessage::class)->orderBy('created_at'); } public function isGuest(): bool { return $this->client_id === null; } public function scopeWaiting($query) { return $query->where('status', 'waiting'); } public function scopeActive($query) { return $query->where('status', 'active'); } public function scopeForAdmin($query, int $adminId) { return $query->where('admin_id', $adminId); } } 