| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?php
- namespace App\Notifications\Push;
- use App\Enums\PushNotificationCategoryEnum;
- use App\Enums\PushNotificationTargetEnum;
- use Illuminate\Database\Eloquent\Collection;
- abstract class BasePushNotification
- {
- abstract public function label(): string;
- abstract public function title(): string;
- abstract public function body(): string;
- abstract public function target(): PushNotificationTargetEnum;
- abstract public function category(): PushNotificationCategoryEnum;
- /**
- * Retorna os usuários elegíveis para receber esta notificação agora.
- * Não aplica cooldown — isso é responsabilidade do PushNotificationDispatcher.
- */
- abstract public function eligibleUsers(): Collection;
- /**
- * Cooldown em dias para esta notificação específica (nível de msg).
- */
- public function notificationCooldownDays(): int
- {
- return 28;
- }
- /**
- * Cooldown em dias para a categoria desta notificação (nível de categoria).
- * Retorne 0 para desabilitar o cooldown de categoria.
- */
- public function categoryCooldownDays(): int
- {
- return 7;
- }
- }
|