59 lines
1.7 KiB
PHP
59 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Tenant;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Resources\Tenant\CreditLedgerResource;
|
|
use App\Http\Resources\Tenant\EventPurchaseResource;
|
|
use App\Models\EventCreditsLedger;
|
|
use App\Models\EventPurchase;
|
|
use App\Models\Tenant;
|
|
use Illuminate\Http\Request;
|
|
|
|
class CreditController extends Controller
|
|
{
|
|
public function balance(Request $request)
|
|
{
|
|
$user = $request->user();
|
|
if (!$user) {
|
|
return response()->json(['message' => 'Unauthenticated'], 401);
|
|
}
|
|
|
|
$tenant = Tenant::findOrFail($user->tenant_id);
|
|
|
|
return response()->json([
|
|
'balance' => $tenant->event_credits_balance,
|
|
'free_event_granted_at' => $tenant->free_event_granted_at,
|
|
]);
|
|
}
|
|
|
|
public function ledger(Request $request)
|
|
{
|
|
$user = $request->user();
|
|
if (!$user) {
|
|
return response()->json(['message' => 'Unauthenticated'], 401);
|
|
}
|
|
|
|
$tenant = Tenant::findOrFail($user->tenant_id);
|
|
$ledgers = EventCreditsLedger::where('tenant_id', $tenant->id)
|
|
->orderBy('created_at', 'desc')
|
|
->paginate(20);
|
|
|
|
return CreditLedgerResource::collection($ledgers);
|
|
}
|
|
|
|
public function history(Request $request)
|
|
{
|
|
$user = $request->user();
|
|
if (!$user) {
|
|
return response()->json(['message' => 'Unauthenticated'], 401);
|
|
}
|
|
|
|
$tenant = Tenant::findOrFail($user->tenant_id);
|
|
$purchases = EventPurchase::where('tenant_id', $tenant->id)
|
|
->orderBy('purchased_at', 'desc')
|
|
->paginate(20);
|
|
|
|
return EventPurchaseResource::collection($purchases);
|
|
}
|
|
} |