Files
Epicnabbo-Catalogus-Updated…/Updated_Cms/app/Models/Help/WebsiteHelpCenterTicket.php
T
Remco f2ba190a47 🆙 More fixes 🆙
2026-01-19 20:56:16 +01:00

70 lines
1.7 KiB
PHP

<?php
namespace App\Models\Help;
use App\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Facades\Auth;
use Stevebauman\Purify\Facades\Purify;
class WebsiteHelpCenterTicket extends Model
{
protected $guarded = ['id'];
public $timestamps = false;
/**
* @return BelongsTo<User, $this>
*/
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
/**
* @return BelongsTo<WebsiteHelpCenterCategory, $this>
*/
public function category(): BelongsTo
{
return $this->belongsTo(WebsiteHelpCenterCategory::class);
}
/**
* @return HasMany<WebsiteHelpCenterTicketReply, $this>
*/
public function replies(): HasMany
{
return $this->hasMany(WebsiteHelpCenterTicketReply::class, 'ticket_id');
}
public function canDeleteTicket()
{
return $this->user_id === Auth::id() || hasPermission('delete_website_tickets');
}
public function canManageTicket()
{
return $this->user_id === Auth::id() || hasPermission('manage_website_tickets');
}
public function canCloseTicket()
{
return $this->user_id === Auth::id() || hasPermission('manage_website_tickets');
}
public function isOpen()
{
return $this->open || hasPermission('manage_website_tickets');
}
/**
* @return \Illuminate\Database\Eloquent\Casts\Attribute<string, never>
*/
protected function content(): \Illuminate\Database\Eloquent\Casts\Attribute
{
return \Illuminate\Database\Eloquent\Casts\Attribute::make(get: fn ($value) => Purify::clean((string) $value));
}
}