Files
Skunk-Lounge/app/Http/Controllers/LobbyController.php

71 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use Inertia\Inertia;
use App\Models\Wallet;
use App\Models\Game;
use App\Helpers\WalletHelper;
use Illuminate\Http\Request;
class LobbyController extends Controller
{
public function index()
{
$user = auth()->user();
return Inertia::render('Lobby', [
'wallet' => Wallet::where('user_id', $user->id)->first() ?? ['balance' => 0],
'games' => Game::where('is_active', true)->get(),
'user' => [
'name' => $user->name,
'vip_level' => $user->vip_level,
'is_kyc_verified' => $user->is_kyc_verified,
],
]);
}
public function addCoins(Request $request)
{
$request->validate(['amount' => 'required|numeric|min:1']);
WalletHelper::processTransaction(auth()->id(), $request->amount, 'deposit', 'Manual coin addition', $request->ip());
return Inertia::render('Lobby', [
'wallet' => Wallet::where('user_id', auth()->id())->first(),
'games' => Game::where('is_active', true)->get(),
'user' => [
'name' => auth()->user()->name,
'vip_level' => auth()->user()->vip_level,
'is_kyc_verified' => auth()->user()->is_kyc_verified,
],
'success' => 'Added ' . $request->amount . ' Skunk Coins',
]);
}
public function redeemPromo(Request $request)
{
$request->validate(['code' => 'required|string']);
try {
WalletHelper::redeemPromoCode(auth()->id(), $request->code, $request->ip());
return Inertia::render('Lobby', [
'wallet' => Wallet::where('user_id', auth()->id())->first(),
'games' => Game::where('is_active', true)->get(),
'user' => [
'name' => auth()->user()->name,
'vip_level' => auth()->user()->vip_level,
'is_kyc_verified' => auth()->user()->is_kyc_verified,
],
'success' => 'Promo code redeemed successfully',
]);
} catch (\Exception $e) {
return Inertia::render('Lobby', [
'wallet' => Wallet::where('user_id', auth()->id())->first(),
'games' => Game::where('is_active', true)->get(),
'user' => [
'name' => auth()->user()->name,
'vip_level' => auth()->user()->vip_level,
'is_kyc_verified' => auth()->user()->is_kyc_verified,
],
'error' => $e->getMessage(),
]);
}
}
}