id(); $table->char('mailbox_hash', 64)->unique()->index(); $table->char('domain_hash', 64)->index(); $table->foreignId('user_id')->nullable()->constrained()->onDelete('set null'); $table->string('session_id')->nullable()->index(); $table->string('address')->unique()->index(); $table->string('type'); // public, private, custom, premium $table->string('created_ip', 45)->nullable(); $table->string('last_accessed_ip', 45)->nullable(); $table->timestamp('last_accessed_at')->nullable(); $table->boolean('is_blocked')->default(false); $table->text('block_reason')->nullable(); $table->timestamp('blocked_at')->nullable(); $table->timestamp('expires_at')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('mailboxes'); } };