File: /home/armgroup/libs/app/Models/Ticket.php
<?php
namespace App\Models;
use App\Enums\TicketPriority;
use App\Enums\TicketStatus;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Ticket extends Model
{
use HasFactory;
protected $guarded = ['id'];
protected $casts = [
'status' => TicketStatus::class,
'priority' => TicketPriority::class,
];
public const USER_ID_SEGMENT = 1; // attachments store like this: /attachments/userID/year/month/filename
public const PERMISSION_NAME = 'manage tickets'; // permission name for check in get attachments
public function getRouteKeyName()
{
return 'slug';
}
public function user()
{
return $this->belongsTo(User::class)->withDefault();
}
public function messages()
{
return $this->hasMany(TicketMessage::class);
}
}