Files
online.tbbank.gov.tm-larave…/app/Events/EventType.php
2024-05-06 17:13:38 +05:00

113 lines
2.3 KiB
PHP

<?php
namespace App\Events;
use Laravel\Nova\Actions\ActionEvent;
class EventType
{
/**
* When user registers to application
*/
public const REGISTER = 'REGISTER';
/**
* When user logs into application
*/
public const LOGIN = 'LOGIN';
/**
* When user verifies phone number
*/
public const PHONE_VERIFICATION = 'PHONE_VERIFICATION';
/**
* When user logs out of application
*/
public const LOGOUT = 'LOGOUT';
/**
* When user resets password
*/
public const PASSWORD_RESET = 'PASSWORD_RESET';
/**
* When user resets password
*/
public const FAILED = 'FAILED';
/**
* When user resets password
*/
public const ATTEMPTING = 'ATTEMPTING';
/**
* When user resets password
*/
public const LOCKOUT = 'LOCKOUT';
/**
* Laravel's default events
*
* @return array<string, string>
*/
public static function laravelDefaultEvents(): array
{
return [
'Illuminate\\Auth\\Events\\Attempting' => self::ATTEMPTING,
'Illuminate\\Auth\\Events\\Failed' => self::FAILED,
'Illuminate\\Auth\\Events\\Lockout' => self::LOCKOUT,
];
}
/**
* Laravel nova events
*
* @return array<int, string>
*/
public static function laravelNovaEvents(): array
{
return [
self::laravelNovaActionEvent(),
];
}
/**
* Laravel nova action event
*/
public static function laravelNovaActionEvent(): string
{
return ActionEvent::class;
}
/**
* Guest the event
*/
public static function guessEvent(string|object $event): string
{
if (is_object($event)) {
$event = get_class($event);
}
return self::laravelDefaultEvents()[$event] ?? '';
}
/**
* Log type
*/
public static function logType(string $name): string
{
return match ($name) {
self::REGISTER => 'notice',
self::LOGIN => 'notice',
self::PHONE_VERIFICATION => 'info',
self::LOGOUT => 'notice',
self::PASSWORD_RESET => 'info',
self::FAILED => 'warning',
self::ATTEMPTING => 'alert',
self::LOCKOUT => 'alert',
default => 'info',
};
}
}