[Plugin] orders: Testing with some stuff
This commit is contained in:
parent
06237754f1
commit
3f5475f743
|
@ -0,0 +1,21 @@
|
|||
"""Orders plugin"""
|
||||
|
||||
from flask import Blueprint
|
||||
|
||||
from flaschengeist.plugins import Plugin
|
||||
|
||||
from . import models
|
||||
|
||||
order_bp = Blueprint("orders", __name__)
|
||||
|
||||
|
||||
class OrdersPlugin(Plugin):
|
||||
models = models
|
||||
|
||||
def __init__(self, config):
|
||||
super().__init__(blueprint=order_bp)
|
||||
|
||||
def install(self):
|
||||
from flaschengeist.database import db
|
||||
|
||||
db.create_all()
|
|
@ -0,0 +1,49 @@
|
|||
import datetime
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from flaschengeist.models import ModelSerializeMixin, UtcDateTime
|
||||
from flaschengeist.database import db
|
||||
|
||||
|
||||
class Product(db.Model, ModelSerializeMixin):
|
||||
__tablename__ = "orders_product"
|
||||
id: int = db.Column(db.Integer, primary_key=True)
|
||||
name: str = db.Column(db.String(255))
|
||||
price: float = db.Column(db.Numeric(precision=19, scale=3, asdecimal=False))
|
||||
|
||||
tax_rate: float = db.Column(db.Float)
|
||||
|
||||
|
||||
class Bill(db.Model, ModelSerializeMixin):
|
||||
__tablename__ = "orders_bill"
|
||||
id: int = db.Column(db.Integer, primary_key=True)
|
||||
time: datetime.datetime = db.Column(UtcDateTime, nullable=False)
|
||||
payment = ...
|
||||
payed = db.Column(db.Boolean)
|
||||
cancelled = db.Column(db.Integer, db.ForeignKey("orders_bill.id")) # Cancelled by
|
||||
|
||||
orders = relationship("Order", back_populates="bill")
|
||||
|
||||
|
||||
class Order(db.Model):
|
||||
__tablename__ = "orders_order"
|
||||
id: int = db.Column(db.Integer, primary_key=True)
|
||||
bill = ...
|
||||
product = ...
|
||||
amount = ...
|
||||
price = ...
|
||||
tax_rate = ...
|
||||
discount = ...
|
||||
|
||||
userid: str = ""
|
||||
value: float = db.Column(db.Numeric(precision=3, scale=2, asdecimal=False), nullable=False)
|
||||
|
||||
_job_id = db.Column("job_id", db.Integer, db.ForeignKey("schedule_job.id"), nullable=False, primary_key=True)
|
||||
_user_id = db.Column("user_id", db.Integer, db.ForeignKey("user.id"), nullable=False, primary_key=True)
|
||||
|
||||
user_: User = db.relationship("User")
|
||||
job_ = db.relationship("Job")
|
||||
|
||||
@property
|
||||
def userid(self):
|
||||
return self.user_.userid
|
Loading…
Reference in New Issue