feat:change tour managinf for admin side

This commit is contained in:
2026-08-22 11:10:00 +03:30
parent cfec66f558
commit 62b5bc9b59
5 changed files with 150 additions and 51 deletions
+8
View File
@@ -24,8 +24,16 @@ class TourController extends Controller
{
abort_if($tour->status !== TourStatus::ENABLE, 404);
$viewedTours = session()->get('viewed_tours', []);
if (!in_array($tour->id, $viewedTours)) {
$tour->increment('views');
$viewedTours[] = $tour->id;
session()->put('viewed_tours', $viewedTours);
}
$tour->load([
'file',
'tourDates',
+3
View File
@@ -12,6 +12,7 @@ use Illuminate\Contracts\Database\Query\Builder;
use Illuminate\Database\Eloquent\Attributes\Scope;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use App\Traits\LogsActivity;
/**
* Class Tour
@@ -36,7 +37,9 @@ use Illuminate\Database\Eloquent\Model;
* @package App\Models
*/
class Tour extends Model
{
use LogsActivity;
protected $table = 'tours';
@@ -1,18 +1,57 @@
<div class="user-profile-sidebar">
<div class="user-profile-sidebar-top">
<div class="user-profile-img">
<button type="button" class="profile-img-btn"><i class="far fa-camera"></i></button>
<input type="file" class="profile-img-file">
@if(auth()->user()->file)
<img
src="{{ asset('storage/' . auth()->user()->file->path) }}"
alt="{{ getUserFullName() }}"
>
@else
<img
src="{{ asset('assets/img/user/default.jpg') }}"
alt="profile"
>
@endif
</div>
<h4>{{ getUserFullName() }}</h4>
</div>
<ul class="user-profile-sidebar-list">
<li><a href="{{route('account.profile')}}"><i class="far fa-user"></i> پروفایل من</a></li>
<li><a href="{{route('account.booking') }}"><i class="far fa-shopping-bag"></i> رزرو من</a></li>
<li><a href="{{route('account.comments')}}"><i class="far fa-clipboard-list"></i> نظرات من</a></li>
<li><a href="{{route('account.wishlist')}}"><i class="far fa-heart"></i> علاقه مندی های من</a></li>
<li><a href="{{route('account.edit-profile.index')}}"><i class="far fa-cog"></i> تنظیمات</a></li>
<li><a href="{{route('auth.logout.index')}}"><i class="far fa-sign-out"></i> خروج</a></li>
<li>
<a href="{{ route('account.profile') }}">
<i class="far fa-user"></i>
پروفایل من
</a>
</li>
<li>
<a href="{{ route('account.booking') }}">
<i class="far fa-shopping-bag"></i>
رزرو من
</a>
</li>
<li>
<a href="{{route('account.comments') }}">
<i class="far fa-clipboard-list"></i>
نظرات من
</a>
</li>
<li>
<a href="{{ route('account.wishlist') }}">
<i class="far fa-heart"></i>
علاقه مندی های من
</a>
</li>
<li>
<a href="{{ route('account.edit-profile.index') }}">
<i class="far fa-cog"></i>
تنظیمات
</a>
</li>
<li>
<a href="{{ route('auth.logout.index') }}">
<i class="far fa-sign-out"></i>
خروج
</a>
</li>
</ul>
</div>
-24
View File
@@ -146,30 +146,6 @@
</div>
<div class="col-md-6 col-lg-3">
<div class="listing-feature">
<div class="listing-feature-icon">
<i class="far fa-users"></i>
</div>
<div class="listing-feature-content">
<h6>ظرفیت پرواز</h6>
<span>
{{ number_format($flight->capacity) }} صندلی
</span>
</div>
</div>
</div>
<div class="col-md-6 col-lg-3">
<div class="listing-feature">
+87 -14
View File
@@ -15,28 +15,38 @@
</span>
</div>
</div>
{{-- ==================== TOUR ==================== --}}
@if($type === 'tour')
<div class="listing-item p-3 mt-3">
<div class="listing-feature mb-3">
<div class="listing-feature-icon">
<i class="far fa-clock"></i>
</div>
<div class="listing-feature-content">
<h6>مدت تور</h6>
<span>
{{ $item->duration }} روز
و
{{ max($item->duration - 1, 0) }} شب
</span>
</div>
</div>
<div class="listing-feature mb-3">
<div class="listing-feature-icon">
<i class="far fa-location-dot"></i>
</div>
<div class="listing-feature-content">
<h6>مسیر تور</h6>
<span>
{{ $item->origin }}
@@ -46,6 +56,8 @@
</span>
</div>
</div>
<div class="listing-feature mb-3">
<div class="listing-feature-icon">
<i class="far fa-eye"></i>
@@ -60,10 +72,13 @@
</span>
</div>
</div>
<div class="listing-feature">
<div class="listing-feature-icon">
<i class="far fa-calendar-plus"></i>
</div>
<div class="listing-feature-content">
<h6>تاریخ ثبت تور</h6>
@@ -71,25 +86,57 @@
{{ $item->created_at->toJalali()->format('Y/m/d') }}
</span>
</div>
</div>
</div>
<div class="listing-side-btn mt-3">
<a href="{{route('account.booking')}}" class="theme-btn">
{{-- رزرو تور --}}
<a href="{{ route('account.booking') }}"
class="theme-btn">
<span class="far fa-shopping-bag"></span>
اکنون رزرو کن
</a>
<a href="#" class="border-btn">
{{-- علاقه مندی تور --}}
<form
action="{{ route('account.favorites.toggle', [
'type' => 'tour',
'id' => $item->id
]) }}"
method="POST"
>
@csrf
<button type="submit" class="border-btn">
<i class="far fa-heart"></i>
افزودن به علاقه‌مندی‌ها
</a>
</button>
</form>
</div>
@endif
{{-- ==================== FLIGHT ==================== --}}
@if($type === 'flight')
<form action="{{ route('account.booking.store') }}" method="POST">
{{-- فرم رزرو پرواز --}}
<form
action="{{ route('account.booking.store') }}"
method="POST"
>
@csrf
@@ -154,23 +201,18 @@
</div>
{{-- دکمه رزرو --}}
<div class="listing-side-btn">
<button
type="submit"
class="theme-btn"
>
<span class="far fa-shopping-bag"></span>
اکنون رزرو کن
</button>
<a
href="#"
class="border-btn"
>
<i class="far fa-heart"></i>
افزودن به علاقه‌مندی‌ها
</a>
</button>
</div>
@@ -180,16 +222,47 @@
</form>
{{-- علاقه مندی پرواز --}}
<div class="listing-side-btn mt-3">
<form
action="{{ route('account.favorites.toggle', [
'type' => 'flight',
'id' => $item->id
]) }}"
method="POST"
>
@csrf
<button
type="submit"
class="border-btn"
>
<i class="far fa-heart"></i>
افزودن به علاقه‌مندی‌ها
</button>
</form>
</div>
@endif
<div class="listing-side-share">
<span>
<i class="far fa-eye"></i>
{{ number_format($item->views) }}
مشاهده
</span>
</div>