diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 4fcf5cf..6c3d746 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -9,11 +9,12 @@ class LoginController extends Controller { public function index() { - + return view('auth.login'); + } public function post() { - + } } diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 1d6906b..884ca9f 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -9,7 +9,7 @@ class RegisterController extends Controller { public function index() { - +return view('auth.register'); } public function post() diff --git a/app/Models/User.php b/app/Models/User.php index 11aea90..d3c7d74 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -10,10 +10,11 @@ use Carbon\Carbon; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Illuminate\Foundation\Auth\User as Authenticated ; /** * Class User - * + * * @property int $id * @property string $first_name * @property string $last_name @@ -33,13 +34,13 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @property Carbon $created_at * @property Carbon $updatet_at * @property string $deleted_at - * + * * @property File|null $file * @property Collection|Comment[] $comments * * @package App\Models */ -class User extends Model +class User extends Authenticated { use SoftDeletes; protected $table = 'users'; diff --git a/bootstrap/app.php b/bootstrap/app.php index 6d466e4..62d3729 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -14,7 +14,9 @@ return Application::configure(basePath: dirname(__DIR__)) health: '/up', ) ->withMiddleware(function (Middleware $middleware): void { - // + + $middleware->redirectGuestsTo(fn(Illuminate\Http\Request $request) => route('auth.login.index')); + $middleware->redirectUsersTo(fn(Illuminate\Http\Request $request) => route('index')); }) ->withExceptions(function (Exceptions $exceptions): void { // diff --git a/config/auth.php b/config/auth.php index d7568ff..3a06e62 100644 --- a/config/auth.php +++ b/config/auth.php @@ -64,7 +64,7 @@ return [ 'providers' => [ 'users' => [ 'driver' => 'eloquent', - 'model' => env('AUTH_MODEL', User::class), + 'model' => User::class, ], // 'users' => [ diff --git a/database/airlinedatabase/airline-agency.sql b/database/airlinedatabase/airline-agency.sql new file mode 100644 index 0000000..9d71759 --- /dev/null +++ b/database/airlinedatabase/airline-agency.sql @@ -0,0 +1,291 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.3 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1:3306 +-- Generation Time: Aug 15, 2026 at 12:25 PM +-- Server version: 8.4.7 +-- PHP Version: 8.3.28 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `airline-agency` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `airlines` +-- + +DROP TABLE IF EXISTS `airlines`; +CREATE TABLE IF NOT EXISTS `airlines` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `code` varchar(20) COLLATE utf32_persian_ci NOT NULL, + `file_id` bigint UNSIGNED NOT NULL, + `status` tinyint NOT NULL COMMENT '0:disable|1:enable', + `created_at` timestamp NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `airports` +-- + +DROP TABLE IF EXISTS `airports`; +CREATE TABLE IF NOT EXISTS `airports` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `city` varchar(255) COLLATE utf32_persian_ci NOT NULL, + `code` varchar(10) COLLATE utf32_persian_ci NOT NULL, + `country` varchar(255) COLLATE utf32_persian_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `bookings` +-- + +DROP TABLE IF EXISTS `bookings`; +CREATE TABLE IF NOT EXISTS `bookings` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `user_id` bigint UNSIGNED NOT NULL, + `flight_id` bigint UNSIGNED NOT NULL, + `tour_date_id` bigint UNSIGNED NOT NULL, + `adult_count` int UNSIGNED NOT NULL, + `child_count` int UNSIGNED NOT NULL, + `total_price` int UNSIGNED NOT NULL, + `tracking_code` varchar(50) COLLATE utf32_persian_ci NOT NULL, + `created_at` timestamp NOT NULL, + `status` tinyint NOT NULL COMMENT '0 = pending\r\n1 = confirmed\r\n2 = cancelled', + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + KEY `bookings_fk1` (`user_id`), + KEY `bookings_fk2` (`flight_id`), + KEY `bookings_fk3` (`tour_date_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `booking_passengers` +-- + +DROP TABLE IF EXISTS `booking_passengers`; +CREATE TABLE IF NOT EXISTS `booking_passengers` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `booking_id` bigint UNSIGNED NOT NULL, + `first_name` varchar(100) COLLATE utf32_persian_ci NOT NULL, + `last_name` varchar(100) COLLATE utf32_persian_ci NOT NULL, + `national_code` varchar(20) COLLATE utf32_persian_ci NOT NULL, + `passenger_type` tinyint NOT NULL COMMENT '0 = child\r\n1 = adult', + `birth_date` date NOT NULL, + `created_at` timestamp NOT NULL, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `comments` +-- + +DROP TABLE IF EXISTS `comments`; +CREATE TABLE IF NOT EXISTS `comments` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `user_id` bigint UNSIGNED NOT NULL, + `comment` text COLLATE utf32_persian_ci NOT NULL, + `status` tinyint NOT NULL COMMENT '0:pending|1:approaved |2:rejected', + `created_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + KEY `comment_fk1` (`user_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `files` +-- + +DROP TABLE IF EXISTS `files`; +CREATE TABLE IF NOT EXISTS `files` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(200) COLLATE utf32_persian_ci NOT NULL, + `extension` varchar(10) COLLATE utf32_persian_ci NOT NULL, + `size` bigint UNSIGNED NOT NULL COMMENT 'bytes', + `original_name` varchar(350) COLLATE utf32_persian_ci NOT NULL, + `path` varchar(30) COLLATE utf32_persian_ci NOT NULL, + `created_at` timestamp NOT NULL, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `flights` +-- + +DROP TABLE IF EXISTS `flights`; +CREATE TABLE IF NOT EXISTS `flights` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `summary` varchar(512) COLLATE utf32_persian_ci NOT NULL, + `arrival_aiport_id` bigint UNSIGNED NOT NULL, + `file_id` bigint UNSIGNED NOT NULL, + `flight_type` tinyint NOT NULL COMMENT '0:departure|1:return|2:roundtrip', + `departure_time` int NOT NULL, + `price` decimal(10,0) NOT NULL, + `deprature_airport_id` bigint UNSIGNED NOT NULL, + `destination` varchar(255) COLLATE utf32_persian_ci NOT NULL, + `airline_id` bigint UNSIGNED NOT NULL, + `capacity` int UNSIGNED NOT NULL, + `status` tinyint NOT NULL COMMENT '0:disable |1:enable', + `created_at` timestamp NOT NULL, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + KEY `flights_fk1` (`airline_id`), + KEY `flights_fk2` (`file_id`), + KEY `flights_fk3` (`arrival_aiport_id`), + KEY `flights_fk4` (`deprature_airport_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `tours` +-- + +DROP TABLE IF EXISTS `tours`; +CREATE TABLE IF NOT EXISTS `tours` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `title` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `summary` varchar(512) COLLATE utf32_persian_ci NOT NULL, + `descriptions` text COLLATE utf32_persian_ci NOT NULL, + `file_id` bigint UNSIGNED NOT NULL, + `origin` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `destination` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `duration` int UNSIGNED NOT NULL, + `status` tinyint NOT NULL COMMENT '0:enable|1:disable', + `created_at` timestamp NOT NULL, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + KEY `tours_fk1` (`file_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `tour_dates` +-- + +DROP TABLE IF EXISTS `tour_dates`; +CREATE TABLE IF NOT EXISTS `tour_dates` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `tour_id` bigint UNSIGNED NOT NULL, + `start_date` date NOT NULL, + `end_date` date NOT NULL, + `price` int UNSIGNED NOT NULL, + `capacity` int UNSIGNED NOT NULL, + `status` tinyint NOT NULL COMMENT '0:disable |1:enable', + `created_at` timestamp NOT NULL, + `updated_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + KEY `tours_dates_fk1` (`tour_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +CREATE TABLE IF NOT EXISTS `users` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, + `first_name` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `last_name` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `national_code` varchar(10) COLLATE utf32_persian_ci NOT NULL, + `gender` tinyint NOT NULL COMMENT '0:male | 1:female |2:unknown', + `marital_status` tinyint NOT NULL COMMENT '0:single |1:marrid |2:separated', + `spouse_name` varchar(256) COLLATE utf32_persian_ci DEFAULT NULL, + `mobile` varchar(11) COLLATE utf32_persian_ci NOT NULL, + `email` varchar(150) COLLATE utf32_persian_ci NOT NULL, + `image_id` bigint UNSIGNED DEFAULT NULL, + `username` varchar(200) COLLATE utf32_persian_ci NOT NULL, + `password` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `password_confirmation` varchar(250) COLLATE utf32_persian_ci NOT NULL, + `user_province` varchar(30) COLLATE utf32_persian_ci NOT NULL, + `user_city` varchar(30) COLLATE utf32_persian_ci NOT NULL, + `status` tinyint UNSIGNED DEFAULT NULL COMMENT '0:disable | 1:pending | 2:enable ', + `created_at` timestamp NOT NULL, + `updatet_at` timestamp NOT NULL, + `deleted_at` timestamp NOT NULL, + PRIMARY KEY (`id`), + KEY `user_img_fk` (`image_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_persian_ci; + +-- +-- Constraints for dumped tables +-- + +-- +-- Constraints for table `bookings` +-- +ALTER TABLE `bookings` + ADD CONSTRAINT `bookings_fk1` FOREIGN KEY (`user_id`) REFERENCES `bookings` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + ADD CONSTRAINT `bookings_fk2` FOREIGN KEY (`flight_id`) REFERENCES `flights` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + ADD CONSTRAINT `bookings_fk3` FOREIGN KEY (`tour_date_id`) REFERENCES `tour_dates` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; + +-- +-- Constraints for table `comments` +-- +ALTER TABLE `comments` + ADD CONSTRAINT `comment_fk1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; + +-- +-- Constraints for table `flights` +-- +ALTER TABLE `flights` + ADD CONSTRAINT `flights_fk1` FOREIGN KEY (`airline_id`) REFERENCES `airlines` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + ADD CONSTRAINT `flights_fk2` FOREIGN KEY (`file_id`) REFERENCES `files` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + ADD CONSTRAINT `flights_fk3` FOREIGN KEY (`arrival_aiport_id`) REFERENCES `airports` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + ADD CONSTRAINT `flights_fk4` FOREIGN KEY (`deprature_airport_id`) REFERENCES `airports` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; + +-- +-- Constraints for table `tours` +-- +ALTER TABLE `tours` + ADD CONSTRAINT `tours_fk1` FOREIGN KEY (`file_id`) REFERENCES `files` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; + +-- +-- Constraints for table `tour_dates` +-- +ALTER TABLE `tour_dates` + ADD CONSTRAINT `tours_dates_fk1` FOREIGN KEY (`tour_id`) REFERENCES `tours` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; + +-- +-- Constraints for table `users` +-- +ALTER TABLE `users` + ADD CONSTRAINT `user_img_fk` FOREIGN KEY (`image_id`) REFERENCES `files` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php new file mode 100644 index 0000000..effab5d --- /dev/null +++ b/resources/views/auth/login.blade.php @@ -0,0 +1,60 @@ +@extends('layouts.app') +@section('content') +
+ + + +
+
+
+ +
+
+
+ +
+@endsection diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php new file mode 100644 index 0000000..922fea1 --- /dev/null +++ b/resources/views/auth/register.blade.php @@ -0,0 +1,333 @@ +@extends('layouts.app') +@section('content') +
+ + + +
+
+
+ +
+
+
+ +
+@endsection diff --git a/resources/views/layouts/header.blade.php b/resources/views/layouts/header.blade.php index 2c1b95b..eb8a163 100644 --- a/resources/views/layouts/header.blade.php +++ b/resources/views/layouts/header.blade.php @@ -42,8 +42,8 @@
- وارد شدن - ثبت نام + وارد شدن + ثبت نام