37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
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 CustomerAccountController extends Controller
|
|
{
|
|
public function __invoke(Request $request, TenantContext $tenant, LoyaltyService $loyalty): View
|
|
{
|
|
$business = $tenant->require();
|
|
$business->loadMissing(['staff.user', 'serviceCategories.services']);
|
|
$profile = $request->user()->customerProfiles()
|
|
->where('businessId', $business->id)
|
|
->first();
|
|
|
|
$appointments = $profile?->appointments()
|
|
->with(['staff.user', 'services.service'])
|
|
->where('startAt', '>=', now()->utc())
|
|
->orderBy('startAt')
|
|
->get() ?? collect();
|
|
|
|
$loyaltySummary = $profile ? $loyalty->summary($business, $profile) : null;
|
|
|
|
return view('customer.dashboard', [
|
|
'business' => $business,
|
|
'profile' => $profile,
|
|
'appointments' => $appointments,
|
|
'user' => $request->user(),
|
|
'loyaltySummary' => $loyaltySummary,
|
|
]);
|
|
}
|
|
}
|