id(); $table->foreignId('layer_id')->constrained()->onDelete('cascade'); $table->string('name')->nullable(); $table->json('geometry'); // GeoJSON geometry object (Point, LineString, Polygon) $table->json('properties')->nullable(); // propiedades extra (progreso, responsable, etc.) $table->foreignId('template_id')->nullable()->constrained('inspection_templates'); $table->integer('progress')->default(0); $table->string('responsible')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('features'); } };