45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Dashboard\Ticketing\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
|
|
class Ticket extends Model
|
|
{
|
|
protected $fillable = [
|
|
'number', 'group_id', 'submitter_id', 'assigned_to', 'project_id',
|
|
'title', 'description', 'status', 'priority_id', 'due_date',
|
|
];
|
|
|
|
protected $casts = [
|
|
'due_date' => 'date',
|
|
];
|
|
|
|
public function group(): BelongsTo
|
|
{
|
|
return $this->belongsTo(TicketingGroup::class, 'group_id');
|
|
}
|
|
|
|
public function priority(): BelongsTo
|
|
{
|
|
return $this->belongsTo(PriorityLevel::class, 'priority_id');
|
|
}
|
|
|
|
public function project(): BelongsTo
|
|
{
|
|
return $this->belongsTo(TicketingProject::class, 'project_id');
|
|
}
|
|
|
|
public function messages(): HasMany
|
|
{
|
|
return $this->hasMany(TicketMessage::class, 'ticket_id')->orderBy('created_at');
|
|
}
|
|
|
|
public function attachments(): HasMany
|
|
{
|
|
return $this->hasMany(TicketAttachment::class, 'ticket_id');
|
|
}
|
|
}
|