[pricelist] Use Serial database type instead of int for IDs
This commit is contained in:
parent
a43441e0c5
commit
e3d0014e62
|
@ -1,20 +1,21 @@
|
||||||
from __future__ import annotations # TODO: Remove if python requirement is >= 3.10
|
from __future__ import annotations # TODO: Remove if python requirement is >= 3.10
|
||||||
|
|
||||||
from flaschengeist.database import db
|
from flaschengeist.database import db
|
||||||
|
from flaschengeist.models import ModelSerializeMixin, Serial
|
||||||
from flaschengeist.models.image import Image
|
from flaschengeist.models.image import Image
|
||||||
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
drink_tag_association = db.Table(
|
drink_tag_association = db.Table(
|
||||||
"drink_x_tag",
|
"drink_x_tag",
|
||||||
db.Column("drink_id", db.Integer, db.ForeignKey("drink.id")),
|
db.Column("drink_id", Serial, db.ForeignKey("drink.id")),
|
||||||
db.Column("tag_id", db.Integer, db.ForeignKey("drink_tag.id")),
|
db.Column("tag_id", Serial, db.ForeignKey("drink_tag.id")),
|
||||||
)
|
)
|
||||||
|
|
||||||
drink_type_association = db.Table(
|
drink_type_association = db.Table(
|
||||||
"drink_x_type",
|
"drink_x_type",
|
||||||
db.Column("drink_id", db.Integer, db.ForeignKey("drink.id")),
|
db.Column("drink_id", Serial, db.ForeignKey("drink.id")),
|
||||||
db.Column("type_id", db.Integer, db.ForeignKey("drink_type.id")),
|
db.Column("type_id", Serial, db.ForeignKey("drink_type.id")),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +25,7 @@ class Tag(db.Model, ModelSerializeMixin):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__tablename__ = "drink_tag"
|
__tablename__ = "drink_tag"
|
||||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
id: int = db.Column("id", Serial, primary_key=True)
|
||||||
name: str = db.Column(db.String(30), nullable=False, unique=True)
|
name: str = db.Column(db.String(30), nullable=False, unique=True)
|
||||||
color: str = db.Column(db.String(7), nullable=False)
|
color: str = db.Column(db.String(7), nullable=False)
|
||||||
|
|
||||||
|
@ -35,7 +36,7 @@ class DrinkType(db.Model, ModelSerializeMixin):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__tablename__ = "drink_type"
|
__tablename__ = "drink_type"
|
||||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
id: int = db.Column("id", Serial, primary_key=True)
|
||||||
name: str = db.Column(db.String(30), nullable=False, unique=True)
|
name: str = db.Column(db.String(30), nullable=False, unique=True)
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,9 +46,9 @@ class DrinkPrice(db.Model, ModelSerializeMixin):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__tablename__ = "drink_price"
|
__tablename__ = "drink_price"
|
||||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
id: int = db.Column("id", Serial, primary_key=True)
|
||||||
price: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False))
|
price: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False))
|
||||||
volume_id_ = db.Column("volume_id", db.Integer, db.ForeignKey("drink_price_volume.id"))
|
volume_id_ = db.Column("volume_id", Serial, db.ForeignKey("drink_price_volume.id"))
|
||||||
volume: "DrinkPriceVolume" = None
|
volume: "DrinkPriceVolume" = None
|
||||||
_volume: "DrinkPriceVolume" = db.relationship("DrinkPriceVolume", back_populates="_prices", join_depth=1)
|
_volume: "DrinkPriceVolume" = db.relationship("DrinkPriceVolume", back_populates="_prices", join_depth=1)
|
||||||
public: bool = db.Column(db.Boolean, default=True)
|
public: bool = db.Column(db.Boolean, default=True)
|
||||||
|
@ -62,8 +63,8 @@ class ExtraIngredient(db.Model, ModelSerializeMixin):
|
||||||
ExtraIngredient
|
ExtraIngredient
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__tablename__ = "extra_ingredient"
|
__tablename__ = "drink_extra_ingredient"
|
||||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
id: int = db.Column("id", Serial, primary_key=True)
|
||||||
name: str = db.Column(db.String(30), unique=True, nullable=False)
|
name: str = db.Column(db.String(30), unique=True, nullable=False)
|
||||||
price: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False))
|
price: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False))
|
||||||
|
|
||||||
|
@ -74,9 +75,9 @@ class DrinkIngredient(db.Model, ModelSerializeMixin):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__tablename__ = "drink_ingredient"
|
__tablename__ = "drink_ingredient"
|
||||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
id: int = db.Column("id", Serial, primary_key=True)
|
||||||
volume: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False), nullable=False)
|
volume: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False), nullable=False)
|
||||||
ingredient_id: int = db.Column(db.Integer, db.ForeignKey("drink.id"))
|
ingredient_id: int = db.Column(Serial, db.ForeignKey("drink.id"))
|
||||||
cost_per_volume: float
|
cost_per_volume: float
|
||||||
name: str
|
name: str
|
||||||
_drink_ingredient: Drink = db.relationship("Drink")
|
_drink_ingredient: Drink = db.relationship("Drink")
|
||||||
|
@ -95,14 +96,14 @@ class Ingredient(db.Model, ModelSerializeMixin):
|
||||||
Ingredient Associationtable
|
Ingredient Associationtable
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__tablename__ = "ingredient_association"
|
__tablename__ = "drink_ingredient_association"
|
||||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
id: int = db.Column("id", Serial, primary_key=True)
|
||||||
volume_id = db.Column(db.Integer, db.ForeignKey("drink_price_volume.id"))
|
volume_id = db.Column(Serial, db.ForeignKey("drink_price_volume.id"))
|
||||||
drink_ingredient: Optional[DrinkIngredient] = db.relationship(DrinkIngredient)
|
drink_ingredient: Optional[DrinkIngredient] = db.relationship(DrinkIngredient)
|
||||||
extra_ingredient: Optional[ExtraIngredient] = db.relationship(ExtraIngredient)
|
extra_ingredient: Optional[ExtraIngredient] = db.relationship(ExtraIngredient)
|
||||||
|
|
||||||
_drink_ingredient_id = db.Column(db.Integer, db.ForeignKey("drink_ingredient.id"))
|
_drink_ingredient_id = db.Column(Serial, db.ForeignKey("drink_ingredient.id"))
|
||||||
_extra_ingredient_id = db.Column(db.Integer, db.ForeignKey("extra_ingredient.id"))
|
_extra_ingredient_id = db.Column(Serial, db.ForeignKey("drink_extra_ingredient.id"))
|
||||||
|
|
||||||
|
|
||||||
class MinPrices(ModelSerializeMixin):
|
class MinPrices(ModelSerializeMixin):
|
||||||
|
@ -120,8 +121,8 @@ class DrinkPriceVolume(db.Model, ModelSerializeMixin):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__tablename__ = "drink_price_volume"
|
__tablename__ = "drink_price_volume"
|
||||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
id: int = db.Column("id", Serial, primary_key=True)
|
||||||
drink_id = db.Column(db.Integer, db.ForeignKey("drink.id"))
|
drink_id = db.Column(Serial, db.ForeignKey("drink.id"))
|
||||||
drink: "Drink" = None
|
drink: "Drink" = None
|
||||||
_drink: "Drink" = db.relationship("Drink", back_populates="_volumes")
|
_drink: "Drink" = db.relationship("Drink", back_populates="_volumes")
|
||||||
volume: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False))
|
volume: float = db.Column(db.Numeric(precision=5, scale=2, asdecimal=False))
|
||||||
|
@ -143,7 +144,7 @@ class Drink(db.Model, ModelSerializeMixin):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__tablename__ = "drink"
|
__tablename__ = "drink"
|
||||||
id: int = db.Column("id", db.Integer, primary_key=True)
|
id: int = db.Column("id", Serial, primary_key=True)
|
||||||
article_id: Optional[str] = db.Column(db.String(64))
|
article_id: Optional[str] = db.Column(db.String(64))
|
||||||
package_size: Optional[int] = db.Column(db.Integer)
|
package_size: Optional[int] = db.Column(db.Integer)
|
||||||
name: str = db.Column(db.String(60), nullable=False)
|
name: str = db.Column(db.String(60), nullable=False)
|
||||||
|
@ -152,9 +153,9 @@ class Drink(db.Model, ModelSerializeMixin):
|
||||||
cost_per_package: Optional[float] = db.Column(db.Numeric(precision=5, scale=3, asdecimal=False))
|
cost_per_package: Optional[float] = db.Column(db.Numeric(precision=5, scale=3, asdecimal=False))
|
||||||
has_image: bool = False
|
has_image: bool = False
|
||||||
|
|
||||||
uuid: str = db.Column(db.String(36))
|
|
||||||
receipt: Optional[list[str]] = db.Column(db.PickleType(protocol=4))
|
receipt: Optional[list[str]] = db.Column(db.PickleType(protocol=4))
|
||||||
|
|
||||||
|
_type_id = db.Column("type_id", Serial, db.ForeignKey("drink_type.id"))
|
||||||
_image_id = db.Column("image_id", Serial, db.ForeignKey("image.id"))
|
_image_id = db.Column("image_id", Serial, db.ForeignKey("image.id"))
|
||||||
|
|
||||||
image_: Image = db.relationship("Image", cascade="all, delete", foreign_keys=[_image_id])
|
image_: Image = db.relationship("Image", cascade="all, delete", foreign_keys=[_image_id])
|
||||||
|
|
Loading…
Reference in New Issue