git add .

git commit "Implement user registration"
This commit is contained in:
2026-08-16 08:52:04 +03:30
parent cd74c1848a
commit 687681744a
22 changed files with 1036 additions and 210 deletions
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Auth;
use App\Enums\UserStatus;
use App\Http\Controllers\Controller;
use App\Http\Requests\RegisterRequest;
use App\Models\Province;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -17,13 +18,13 @@ class RegisterController extends Controller
$withoutHeader = true;
$withoutFooter = true;
$withoutHero = true;
return view('auth.register',compact('withoutHeader','withoutFooter','withoutHero'));
$provinces=Province::orderBy('name')->get();
return view('auth.register',compact('withoutHeader','withoutFooter','withoutHero','provinces'));
}
public function post(RegisterRequest $request)
{
$inputs = $request->validated();
$inputs = $request->validated();
if ($request->hasFile('image')) {
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
//
public function index()
{
return view('layouts.app');
}
}
+8 -6
View File
@@ -4,6 +4,7 @@ namespace App\Http\Requests;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
class RegisterRequest extends FormRequest
{
@@ -39,7 +40,8 @@ class RegisterRequest extends FormRequest
'national_code' => [
'required',
'unique:users,national_code'
'unique:users,national_code',
'ir_national_id'
],
'gender' => [
@@ -59,14 +61,13 @@ class RegisterRequest extends FormRequest
'mobile' => [
'required',
'unique:users,mobile',
'ir_mobile:zero_code'
'ir_mobile'
],
'email' => [
'required',
'email',
'unique:users,email',
'ir_national_id'
],
'username' => [
@@ -81,13 +82,14 @@ class RegisterRequest extends FormRequest
],
'province_id' => [
'required',
'nullable',
'exists:provinces,id',
],
'city_id' => [
'required',
'exists:cities,id',
'nullable',
Rule::exists('cities', 'id')
->where(fn ($query) => $query->where('province_id', $this->province_id)),
],
+9
View File
@@ -7,6 +7,7 @@
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
/**
@@ -23,12 +24,15 @@ use Illuminate\Database\Eloquent\Model;
* @property int $status
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @property Collection|Role[] $roles
*
* @package App\Models
*/
class Admin extends Model
{
protected $table = 'admins';
public static $snakeAttributes = false;
protected $casts = [
'status' => 'int'
@@ -48,4 +52,9 @@ class Admin extends Model
'image',
'status'
];
public function roles()
{
return $this->belongsToMany(Role::class, 'admin_roles');
}
}
+43
View File
@@ -0,0 +1,43 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* Class AdminRole
*
* @property int $admin_id
* @property int $role_id
*
* @property Admin $admin
* @property Role $role
*
* @package App\Models
*/
class AdminRole extends Model
{
protected $table = 'admin_roles';
public $incrementing = false;
public $timestamps = false;
public static $snakeAttributes = false;
protected $casts = [
'admin_id' => 'int',
'role_id' => 'int'
];
public function admin()
{
return $this->belongsTo(Admin::class);
}
public function role()
{
return $this->belongsTo(Role::class);
}
}
+44
View File
@@ -0,0 +1,44 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
/**
* Class City
*
* @property int $id
* @property int $provinces
* @property string $name
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @property Collection|User[] $users
*
* @package App\Models
*/
class City extends Model
{
protected $table = 'cities';
public static $snakeAttributes = false;
protected $casts = [
'provinces' => 'int'
];
protected $fillable = [
'provinces',
'name'
];
public function users()
{
return $this->hasMany(User::class);
}
}
+1
View File
@@ -29,6 +29,7 @@ use Illuminate\Database\Eloquent\Model;
class Comment extends Model
{
protected $table = 'comments';
public static $snakeAttributes = false;
protected $casts = [
'user_id' => 'int',
+1
View File
@@ -26,6 +26,7 @@ class Favorite extends Model
{
protected $table = 'favorites';
public $timestamps = false;
public static $snakeAttributes = false;
protected $casts = [
'user_id' => 'int',
+1
View File
@@ -26,6 +26,7 @@ use Illuminate\Database\Eloquent\Model;
class File extends Model
{
protected $table = 'files';
public static $snakeAttributes = false;
protected $casts = [
'size' => 'int'
+1
View File
@@ -32,6 +32,7 @@ use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
protected $table = 'flights';
public static $snakeAttributes = false;
protected $casts = [
'departure_date' => 'datetime',
+42
View File
@@ -0,0 +1,42 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
/**
* Class Permission
*
* @property int $id
* @property string $name
* @property string $slug
* @property string|null $description
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @property Collection|Role[] $roles
*
* @package App\Models
*/
class Permission extends Model
{
protected $table = 'permissions';
public static $snakeAttributes = false;
protected $fillable = [
'name',
'slug',
'description'
];
public function roles()
{
return $this->belongsToMany(Role::class, 'role_permissions');
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class Province
*
* @property int $id
* @property string $name
* @property Carbon|null $created_at
* @property Carbon|null $updated_at
*
* @package App\Models
*/
class Province extends Model
{
protected $table = 'provinces';
public static $snakeAttributes = false;
protected $fillable = [
'name'
];
public function users()
{
return $this->hasMany(User::class);
}
}
+48
View File
@@ -0,0 +1,48 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
/**
* Class Role
*
* @property int $id
* @property string $name
* @property string $slug
* @property string $description
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @property Collection|Admin[] $admins
* @property Collection|Permission[] $permissions
*
* @package App\Models
*/
class Role extends Model
{
protected $table = 'roles';
public static $snakeAttributes = false;
protected $fillable = [
'name',
'slug',
'description'
];
public function admins()
{
return $this->belongsToMany(Admin::class, 'admin_roles');
}
public function permissions()
{
return $this->belongsToMany(Permission::class, 'role_permissions');
}
}
+43
View File
@@ -0,0 +1,43 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* Class RolePermission
*
* @property int $role_id
* @property int $permission_id
*
* @property Permission $permission
* @property Role $role
*
* @package App\Models
*/
class RolePermission extends Model
{
protected $table = 'role_permissions';
public $incrementing = false;
public $timestamps = false;
public static $snakeAttributes = false;
protected $casts = [
'role_id' => 'int',
'permission_id' => 'int'
];
public function permission()
{
return $this->belongsTo(Permission::class);
}
public function role()
{
return $this->belongsTo(Role::class);
}
}
+32
View File
@@ -0,0 +1,32 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
/**
* Class Setting
*
* @property int $id
* @property string $code
* @property string $value
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @package App\Models
*/
class Setting extends Model
{
protected $table = 'settings';
public static $snakeAttributes = false;
protected $fillable = [
'code',
'value'
];
}
+1
View File
@@ -32,6 +32,7 @@ use Illuminate\Database\Eloquent\Model;
class Tour extends Model
{
protected $table = 'tours';
public static $snakeAttributes = false;
protected $casts = [
'travel_type_id' => 'int',
+1
View File
@@ -23,6 +23,7 @@ class TourFlight extends Model
{
protected $table = 'tour_flights';
public $timestamps = false;
public static $snakeAttributes = false;
protected $casts = [
'tour_id' => 'int',
+1
View File
@@ -23,6 +23,7 @@ use Illuminate\Database\Eloquent\Model;
class TravelType extends Model
{
protected $table = 'travel_types';
public static $snakeAttributes = false;
protected $casts = [
'status' => 'int'
+21 -7
View File
@@ -8,14 +8,15 @@ namespace App\Models;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Model;
/**
* Class User
*
* @property int $id
* @property string $Firstname
* @property string $Lastname
* @property string $first_name
* @property string $last_name
* @property string $national_code
* @property int $gender
* @property int $marital_status
@@ -25,24 +26,28 @@ use Illuminate\Database\Eloquent\Model;
* @property string|null $profile_image
* @property string $username
* @property string $password
* @property string|null $province
* @property string|null $city
* @property int $province_id
* @property int $city_id
* @property int $status
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @property City $city
* @property Collection|Comment[] $comments
* @property Collection|Favorite[] $favorites
*
* @package App\Models
*/
class User extends Model
class User extends Authenticatable
{
protected $table = 'users';
public static $snakeAttributes = false;
protected $casts = [
'gender' => 'int',
'marital_status' => 'int',
'province_id' => 'int',
'city_id' => 'int',
'status' => 'int'
];
@@ -62,11 +67,20 @@ class User extends Model
'profile_image',
'username',
'password',
'province',
'city',
'province_id',
'city_id',
'status'
];
public function city()
{
return $this->belongsTo(City::class);
}
public function province()
{
return $this->belongsTo(Province::class);
}
public function comments()
{
return $this->hasMany(Comment::class);