61 lines
1.3 KiB
PHP
61 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use Spatie\Activitylog\Facades\LogBatch;
|
|
use Spatie\Activitylog\LogOptions;
|
|
use Spatie\Activitylog\Models\Activity;
|
|
use Spatie\Activitylog\Traits\LogsActivity;
|
|
|
|
/**
|
|
* @mixin IdeHelperRequestedQuote
|
|
*/
|
|
class RequestedQuote extends Model
|
|
{
|
|
use LogsActivity, SoftDeletes;
|
|
|
|
protected $fillable = [
|
|
'quote',
|
|
];
|
|
|
|
public function approve(): void
|
|
{
|
|
LogBatch::startBatch();
|
|
|
|
Quote::create([
|
|
'quote' => $this->quote,
|
|
]);
|
|
|
|
$this->delete();
|
|
|
|
LogBatch::endBatch();
|
|
}
|
|
|
|
public function reject(): void
|
|
{
|
|
$this->delete();
|
|
}
|
|
|
|
public function tapActivity(Activity $activity, string $eventName)
|
|
{
|
|
switch ($eventName) {
|
|
case 'created':
|
|
$activity->description = "Quote created: {$this->quote}";
|
|
return;
|
|
case 'deleted':
|
|
$activity->description = "Quote deleted: {$this->quote}";
|
|
return;
|
|
default;
|
|
return;
|
|
}
|
|
}
|
|
|
|
public function getActivityLogOptions(): LogOptions
|
|
{
|
|
return LogOptions::defaults()
|
|
->logOnly(['quote']);
|
|
}
|
|
}
|