'array', 'context_chunks' => 'array', 'has_answer' => 'boolean', 'is_flagged' => 'boolean', 'response_time' => 'float', ]; // === Relationships === public function session(): BelongsTo { return $this->belongsTo(ChatSession::class, 'chat_session_id'); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function category(): BelongsTo { return $this->belongsTo(Category::class); } public function feedback(): HasOne { return $this->hasOne(ChatFeedback::class); } // === Scopes === public function scopeFlagged(Builder $query): Builder { return $query->where('is_flagged', true); } public function scopeNoAnswer(Builder $query): Builder { return $query->where('has_answer', false); } public function scopeWithoutFeedback(Builder $query): Builder { return $query->whereDoesntHave('feedback'); } }