feat: add routes, model, controller and update related models relations

This commit is contained in:
2026-08-18 16:49:35 +03:30
parent bc2b71c313
commit b1caa3fbfd
7 changed files with 102 additions and 1 deletions
@@ -0,0 +1,35 @@
<?php
namespace App\Http\Controllers\Account;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class FavoriteController extends Controller
{
public function index()
{
}
public function toggleTour()
{
}
public function removeTour()
{
}
public function toggleFlight()
{
}
public function removeFlight()
{
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class Favorite
*
* @property int $id
* @property int $user_id
* @property int|null $tour_id
* @property int|null $flight_id
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @package App\Models
*/
class Favorite extends Model
{
protected $table = 'favorites';
public static $snakeAttributes = false;
protected $casts = [
'user_id' => 'int',
'tour_id' => 'int',
'flight_id' => 'int'
];
protected $fillable = [
'user_id',
'tour_id',
'flight_id'
];
}
+4
View File
@@ -150,5 +150,9 @@ class Flight extends Model
{
return $this->hasMany(Comment::class, 'flight_id');
}
public function favorites()
{
return $this->hasMany(Favorite::class);
}
}
+4
View File
@@ -100,4 +100,8 @@ class Tour extends Model
{
return $this->hasMany(Comment::class, 'tour_id');
}
public function favorites()
{
return $this->hasMany(Favorite::class);
}
}
+4
View File
@@ -108,4 +108,8 @@ class User extends Authenticate
{
return $this->hasMany(Comment::class, 'user_id');
}
public function favorites()
{
return $this->hasMany(Favorite::class);
}
}
@@ -11,7 +11,7 @@
<ul class="user-profile-sidebar-list">
<li><a class="active" href="{{route('accounts.profile')}}"><i class="far fa-user"></i> نمایه من</a></li>
<li><a href="profile-booking.html"><i class="far fa-shopping-bag"></i> رزرو من</a></li>
<li><a href="profile-wishlist.html"><i class="far fa-heart"></i> علاقه مندی های من</a></li>
<li><a href="{{route('accounts.favorites.index')}}"><i class="far fa-heart"></i> علاقه مندی های من</a></li>
<li><a href="{{route('accounts.comments')}}"><i class="fas fa-comments"></i> کامنت‌های من</a></li>
<li><a href="{{route('accounts.edit-profile.index')}}"><i class="far fa-cog"></i> ویرایش حساب کاربری</a></li>
<li><a href="{{route('auth.logout')}}"><i class="far fa-sign-out"></i> خروج</a></li>
+14
View File
@@ -45,4 +45,18 @@ Route::prefix('account')->name('accounts.')->middleware('auth')->group(function
Route::post('change-password', 'changePassword')->name('change-password');
});
Route::prefix('favorites')->name('favorites.')->controller(FavoriteController::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::prefix('tour/{tour}')->name('tour.')->group(function () {
Route::post('/', 'toggleTour')->name('toggle');
Route::delete('/', 'removeTour')->name('remove');
});
Route::prefix('flight/{flight}')->name('flight.')->group(function () {
Route::post('/', 'toggleFlight')->name('toggle');
Route::delete('/', 'removeFlight')->name('remove');
});
});
});