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