diff --git a/app/Domains/Catalog/Models/ProductVariant.php b/app/Domains/Catalog/Models/ProductVariant.php index abb481b..fad64ac 100644 --- a/app/Domains/Catalog/Models/ProductVariant.php +++ b/app/Domains/Catalog/Models/ProductVariant.php @@ -13,7 +13,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany; #[Fillable([ 'producto_id', 'stock', - 'is_default', + 'is_placeholder', ])] class ProductVariant extends Model { @@ -26,7 +26,7 @@ class ProductVariant extends Model return [ 'producto_id' => 'integer', 'stock' => 'integer', - 'is_default' => 'boolean', + 'is_placeholder' => 'boolean', ]; } diff --git a/app/Domains/Catalog/Services/ProductService.php b/app/Domains/Catalog/Services/ProductService.php index 1df6c08..c4c1832 100644 --- a/app/Domains/Catalog/Services/ProductService.php +++ b/app/Domains/Catalog/Services/ProductService.php @@ -44,7 +44,7 @@ class ProductService // Create default variant with stock $this->createVariant($product, [ 'stock' => $stock, - 'is_default' => true, + 'is_placeholder' => true, 'definitions' => [], ]); @@ -117,14 +117,14 @@ class ProductService $images = $data['images'] ?? []; unset($data['images']); - // Determine if the variant being created is a default one + // Determine if the variant being created is a placeholder one $hasDefinitions = ! empty($data['definitions']); - $isDefault = $data['is_default'] ?? (! $hasDefinitions); - $data['is_default'] = $isDefault; + $isPlaceholder = $data['is_placeholder'] ?? (! $hasDefinitions); + $data['is_placeholder'] = $isPlaceholder; - // If the variant being created is not a default variant, remove any existing default variants - if (! $isDefault) { - $defaultVariants = $product->variants()->where('is_default', true)->get(); + // If the variant being created is not a placeholder variant, remove any existing placeholder variants + if (! $isPlaceholder) { + $defaultVariants = $product->variants()->where('is_placeholder', true)->get(); foreach ($defaultVariants as $defaultVariant) { $this->deleteVariantAttachments($defaultVariant); $product->deleteVariant($defaultVariant); @@ -180,7 +180,7 @@ class ProductService if ($product->variants()->count() === 0) { $product->createVariant([ 'stock' => 0, - 'is_default' => true, + 'is_placeholder' => true, 'definitions' => [], ]); } diff --git a/database/migrations/2026_07_01_100000_add_is_default_to_productos_variantes_table.php b/database/migrations/2026_07_01_100000_add_is_placeholder_to_productos_variantes_table.php similarity index 80% rename from database/migrations/2026_07_01_100000_add_is_default_to_productos_variantes_table.php rename to database/migrations/2026_07_01_100000_add_is_placeholder_to_productos_variantes_table.php index c88f72d..fe1ed7d 100644 --- a/database/migrations/2026_07_01_100000_add_is_default_to_productos_variantes_table.php +++ b/database/migrations/2026_07_01_100000_add_is_placeholder_to_productos_variantes_table.php @@ -12,7 +12,7 @@ return new class extends Migration public function up(): void { Schema::table('productos_variantes', function (Blueprint $table) { - $table->boolean('is_default')->default(false)->after('stock'); + $table->boolean('is_placeholder')->default(false)->after('stock'); }); } @@ -22,7 +22,7 @@ return new class extends Migration public function down(): void { Schema::table('productos_variantes', function (Blueprint $table) { - $table->dropColumn('is_default'); + $table->dropColumn('is_placeholder'); }); } }; diff --git a/tests/Feature/Catalog/ProductControllerTest.php b/tests/Feature/Catalog/ProductControllerTest.php index 5688cd6..08fb365 100644 --- a/tests/Feature/Catalog/ProductControllerTest.php +++ b/tests/Feature/Catalog/ProductControllerTest.php @@ -635,7 +635,7 @@ class ProductControllerTest extends TestCase $variant = $product->variants()->first(); $this->assertEquals(15, $variant->stock); - $this->assertTrue($variant->is_default); + $this->assertTrue($variant->is_placeholder); // Should have no definitions $this->assertEquals(0, $variant->definitions()->count()); } @@ -654,7 +654,7 @@ class ProductControllerTest extends TestCase $defaultVariant = $product->variants()->create([ 'stock' => 10, - 'is_default' => true, + 'is_placeholder' => true, ]); $this->assertEquals(1, $product->variants()->count()); @@ -682,7 +682,7 @@ class ProductControllerTest extends TestCase $this->assertEquals(1, $product->variants()->count()); $newVariant = $product->variants()->first(); $this->assertEquals(5, $newVariant->stock); - $this->assertFalse($newVariant->is_default); + $this->assertFalse($newVariant->is_placeholder); } public function test_it_restores_default_variant_when_all_variants_are_deleted(): void @@ -699,7 +699,7 @@ class ProductControllerTest extends TestCase $realVariant = $product->createVariant([ 'stock' => 5, - 'is_default' => false, + 'is_placeholder' => false, 'definitions' => [ [ 'products_attribute_id' => $productAttributes['size']->id, @@ -714,11 +714,11 @@ class ProductControllerTest extends TestCase $response = $this->deleteJson("/api/tenants/{$this->tenant->codigo}/productos/{$product->id}/variants/{$realVariant->id}"); $response->assertNoContent(); - // A default variant should be recreated with stock 0 and is_default = true + // A default variant should be recreated with stock 0 and is_placeholder = true $this->assertEquals(1, $product->variants()->count()); $defaultVariant = $product->variants()->first(); $this->assertEquals(0, $defaultVariant->stock); - $this->assertTrue($defaultVariant->is_default); + $this->assertTrue($defaultVariant->is_placeholder); $this->assertEquals(0, $defaultVariant->definitions()->count()); }