71 lines
2.6 KiB
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(),
|
|
]);
|
|
}
|
|
}
|
|
} |