feat: added product variants
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 6.0.2 on 2026-07-23 08:50
|
||||
|
||||
import uuid
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('shop', '0004_alter_shopsettings_shared_secret_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.uuid4, unique=True, verbose_name='UUID'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,78 @@
|
||||
# Generated by Django 6.0.2 on 2026-07-23 09:20
|
||||
|
||||
import django.db.models.deletion
|
||||
from decimal import Decimal
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('shop', '0005_alter_order_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ProductAttribute',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=32, unique=True, verbose_name='nombre')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'atributo de producto',
|
||||
'verbose_name_plural': 'atributos de producto',
|
||||
'ordering': ('name',),
|
||||
},
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='productprice',
|
||||
name='product',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='prices', to='shop.product', verbose_name='producto'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProductAttributeValue',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('value', models.CharField(max_length=32, verbose_name='valor')),
|
||||
('attribute', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='values', to='shop.productattribute', verbose_name='atributo')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'valor de atributo',
|
||||
'verbose_name_plural': 'valores de atributo',
|
||||
'ordering': ('attribute__name', 'value'),
|
||||
'unique_together': {('attribute', 'value')},
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProductVariant',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('creation_date', models.DateTimeField(auto_now_add=True, verbose_name='fecha de creación')),
|
||||
('last_modification_date', models.DateTimeField(auto_now=True, verbose_name='fecha de última modificación')),
|
||||
('sku', models.CharField(max_length=64, unique=True, verbose_name='código de referencia')),
|
||||
('stock', models.DecimalField(decimal_places=4, default=Decimal('0'), max_digits=13, verbose_name='stock')),
|
||||
('attribute_values', models.ManyToManyField(blank=True, related_name='variants', to='shop.productattributevalue', verbose_name='valores de atributo')),
|
||||
('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='variants', to='shop.product', verbose_name='producto')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'variante de producto',
|
||||
'verbose_name_plural': 'variantes de producto',
|
||||
'ordering': ('product', 'sku'),
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='cartitem',
|
||||
name='variant',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cart_items', to='shop.productvariant', verbose_name='variante'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderline',
|
||||
name='variant',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='order_lines', to='shop.productvariant', verbose_name='variante'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productprice',
|
||||
name='variant',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='prices', to='shop.productvariant', verbose_name='variante'),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user