@extends('layouts.app')
@php
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Route;
$locale = app(\App\Services\Content\ContentLocale::class);
$languageId = $locale->languageId();
// Prefer username, fall back to full name, then a safe default.
$sellerName = $seller->username
?: trim(($seller->first_name ?? '') . ' ' . ($seller->last_name ?? ''))
?: __('Seller');
$sellerSlug = $seller->slug ?: $seller->id;
// Avatar URL
$avatarUrl = $seller->avatar
? asset('storage/' . ltrim($seller->avatar, '/'))
: null;
// Cover URL — fall back to avatar when no cover is uploaded.
$coverUrl = $seller->cover_image
? asset('storage/' . ltrim($seller->cover_image, '/'))
: $avatarUrl;
// Flag so the view can style the fallback cover differently
// (blurred / dimmed avatar vs. a real cover image).
$isAvatarAsCover = empty($seller->cover_image) && !empty($avatarUrl);
$initial = strtoupper(Str::substr($sellerName, 0, 1));
// Role label
$roleName = null;
if ($seller->relationLoaded('role') && $seller->role) {
$raw = $seller->role->role_name;
if (is_array($raw)) {
$roleName = $raw[0]['name'] ?? null;
} elseif (is_string($raw) && str_starts_with($raw, 'a:')) {
$decoded = @unserialize($raw, ['allowed_classes' => false]);
if (is_array($decoded)) {
$roleName = $decoded[0]['name'] ?? null;
}
} else {
$roleName = is_string($raw) ? $raw : null;
}
}
// Seller profile fields
$location = trim(collect([
$seller->city_name,
$seller->state_name,
$seller->country_name,
])->filter()->implode(', '));
$memberSince = $seller->created_at;
// Whether the visitor is the seller themselves.
$isOwner = auth()->check() && (int) auth()->id() === (int) $seller->id;
// Filters + form action (preserve current seller)
$storefrontUrl = route('sellers.show', [
'seller' => $seller->slug,
]);
$sortOptions = [
'latest' => __('Latest'),
'oldest' => __('Oldest'),
'price_low' => __('Price: Low to High'),
'price_high' => __('Price: High to Low'),
'rating' => __('Top Rated'),
'popular' => __('Most Popular'),
];
$activeFilterCount = collect([
$search !== '' ?: null,
$selectedType !== '' ?: null,
])->filter()->count();
$wishlistSet = collect($wishlistProductIds)->map(fn ($id) => (int) $id)->all();
@endphp
@section('title', $sellerName)
@section('meta')
@if($coverUrl)
@endif
@endsection
@section('content')
{{-- ============ COVER + PROFILE HEADER ============ --}}
@else
{{ $sellerName }}
@if($seller->is_active_shop_request && $seller->email_status)
{{ __('Verified Seller') }}
@endif
@if($roleName)
{{ $roleName }}
@endif
@if($seller->vacation_mode)
{{ __('On Vacation') }}
@endif
{{ $seller->about_me }}
{{ $search !== '' || $selectedType !== '' ? __('Try adjusting your filters or search terms.') : __('This seller has not published any products yet.') }}
@if($activeFilterCount > 0) {{ __('Reset filters') }} @endif{{ Str::limit($detail->short_description, 70) }}
@endif @if($catName)