40 lines
1 KiB
PHP
40 lines
1 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
|
|
class IncidentActivity extends Model
|
|
{
|
|
protected $fillable = ['incident_id', 'type', 'title', 'content', 'author'];
|
|
|
|
public function incident(): BelongsTo
|
|
{
|
|
return $this->belongsTo(PaymentIncident::class, 'incident_id');
|
|
}
|
|
|
|
public function getTypeIconAttribute(): string
|
|
{
|
|
return match ($this->type) {
|
|
'email' => '✉️',
|
|
'call' => '📞',
|
|
'ticket' => '🎫',
|
|
'status_change' => '🔄',
|
|
'provider_response' => '💬',
|
|
default => '📝',
|
|
};
|
|
}
|
|
|
|
public function getTypeLabelAttribute(): string
|
|
{
|
|
return match ($this->type) {
|
|
'email' => 'E-Mail',
|
|
'call' => 'Telefonat',
|
|
'ticket' => 'Support-Ticket',
|
|
'status_change' => 'Statusänderung',
|
|
'provider_response' => 'Anbieter-Antwort',
|
|
default => 'Notiz',
|
|
};
|
|
}
|
|
}
|