@extends('layouts.site')
@section('title', __('site.account_page_title'))
@section('content')
@php
$lc = ['locale' => app()->getLocale()];
$siteAuth = app(\App\Services\Site\SiteAuthService::class);
$defaultName = __('site.auth_default_name');
$displayName = ($user->name && $user->name !== $defaultName) ? $user->name : '';
$requestTypes = site_request_types();
$accountBoot = [
'user' => [
'id' => $user->id,
'name' => $displayName,
'mobile' => $user->mobile ? $siteAuth->toLocalMobile($user->mobile) : '',
],
'requestsCount' => $complaints->total(),
'unreadNotifications' => $unreadNotifications ?? 0,
'commissionUnreadCount' => $commissionUnreadCount ?? 0,
'commissionPendingSurveyCount' => $commissionPendingSurveyCount ?? 0,
'commissionBadgeCount' => (int) ($commissionUnreadCount ?? 0) + (int) ($commissionPendingSurveyCount ?? 0),
'requestCounts' => $requestCounts ?? ['all' => 0, 'repair' => 0, 'price_inquiry' => 0],
'activeTab' => $activeTab ?? 'requests',
'mobileVerified' => filled($user->mobile_verified_at) || filled($user->mobile),
'avatarUrl' => \App\Support\UserAvatar::url($user->avatar),
'resendSeconds' => (int) config('site_auth.otp_resend_seconds', 60),
'routes' => [
'updateName' => route('site.account.name.update', $lc),
'updateAvatar' => route('site.account.avatar.update', $lc),
'updatePassword' => site_auth_method_enabled('password') ? route('site.account.password.update', $lc) : null,
'sendMobileOtp' => route('site.account.mobile.otp.send', $lc),
'verifyMobile' => route('site.account.mobile.verify', $lc),
],
'labels' => [
'nameSaved' => __('site.account_name_saved'),
'avatarSaved' => __('site.account_avatar_saved'),
'avatarInvalid' => __('site.account_avatar_invalid'),
'mobileSaved' => __('site.account_mobile_saved'),
'passwordSaved' => __('site.account_password_saved'),
'sendFailed' => __('site.auth_otp_send_failed'),
'invalid' => __('site.auth_otp_invalid'),
'resend' => __('site.auth_resend'),
'resendIn' => __('site.auth_resend_in'),
'errorGeneric' => __('site.auth_otp_send_failed'),
'logoutConfirm' => __('site.account_logout_confirm'),
'passwordMismatch' => __('site.account_password_mismatch'),
'passwordWeak' => __('site.account_password_strength_weak'),
'passwordFair' => __('site.account_password_strength_fair'),
'passwordStrong' => __('site.account_password_strength_strong'),
],
];
@endphp
{{ __('site.account_personal_title') }}
{{ __('site.account_name_hint') }}
{{ __('site.account_avatar_label') }}
@if (site_auth_method_enabled('password'))
{{ __('site.account_security_title') }}
{{ __('site.account_password_hint') }}
{{ __('site.account_password_current_hint') }}
- {{ __('site.account_password_rule_length') }}
- {{ __('site.account_password_rule_number') }}
- {{ __('site.account_password_rule_upper') }}
@endif
{{ __('site.account_mobile_change_title') }}
{{ __('site.account_mobile_change_hint') }}
{{ __('site.account_mobile_current') }}
{{ __('site.account_mobile_verified') }}
{{ __('site.account_otp_sent_to') }}
@foreach($requestTypes as $typeKey => $typeMeta)
@php
$label = match ($typeKey) {
'all' => __('site.account_filter_all'),
'repair' => __('site.account_lead_type_repair'),
'price_inquiry' => __('site.account_lead_type_price_inquiry'),
'files_documents' => __('site.account_lead_type_files_documents'),
'invites_reports' => __('site.account_lead_type_invites_reports'),
'commission_membership' => __('site.account_lead_type_commission_membership'),
'support' => __('site.account_lead_type_support'),
default => $typeMeta['label'],
};
$urlParams = array_merge($lc, ['tab' => 'requests'], $typeKey === 'all' ? [] : ['type' => $typeKey]);
@endphp
$filterType === $typeKey])>
{{ $label }}
{{ $requestCounts[$typeKey] ?? 0 }}
@endforeach
@if ($complaints->isEmpty())
@php
$leadAssistantEnabled = site_capability('lead_assistant');
$canRequestCommissionMembership = ! empty($commissionsEnabled)
&& ($joinableCommissionCategories ?? collect())->isNotEmpty();
$showCommissionMembershipCta = $canRequestCommissionMembership && (
$filterType === 'commission_membership'
|| (! $leadAssistantEnabled && $filterType === 'all')
);
$showLeadCta = $leadAssistantEnabled && in_array($filterType, ['all', 'repair', 'price_inquiry', 'support'], true);
[$emptyTitle, $emptyHint] = match ($filterType) {
'files_documents' => [
__('site.account_requests_empty_files_title'),
__('site.account_requests_empty_files_hint'),
],
'invites_reports' => [
__('site.account_requests_empty_invites_title'),
__('site.account_requests_empty_invites_hint'),
],
'commission_membership' => [
__('site.account_requests_empty_commission_title'),
__('site.account_requests_empty_commission_hint'),
],
default => $showCommissionMembershipCta && ! $leadAssistantEnabled
? [
__('site.account_requests_empty_title'),
__('site.account_requests_empty_commission_hint'),
]
: [
__('site.account_requests_empty_title'),
__('site.account_requests_empty_hint'),
],
};
@endphp
{{ $emptyTitle }}
{{ $emptyHint }}
@if ($showCommissionMembershipCta)
@elseif ($showLeadCta)
@endif
@else
@foreach ($complaints as $complaint)
@php
$ticket = \App\Support\RepairTicketPresenter::fromComplaint($complaint);
@endphp
@endforeach
{{ $complaints->appends(['tab' => 'requests'])->links() }}
@endif
@if (! empty($commissionsEnabled))
@if (($pendingCommissionSurveys ?? collect())->isNotEmpty())
{{ __('site.account_commissions_surveys_title') }}
@foreach ($pendingCommissionSurveys as $survey)
@php
$optionCount = $survey->options->count();
$isMultiple = $survey->type === 'multiple';
$isText = $survey->type === 'text';
@endphp
@endforeach
@endif
@if (($commissionCategories ?? collect())->isNotEmpty())
@foreach ($commissionCategories as $cat)
{{ $cat->localizedName() }}
@endforeach
@if (($commissionPosts ?? collect())->isEmpty())
{{ __('site.account_commissions_posts_empty') }}
@else
@endif
@else
{{ __('site.account_commissions_not_member_title') }}
{{ __('site.account_commissions_not_member_hint') }}
@endif
@if (($joinableCommissionCategories ?? collect())->isNotEmpty())
{{ __('site.account_commissions_request_title') }}
{{ __('site.account_commissions_request_hint') }}
@endif
@endif
@if ($notifications->isEmpty())
{{ __('site.account_notifications_empty_title') }}
{{ __('site.account_notifications_empty_hint') }}
@else
{{ $notifications->links() }}
@endif
@endsection