22 lines
858 B
PHP
22 lines
858 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Services\Loyalty\LoyaltyService;
|
|
use App\Services\Tenant\TenantContext;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\View\View;
|
|
|
|
class CustomerLoyaltyController extends Controller
|
|
{
|
|
public function __invoke(Request $request, TenantContext $tenant, LoyaltyService $loyalty): View
|
|
{
|
|
$business = $tenant->require();
|
|
$customer = $request->user()->customerProfiles()->where('businessId', $business->id)->firstOrFail();
|
|
$summary = $loyalty->summary($business, $customer);
|
|
$history = $customer->loyaltyAccounts()->with(['transactions' => fn ($query) => $query->latest('createdAt')->limit(20), 'programme'])->get()->flatMap->transactions->sortByDesc('createdAt')->take(20);
|
|
|
|
return view('customer.loyalty', compact('business', 'customer', 'summary', 'history'));
|
|
}
|
|
}
|