Files
2025-08-29 21:17:01 -03:00

45 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Events\Base;
use App\Concerns\Discord\HasAttributeUpdateEmbedFields;
use App\Contracts\Events\DiscordMessageEvent;
use App\Enums\Discord\EmbedColor;
use App\Events\BaseEvent;
use Illuminate\Foundation\Events\Dispatchable;
use NotificationChannels\Discord\DiscordMessage;
/**
* @template TModel of \Illuminate\Database\Eloquent\Model
*
* @extends BaseEvent<TModel>
*/
abstract class BaseUpdatedEvent extends BaseEvent implements DiscordMessageEvent
{
use Dispatchable;
use HasAttributeUpdateEmbedFields;
public function getDiscordMessage(): DiscordMessage
{
$embed = array_merge(
[
'description' => $this->getDiscordMessageDescription(),
'fields' => $this->getEmbedFields(),
'color' => EmbedColor::YELLOW->value,
],
$this->getUserFooter(),
);
return DiscordMessage::create('', $embed);
}
public function shouldSendDiscordMessage(): bool
{
return true;
}
abstract protected function getDiscordMessageDescription(): string;
}