feat(cart): create carritos and carrito_items tables with relationships

This commit is contained in:
2026-06-25 10:08:29 -03:00
parent 9b82800921
commit a5b1539a80
2 changed files with 68 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('carritos', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->nullable()->constrained('users')->cascadeOnUpdate()->nullOnDelete();
$table->string('guest_token')->nullable()->index();
$table->enum('status', ['active', 'converted', 'abandoned'])->default('active');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('carritos');
}
};

View File

@@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('carrito_items', function (Blueprint $table) {
$table->id();
$table->foreignId('cart_id')->constrained('carritos')->cascadeOnUpdate()->cascadeOnDelete();
$table->unsignedBigInteger('producto_variante_id');
$table->unsignedInteger('cantidad');
$table->timestamps();
$table->foreign('producto_variante_id')
->references('id')
->on('productos_variantes')
->cascadeOnUpdate()
->cascadeOnDelete();
$table->unique(['cart_id', 'producto_variante_id'], 'cart_item_cart_variant_unique');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('carrito_items');
}
};