feature(auth): add columns to users table
- add extra columns in users table - add traits for enum values as array - refactor enums to specific namespace
This commit is contained in:
parent
a8ffb42947
commit
ed914b531d
14
app/Enums/UserStatus.php
Normal file
14
app/Enums/UserStatus.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
use App\Traits\EnumAsArray;
|
||||
|
||||
enum UserStatus: string
|
||||
{
|
||||
use EnumAsArray;
|
||||
|
||||
case Active = 'active';
|
||||
case Blocked = 'blocked';
|
||||
case Pending = 'pending';
|
||||
}
|
||||
@ -1,9 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
namespace App\Enums;
|
||||
|
||||
use App\Traits\EnumAsArray;
|
||||
|
||||
enum UserTypes: string
|
||||
{
|
||||
use EnumAsArray;
|
||||
|
||||
case Admin = 'admin';
|
||||
case User = 'user';
|
||||
case Broker = 'broker';
|
||||
11
app/Traits/EnumAsArray.php
Normal file
11
app/Traits/EnumAsArray.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Traits;
|
||||
|
||||
trait EnumAsArray
|
||||
{
|
||||
public static function values(): array
|
||||
{
|
||||
return array_column(self::cases(), 'value');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use App\Enums\UserStatus;
|
||||
use App\Enums\UserTypes;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->enum('status', UserStatus::values());
|
||||
$table->enum('role', UserTypes::values());
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropColumn('status', 'role');
|
||||
});
|
||||
}
|
||||
};
|
||||
@ -1,5 +1,5 @@
|
||||
@php
|
||||
$options = \App\UserTypes::labels();
|
||||
$options = \App\Enums\UserTypes::labels();
|
||||
@endphp
|
||||
<x-layout>
|
||||
<section class="bg-linear-135 h-screen from-[#EFF6FF] to-[#FCF3F8] flex justify-center items-center">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user