Files
shoppy/shop/migrations/0001_initial.py
T
2024-05-05 00:04:51 +02:00

369 lines
12 KiB
Python

# Generated by Django 5.0.3 on 2024-04-24 14:00
import django.db.models.deletion
import django.utils.timezone
import uuid
from decimal import Decimal
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="Customer",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"vat_id",
models.CharField(
max_length=32,
unique=True,
verbose_name="Documento de identidad",
),
),
("first_name", models.CharField(max_length=64, verbose_name="Nombre")),
(
"last_name",
models.CharField(max_length=64, verbose_name="Apellidos"),
),
("email", models.EmailField(max_length=254, verbose_name="E-mail")),
("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": "Cliente",
"verbose_name_plural": "Clientes",
},
),
migrations.CreateModel(
name="Product",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=96, verbose_name="Nombre")),
(
"description",
models.CharField(
blank=True,
default="",
max_length=1000,
verbose_name="Descripción",
),
),
(
"stock",
models.DecimalField(
decimal_places=4,
default=Decimal("0"),
max_digits=13,
verbose_name="Stock",
),
),
(
"unit",
models.CharField(
choices=[("UNIT", "Unidad"), ("KG", "kg"), ("L", "L")],
default="UNIT",
max_length=6,
verbose_name="Unidad de medida",
),
),
],
options={
"verbose_name": "Producto",
"verbose_name_plural": "Productos",
},
),
migrations.CreateModel(
name="Tax",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"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",
},
),
migrations.CreateModel(
name="Order",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"uuid",
models.UUIDField(
db_index=True, default=uuid.uuid4, verbose_name="UUID"
),
),
(
"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"
),
),
(
"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"
),
),
(
"customer",
models.ForeignKey(
on_delete=django.db.models.deletion.PROTECT,
to="shop.customer",
verbose_name="Cliente",
),
),
],
options={
"verbose_name": "Pedido",
"verbose_name_plural": "Pedidos",
},
),
migrations.CreateModel(
name="OrderLine",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"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="ProductPrice",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"price",
models.DecimalField(
decimal_places=2, max_digits=11, verbose_name="Precio"
),
),
(
"date",
models.DateTimeField(
default=django.utils.timezone.now, verbose_name="Fecha"
),
),
(
"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",
},
),
]