# Generated by Django 5.1.3 on 2024-12-31 09:48 import uuid from decimal import Decimal import django.db.models.deletion import django.utils.timezone from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ("files", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="Brand", 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" ), ), ( "name", models.CharField( max_length=100, unique=True, verbose_name="nombre" ), ), ], options={ "verbose_name": "marca", "verbose_name_plural": "marcas", }, ), migrations.CreateModel( name="Provider", 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" ), ), ( "vat_id", models.CharField( max_length=32, unique=True, verbose_name="documento de identidad", ), ), ("name", models.CharField(max_length=64, verbose_name="nombre")), ( "email", models.EmailField( max_length=254, verbose_name="e-mail de contacto" ), ), ( "phone", models.CharField( blank=True, default="", max_length=16, null=True, verbose_name="Teléfono de contacto", ), ), ("address", models.CharField(max_length=255, verbose_name="dirección")), ("city", models.CharField(max_length=64, verbose_name="ciudad")), ("state", models.CharField(max_length=64, verbose_name="región")), ("country", models.CharField(max_length=64, verbose_name="país")), ("zip", models.CharField(max_length=32, verbose_name="código postal")), ], options={ "verbose_name": "proveedor", "verbose_name_plural": "proveedores", }, ), migrations.CreateModel( name="Tag", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=16)), ], options={ "verbose_name": "etiqueta", "verbose_name_plural": "etiquetas", "ordering": ("name",), }, ), migrations.CreateModel( name="Tax", 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" ), ), ( "code", models.CharField( max_length=8, unique=True, verbose_name="código de impuesto" ), ), ( "value", models.PositiveIntegerField( verbose_name="valor entero (porcentaje)" ), ), ], options={ "verbose_name": "impuesto", "verbose_name_plural": "impuestos", "ordering": ("id",), }, ), migrations.CreateModel( name="Cart", fields=[ ( "uuid", models.UUIDField( default=uuid.uuid4, primary_key=True, serialize=False, verbose_name="uuid", ), ), ( "creation_date", models.DateTimeField( auto_now_add=True, verbose_name="fecha de creación" ), ), ( "user", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name="usuario", ), ), ], options={ "verbose_name": "carrito", "verbose_name_plural": "carritos", }, ), migrations.CreateModel( name="CustomerAddress", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "vat_id", models.CharField( blank=True, default="", max_length=16, null=True, verbose_name="número de identificación fiscal", ), ), ( "full_name", models.CharField(max_length=128, verbose_name="dirección"), ), ("address", models.CharField(max_length=128, verbose_name="dirección")), ( "address_town", models.CharField(max_length=64, verbose_name="localidad"), ), ( "address_zip", models.CharField(max_length=16, verbose_name="código postal"), ), ( "address_state", models.CharField(max_length=64, verbose_name="provincia"), ), ( "address_country", models.CharField( default="ESPAÑA", max_length=64, verbose_name="país" ), ), ( "address_phone", models.CharField( blank=True, default="", max_length=16, null=True, verbose_name="teléfono", ), ), ( "address_type", models.CharField( choices=[("BILL", "facturación"), ("SHIP", "envío")], default="SHIP", max_length=4, verbose_name="tipo de dirección", ), ), ( "default", models.BooleanField(default=True, verbose_name="por defecto"), ), ( "hidden", models.BooleanField( db_index=True, default=False, verbose_name="oculto" ), ), ( "user", models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name="usuario", ), ), ], options={ "verbose_name": "dirección de cliente", "verbose_name_plural": "direcciones de cliente", }, ), migrations.CreateModel( name="Order", 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" ), ), ( "uuid", models.UUIDField( db_index=True, default=uuid.uuid4, verbose_name="UUID" ), ), ( "status", models.CharField( default="PEN", max_length=3, verbose_name="estado" ), ), ( "base_total", models.DecimalField( decimal_places=2, default=Decimal("0"), max_digits=13, verbose_name="base imponible", ), ), ( "total", models.DecimalField( decimal_places=2, default=Decimal("0"), max_digits=13, verbose_name="total", ), ), ( "billing_address", models.CharField( max_length=255, verbose_name="dirección de facturación" ), ), ( "billing_city", models.CharField( max_length=64, verbose_name="ciudad de facturación" ), ), ( "billing_state", models.CharField( max_length=64, verbose_name="región de facturación" ), ), ( "billing_country", models.CharField(max_length=64, verbose_name="país de facturación"), ), ( "billing_zip", models.CharField( max_length=32, verbose_name="código postal de facturación" ), ), ( "shipping_address", models.CharField(max_length=255, verbose_name="dirección"), ), ( "shipping_city", models.CharField(max_length=64, verbose_name="ciudad"), ), ( "shipping_state", models.CharField(max_length=64, verbose_name="región"), ), ( "shipping_country", models.CharField(max_length=64, verbose_name="país"), ), ( "shipping_zip", models.CharField(max_length=32, verbose_name="código postal"), ), ( "contact_phone", models.CharField( blank=True, max_length=32, verbose_name="teléfono de contacto" ), ), ( "user", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, verbose_name="cliente", ), ), ], options={ "verbose_name": "pedido", "verbose_name_plural": "pedidos", }, ), migrations.CreateModel( name="Product", 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" ), ), ("name", models.CharField(max_length=96, verbose_name="nombre")), ( "description", models.TextField( blank=True, default="", verbose_name="descripción" ), ), ( "stock", models.DecimalField( decimal_places=4, default=Decimal("0"), max_digits=13, verbose_name="stock", ), ), ( "is_digital_asset", models.BooleanField( default=False, verbose_name="es un activo digital" ), ), ("url", models.URLField(blank=True, verbose_name="URL de descarga")), ( "slug", models.SlugField( blank=True, default="", max_length=128, null=True, verbose_name="Slug", ), ), ( "hidden", models.BooleanField( db_index=True, default=False, verbose_name="oculto" ), ), ( "brand", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="shop.brand", verbose_name="marca", ), ), ( "images", models.ManyToManyField( blank=True, to="files.fileupload", verbose_name="imágenes" ), ), ], options={ "verbose_name": "producto", "verbose_name_plural": "productos", "ordering": ("id",), }, ), migrations.CreateModel( name="OrderLine", 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" ), ), ( "quantity", models.DecimalField( decimal_places=4, default=Decimal("1"), max_digits=13, verbose_name="cantidad", ), ), ( "price", models.DecimalField( decimal_places=4, max_digits=13, verbose_name="precio" ), ), ( "base_total", models.DecimalField( decimal_places=4, default=Decimal("0"), max_digits=13, verbose_name="total sin impuestos", ), ), ( "tax_value", models.PositiveIntegerField(verbose_name="valor de impuestos"), ), ( "taxes", models.DecimalField( decimal_places=4, max_digits=13, verbose_name="impuestos" ), ), ( "total", models.DecimalField( decimal_places=4, max_digits=13, verbose_name="total" ), ), ( "order", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="lines", to="shop.order", verbose_name="pedido", ), ), ( "product", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="shop.product", verbose_name="producto", ), ), ], options={ "verbose_name": "línea de pedido", "verbose_name_plural": "líneas de pedido", }, ), migrations.CreateModel( name="CartItem", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "quantity", models.PositiveIntegerField(default=1, verbose_name="cantidad"), ), ( "cart", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="items", to="shop.cart", verbose_name="carrito", ), ), ( "product", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="shop.product", verbose_name="producto", ), ), ], options={ "verbose_name": "línea de carrito", "verbose_name_plural": "líneas de carrito", }, ), migrations.CreateModel( name="ProductCategory", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=32)), ( "promoted", models.BooleanField(default=False, verbose_name="promocionada"), ), ("hidden", models.BooleanField(default=False, verbose_name="oculta")), ( "show_in_navbar", models.BooleanField( default=False, verbose_name="mostrar en cabecera" ), ), ( "slug", models.SlugField( blank=True, default="", max_length=48, unique=True, verbose_name="slug", ), ), ( "parent", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="shop.productcategory", verbose_name="categoría padre", ), ), ], options={ "verbose_name": "categoría", "verbose_name_plural": "categorías", "ordering": ("name",), }, ), migrations.AddField( model_name="product", name="categories", field=models.ManyToManyField( blank=True, to="shop.productcategory", verbose_name="categorías" ), ), migrations.CreateModel( name="ProductBatch", 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" ), ), ( "code", models.CharField( db_index=True, max_length=32, unique=True, verbose_name="código" ), ), ( "quantity", models.DecimalField( decimal_places=4, default=Decimal("1"), max_digits=13, verbose_name="cantidad", ), ), ( "expiration_date", models.DateField( blank=True, null=True, verbose_name="fecha de caducidad / consumo preferente", ), ), ( "product", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to="shop.product", verbose_name="producto", ), ), ( "provider", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to="shop.provider", verbose_name="proveedor", ), ), ], options={ "verbose_name": "remesa de producto", "verbose_name_plural": "remesas de productos", }, ), migrations.CreateModel( name="ShippingMethod", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("name", models.CharField(max_length=64, verbose_name="nombre")), ( "description", models.CharField( blank=True, default="", max_length=256, verbose_name="description", ), ), ("url", models.URLField(blank=True, default="", verbose_name="url")), ( "enabled", models.BooleanField(default=True, verbose_name="habilitado"), ), ( "shipping_product", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="shop.product", verbose_name="producto de envío", ), ), ], options={ "verbose_name": "método de envío", "verbose_name_plural": "métodos de envío", }, ), migrations.AddField( model_name="product", name="tags", field=models.ManyToManyField( blank=True, to="shop.tag", verbose_name="etiquetas" ), ), migrations.CreateModel( name="ProductPrice", 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" ), ), ( "price", models.DecimalField( decimal_places=2, max_digits=11, verbose_name="precio" ), ), ( "date", models.DateTimeField( default=django.utils.timezone.now, verbose_name="fecha" ), ), ( "price_with_tax", models.DecimalField( blank=True, decimal_places=2, max_digits=11, null=True, verbose_name="precio con impuestos", ), ), ( "current", models.BooleanField( default=False, verbose_name="es el precio actual" ), ), ( "product", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="prices", to="shop.product", verbose_name="producto", ), ), ( "tax", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to="shop.tax", verbose_name="impuesto aplicable", ), ), ], options={ "verbose_name": "precio de producto", "verbose_name_plural": "precio de producto", "ordering": ("-date",), }, ), ]