use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::create('users', function (Blueprint $table) { $table->uuid('id')->primary(); $table->string('username')->unique(); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->string('role')->default('user'); // guest, user, creator, moderator, editor, admin, super_admin $table->string('status')->default('active'); // active, suspended, banned $table->rememberToken(); $table->timestamps(); $table->softDeletes(); }); Schema::create('user_profiles', function (Blueprint $table) { $table->uuid('id')->primary(); $table->uuid('user_id')->unique(); $table->string('display_name')->nullable(); $table->text('bio')->nullable(); $table->string('location')->nullable(); $table->string('country')->nullable(); $table->string('website')->nullable(); $table->string('avatar_url')->nullable(); $table->string('cover_photo_url')->nullable(); $table->json('social_links')->nullable(); $table->json('privacy_settings')->nullable(); $table->timestamps(); $table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete(); }); } public function down(): void { Schema::dropIfExists('user_profiles'); Schema::dropIfExists('users'); } };