id(); $table->foreignId('city_id')->constrained('cities')->cascadeOnDelete(); $table->foreignId('owner_character_id')->nullable()->constrained('characters')->nullOnDelete(); $table->string('type', 40)->default('house'); $table->string('name', 160)->nullable(); $table->decimal('pos_x', 10, 2); $table->decimal('pos_z', 10, 2); $table->decimal('width', 8, 2)->default(10); $table->decimal('depth', 8, 2)->default(10); $table->decimal('height', 8, 2)->default(5); $table->boolean('is_complete')->default(false)->index(); $table->unsignedTinyInteger('build_progress')->default(0); $table->timestamps(); $table->index(['city_id', 'type']); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('buildings'); } };