39 lines
911 B
PHP
39 lines
911 B
PHP
<?php
|
|
|
|
namespace App\Repositories\Admin;
|
|
|
|
use App\Models\AdminUser;
|
|
|
|
final class AdminUserRepository
|
|
{
|
|
public function findByEmail(string $email): ?AdminUser
|
|
{
|
|
return AdminUser::query()
|
|
->where('email', $email)
|
|
->first();
|
|
}
|
|
|
|
public function findActiveById(int $id): ?AdminUser
|
|
{
|
|
return AdminUser::query()
|
|
->whereKey($id)
|
|
->where('status', 'active')
|
|
->first();
|
|
}
|
|
|
|
public function touchLogin(AdminUser $admin, string $ip): void
|
|
{
|
|
$admin->last_login_at = now();
|
|
$admin->last_login_ip = inet_pton($ip) ?: null;
|
|
$admin->save();
|
|
}
|
|
|
|
public function setPassword(AdminUser $admin, string $plainPassword): void
|
|
{
|
|
$admin->password = $plainPassword; // ✅ 캐스트가 알아서 해싱함
|
|
$admin->must_reset_password = 0;
|
|
$admin->save();
|
|
}
|
|
|
|
}
|