sql_implementation/models.py (45 lines of code) (raw):

import datetime from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class Customer(db.Model): __tablename__ = 'opbeans_flask_customer' id = db.Column(db.Integer, primary_key=True) full_name = db.Column(db.String(1000)) company_name = db.Column(db.String(1000)) email = db.Column(db.String(1000)) address = db.Column(db.String(1000)) postal_code = db.Column(db.String(1000)) city = db.Column(db.String(1000)) country = db.Column(db.String(1000)) class Order(db.Model): __tablename__ = 'opbeans_flask_order' id = db.Column(db.Integer, primary_key=True) customer_id = db.Column(db.Integer, db.ForeignKey('opbeans_flask_customer.id'), nullable=False) customer = db.relationship('Customer', backref=db.backref("opbeans_order", lazy=True)) created_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow) products = db.relationship('Product', secondary='opbeans_flask_orderline') class ProductType(db.Model): __tablename__ = 'opbeans_flask_producttype' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(1000), unique=True) def __str__(self): return self.name class Product(db.Model): __tablename__ = 'opbeans_flask_product' id = db.Column(db.Integer, primary_key=True) sku = db.Column(db.String(1000), unique=True) name = db.Column(db.String(1000)) description = db.Column(db.Text) product_type_id = db.Column('product_type_id', db.Integer, db.ForeignKey('opbeans_flask_producttype.id'), nullable=False) product_type = db.relationship('ProductType', backref=db.backref('opbeans_flask_product', lazy=True)) stock = db.Column(db.Integer) cost = db.Column(db.Integer) selling_price = db.Column(db.Integer) orders = db.relationship('Order', secondary='opbeans_flask_orderline') class OrderLine(db.Model): __tablename__ = 'opbeans_flask_orderline' product_id = db.Column(db.Integer, db.ForeignKey('opbeans_flask_product.id'), primary_key=True) product = db.relationship('Product') order_id = db.Column(db.Integer, db.ForeignKey('opbeans_flask_order.id'), primary_key=True) order = db.relationship('Order') amount = db.Column(db.Integer)