diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index b2c1d2e..b981c14 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -6,15 +6,31 @@ use App\Http\Controllers\Controller; use App\Models\Booking; use App\Models\Flight; use App\Models\User; +use App\Models\Visit; +use Carbon\Carbon; class DashboardController extends Controller { public function index() { - $flightsCount = Flight::count(); - $usersCount = User::count(); - $bookingsCount = Booking::count(); - return view('admin.dashboard', compact('flightsCount', 'usersCount', 'bookingsCount')); + $startDate = Carbon::now()->subDays(9)->startOfDay(); + $endDate = Carbon::now()->endOfDay(); + + + $flightsCount = Flight::count(); + $usersCount = User::count(); + $bookingsCount = Booking::count(); + $indexPageCont = Visit::count(); + + $visits = Visit::whereBetween('created_at', [$startDate, $endDate]) + ->selectRaw('DATE(created_at) as visit_date, COUNT(*) as total') + ->groupBy('visit_date') + ->orderBy('visit_date') + ->get(); + + + return view('admin.dashboard', compact('flightsCount', 'usersCount', + 'bookingsCount', 'indexPageCont' , 'visits')); } } diff --git a/app/Http/Controllers/Admin/FlightController.php b/app/Http/Controllers/Admin/FlightController.php index c169cbb..3d03c87 100644 --- a/app/Http/Controllers/Admin/FlightController.php +++ b/app/Http/Controllers/Admin/FlightController.php @@ -288,7 +288,6 @@ class FlightController extends Controller 'status' => [ 'required', - 'in:0,1', ], ]); diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index 4be916b..a0b4dfb 100644 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -5,13 +5,24 @@ namespace App\Http\Controllers; use App\Models\Airport; use App\Models\Flight; use App\Models\Tour; +use App\Models\Visit; use Illuminate\Http\Request; class IndexController extends Controller { - public function index() + public function index(Request $request) { + if (! $request->session()->has('visited')) { + Visit::create([ + 'ip_address' => $request->ip(), + 'url' => $request->fullUrl(), + 'user_agent' => $request->userAgent(), + ]); + + $request->session()->put('visited', true); + } + $flights = Flight::query() ->where('status', \App\Enums\FlightStatus::ENABLE) ->with([ diff --git a/app/Models/Flight.php b/app/Models/Flight.php index 69f9d49..269c549 100644 --- a/app/Models/Flight.php +++ b/app/Models/Flight.php @@ -6,6 +6,7 @@ namespace App\Models; +use App\Enums\FlightStatus; use Carbon\Carbon; use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; @@ -52,8 +53,8 @@ class Flight extends Model 'price' => 'float', 'capacity' => 'int', 'views' => 'int', - 'status' => 'int' - ]; + 'status' => FlightStatus::class + ]; protected $fillable = [ 'title', diff --git a/app/Models/Tour.php b/app/Models/Tour.php index d8e0b58..b8a247d 100644 --- a/app/Models/Tour.php +++ b/app/Models/Tour.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Enums\TourStatus; use Carbon\Carbon; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; @@ -15,7 +16,8 @@ class Tour extends Model 'duration' => 'int', 'views' => 'int', 'price' => 'int', - 'status' => 'int', + 'status' => TourStatus::class, + 'departure_time'=> 'datetime', 'created_at' => 'datetime', 'updated_at' => 'datetime', ]; @@ -30,6 +32,7 @@ class Tour extends Model 'duration', 'views', 'price', + 'departure_time', 'status', 'created_at', ]; diff --git a/app/Models/Visit.php b/app/Models/Visit.php new file mode 100644 index 0000000..dc735bc --- /dev/null +++ b/app/Models/Visit.php @@ -0,0 +1,34 @@ + - {{-- تعداد پروازها --}} -
-
+
+ {{ $flight->departure_time->toJalali()->format('Y/m/d H:i') }} + +
+ + {{ $flight->departure_time->toJalali()->format('Y/m/d H:i') }}
+
+ @if(getFileUrl($tour?->file?->id))
+
+ @endif
+ 'type' => 'tour',
+ 'id' => $tour->id
+ ]) }}" class="add-wishlist">