CRM/backend/app/Models/Call.php

64 خطوط
1.5 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Relations\MorphMany;
class Call extends Model
{
protected $fillable = [
'lead_id', 'contact_id', 'contact_phone_id', 'user_id', 'direction', 'phone', 'duration',
'result', 'notes', 'provider_call_id', 'recording_url', 'is_manual',
'provider_status', 'started_at', 'ended_at', 'provider_payload',
];
protected function casts(): array
{
return [
'is_manual' => 'boolean',
'duration' => 'integer',
'started_at' => 'datetime',
'ended_at' => 'datetime',
'provider_payload' => 'array',
];
}
public function lead(): BelongsTo
{
return $this->belongsTo(Lead::class);
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function contact(): BelongsTo
{
return $this->belongsTo(Contact::class);
}
public function contactPhone(): BelongsTo
{
return $this->belongsTo(ContactPhone::class)->withTrashed();
}
public function qualityReview(): HasOne
{
return $this->hasOne(QualityReview::class);
}
public function notesHistory(): MorphMany
{
return $this->morphMany(Note::class, 'notable');
}
public function tasks(): MorphMany
{
return $this->morphMany(Task::class, 'taskable');
}
}