This commit is contained in:
2025-10-22 20:08:22 +05:00
commit 736e3bef18
2573 changed files with 120385 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
<?php
namespace App\Modules\BaseAuth\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Carbon;
/**
* @property int $id
* @property string $name
* @property string $request_method
* @property string|null $ip
* @property string|null $user_agent
* @property string|null $target_url
* @property string|null $options
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*/
class AuthEvent extends Model
{
protected $table = 'auth_events';
/**
* 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 verifies phone number
*/
public const PHONE_CHANGED = 'PHONE_CHANGED';
/**
* 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,
];
}
/**
* 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',
};
}
}