refactor(catalog): add ticket_label to item attributes and update related logic

This commit is contained in:
2026-08-19 11:22:46 -03:00
parent 67e6211857
commit 16bc657a31
12 changed files with 114 additions and 11 deletions

View File

@@ -26,6 +26,7 @@ class CatalogSchemaTest extends TestCase
$this->assertTrue(Schema::hasTable('item_attributes'));
$this->assertTrue(Schema::hasColumn('item_attributes', 'sort_order'));
$this->assertTrue(Schema::hasColumn('item_attributes', 'show_in_selector'));
$this->assertTrue(Schema::hasColumn('item_attributes', 'ticket_label'));
$this->assertTrue(Schema::hasTable('variant_values'));
}

View File

@@ -196,6 +196,26 @@ class CatalogServiceTest extends TestCase
$this->assertFalse($item->itemAttributes->sole()->show_in_selector);
}
public function test_it_can_configure_an_attribute_label_for_ticket_names(): void
{
$attribute = $this->createAttribute('sector');
$item = $this->service->create([
'tenant_code' => $this->tenant->codigo,
'slug' => 'ticket-labeled-attribute-item',
'nombre' => 'Ticket labeled attribute item',
'precio' => 100,
'attribute_codes' => [$attribute->codigo],
'ticket_attribute_labels' => [$attribute->codigo => 'Lado'],
'variants' => [[
'real_stock' => 5,
'values' => [$attribute->codigo => 'A'],
]],
]);
$this->assertSame('Lado', $item->itemAttributes->sole()->ticket_label);
}
public function test_it_allows_the_same_event_date_with_different_attribute_values(): void
{
$sector = $this->createAttribute('sector');

View File

@@ -191,6 +191,20 @@ class DesfilePuraTendenciaSeederTest extends TestCase
->pluck('attribute.codigo')
->all(),
);
$this->assertSame(
[
'tipo' => null,
'sector' => 'Lado',
'fila' => 'Fila',
'asiento' => 'Asiento',
],
DB::table('item_attributes')
->join('attribute', 'attribute.id', '=', 'item_attributes.attribute_id')
->where('item_attributes.catalog_item_id', $catalogItem->id)
->orderBy('item_attributes.sort_order')
->pluck('item_attributes.ticket_label', 'attribute.codigo')
->all(),
);
$variants = DB::table('variantes')->where('catalog_item_id', $catalogItem->id);

View File

@@ -125,6 +125,7 @@ class TicketGeneratorServiceTest extends TestCase
$itemSize = $item->itemAttributes()->create([
'attribute_id' => $size->id,
'sort_order' => 2,
'ticket_label' => 'Talle',
]);
$variant = $item->variants()->create([
'inventory_id' => Inventory::query()->create()->id,
@@ -142,7 +143,7 @@ class TicketGeneratorServiceTest extends TestCase
->generate($item, $this->user, 1, $variant->id)
->sole();
$this->assertSame('Shirt (Negro, XL)', $ticket->name);
$this->assertSame('Shirt (Negro, Talle XL)', $ticket->name);
$this->assertSame('Descripción de la variante', $ticket->description);
$item->update([
@@ -153,7 +154,7 @@ class TicketGeneratorServiceTest extends TestCase
$variant->update(['descripcion' => 'Descripción actualizada de la variante']);
$ticket = $ticket->fresh();
$this->assertSame('Remera (Azul, XL)', $ticket->name);
$this->assertSame('Remera (Azul, Talle XL)', $ticket->name);
$this->assertSame('Descripción actualizada de la variante', $ticket->description);
}