Files
shoppy/shop/migrations/0001_initial.py
T
2024-12-31 11:19:28 +01:00

897 lines
30 KiB
Python

# Generated by Django 5.1.3 on 2024-12-31 09:48
import django.db.models.deletion
import django.utils.timezone
import uuid
from decimal import Decimal
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",),
},
),
]