feat: full dashboard-ticketing scaffold with data model, controllers, Vue pages
This commit is contained in:
@@ -9,27 +9,36 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
class Ticket extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'assigned_to',
|
||||
'title',
|
||||
'description',
|
||||
'category',
|
||||
'priority',
|
||||
'status',
|
||||
'number', 'group_id', 'submitter_id', 'assigned_to', 'project_id',
|
||||
'title', 'description', 'status', 'priority_id', 'due_date',
|
||||
];
|
||||
|
||||
public function submitter(): BelongsTo
|
||||
protected $casts = [
|
||||
'due_date' => 'date',
|
||||
];
|
||||
|
||||
public function group(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(\App\Models\User::class, 'user_id');
|
||||
return $this->belongsTo(TicketingGroup::class, 'group_id');
|
||||
}
|
||||
|
||||
public function assignee(): BelongsTo
|
||||
public function priority(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(\App\Models\User::class, 'assigned_to');
|
||||
return $this->belongsTo(PriorityLevel::class, 'priority_id');
|
||||
}
|
||||
|
||||
public function comments(): HasMany
|
||||
public function project(): BelongsTo
|
||||
{
|
||||
return $this->hasMany(TicketComment::class);
|
||||
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');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user