feat: add ProductVariant model and service layer for CRUD operations with attachment handling

This commit is contained in:
2026-07-01 10:09:04 -03:00
parent d6a17cb449
commit a0a0cc7255
4 changed files with 18 additions and 18 deletions

View File

@@ -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());
}