feat(admin): improve payments and server settings

This commit is contained in:
baodev0
2026-10-19 07:59:23 +07:00
parent 9ed77a85fd
commit ea9a53f742
32 changed files with 680 additions and 78 deletions
@@ -12,6 +12,8 @@ use Illuminate\Support\Facades\DB;
class ServerController extends Controller
{
private const DOMAIN_PATTERN = '/^(?=.{1,253}$)([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/i';
public function __construct(
private readonly DnsServerRepositoryInterface $serverRepository,
private readonly ServerService $serverService,
@@ -30,6 +32,7 @@ class ServerController extends Controller
$query->where(function ($subQuery) use ($filter) {
$subQuery->where('name', 'like', "%{$filter}%")
->orWhere('ip_address', 'like', "%{$filter}%")
->orWhere('domain', 'like', "%{$filter}%")
->orWhere('username', 'like', "%{$filter}%");
});
}
@@ -79,6 +82,7 @@ class ServerController extends Controller
$validated = $request->validate([
'name' => 'required|string|max:255',
'ip_address' => 'required|string|max:255',
'domain' => ['nullable', 'string', 'max:255', 'regex:' . self::DOMAIN_PATTERN],
'panel_port' => 'nullable|integer|min:1|max:65535',
'username' => 'required|string|max:255',
'password' => 'required|string|max:255',
@@ -93,6 +97,7 @@ class ServerController extends Controller
$server = $this->serverRepository->create([
'name' => $validated['name'],
'ip_address' => $validated['ip_address'],
'domain' => $validated['domain'] ?? null,
'panel_port' => $validated['panel_port'] ?? 8880,
'username' => $validated['username'],
'password' => Crypt::encryptString($validated['password']),
@@ -125,6 +130,7 @@ class ServerController extends Controller
$validated = $request->validate([
'name' => 'sometimes|required|string|max:255',
'ip_address' => 'sometimes|required|string|max:255',
'domain' => ['nullable', 'string', 'max:255', 'regex:' . self::DOMAIN_PATTERN],
'panel_port' => 'nullable|integer|min:1|max:65535',
'username' => 'sometimes|required|string|max:255',
'password' => 'nullable|string|max:255',
@@ -194,6 +200,7 @@ class ServerController extends Controller
'id' => $server->id,
'name' => $server->name,
'ip_address' => $server->ip_address,
'domain' => $server->domain,
'panel_port' => $server->panel_port,
'username' => $server->username,
'api_key' => $server->api_key,