Beispiel #1
0
class OrderedProduct(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_id = db.Column(db.Integer, db.ForeignKey("order.id"), nullable=False)
    product_id = db.Column(db.Integer, db.ForeignKey("product.id"), nullable=False)
    quantity = db.Column(db.Integer, nullable=False)

    def __repr__(self):
        return f"Ordered('{self.id}', '{self.order_id}','{self.product_id}','{self.quantity}')"
Beispiel #2
0
class CartItem(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    cart_id = db.Column(db.Integer, db.ForeignKey("user_cart.id"), nullable=False)
    product_id = db.Column(db.Integer, db.ForeignKey("product.id"), nullable=False)
    quantity = db.Column(db.Integer, nullable=False)

    def __repr__(self):
        return f"CartItem('{self.id}', '{self.cart_id}','{self.product_id}','{self.quantity}')"
Beispiel #3
0
class ProductRating(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    rating = db.Column(db.Integer, nullable=False)
    comments = db.Column(db.Text(500), nullable=False)
    product_id = db.Column(db.Integer, db.ForeignKey("product.id"), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)

    def __repr__(self):
        return f"ProductRating('{self.id}','{self.rating}, {self.product_id}')"
Beispiel #4
0
class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.String(100), nullable=False)
    total_price = db.Column(db.DECIMAL, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    items = db.relationship("OrderedProduct", backref="order", lazy=True)
    tracking_no = db.Column(db.String(30), nullable=True, default=None)
    confirm_received = db.Column(db.Boolean, nullable=False, default=False)
    address_id = db.Column(db.Integer, db.ForeignKey("address.id", ondelete='SET NULL'), nullable=True)

    def __repr__(self):
        return f"Order('{self.id}', '{self.order_date}','{self.total_price}','{self.user_id}'')"
Beispiel #5
0
class UserCart(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    user = db.relationship("User", back_populates="cart")
    items = db.relationship("CartItem", backref="cart", lazy=True)

    def __repr__(self):
        return f"UserCart('{self.id}','{self.total_price}','{self.user_id}'')"
Beispiel #6
0
class Card(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    type = db.Column(db.String(20), nullable=False)
    name = db.Column(db.String(30), nullable=False)
    number = db.Column(db.String(20), nullable=False)
    cvc = db.Column(db.String(4), nullable=False)
    expiry = db.Column(db.String(100), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)

    def __repr__(self):
        return f"Card('{self.name}', '{self.number}', '{self.cvc}', '{self.expiry}')"
Beispiel #7
0
class Address(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), unique=False, nullable=False)
    contact = db.Column(db.String(30), unique=False, nullable=False)
    description = db.Column(db.String(20), unique=False, nullable=False)
    address_1 = db.Column(db.String(100), nullable=False)
    address_2 = db.Column(db.String(100), nullable=True)
    postal_code = db.Column(db.String(10), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    default = db.Column(db.Boolean, nullable=False, default=False)

    def __repr__(self):
        return f"Address('{self.description}', '{self.address_1} {self.address_2} {self.postal_code}')"
Beispiel #8
0
class LoginAttempts(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    ip_address = db.Column(db.String(20), nullable=False)
    successful = db.Column(db.Boolean, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    timestamp = db.Column(db.String(100), nullable=False)

    def __init__(self, ip_address, successful, user_id):
        self.ip_address = ip_address
        self.successful = successful
        self.user_id = user_id
        self.timestamp = datetime.datetime.now().timestamp()

    def __repr__(self):
        return f"LoginAttempt('{self.user_id}', '{self.successful}', '{self.ip_address}')"
Beispiel #9
0
class User2FA(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    pin = db.Column(db.String(6), unique=False)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    expiry = db.Column(db.String(100), nullable=False)
    used = db.Column(db.Boolean, nullable=False, default=False)

    def __init__(self, user_id):
        expired_dt = datetime.datetime.now() + datetime.timedelta(seconds=300)
        system_random = random.SystemRandom()
        self.user_id = user_id
        self.pin = str(system_random.randrange(100000, 999999))
        self.expiry = str(expired_dt.timestamp())

    def is_expired(self):
        expiry_time = float(self.expiry)
        now = datetime.datetime.now().timestamp()
        if now > expiry_time:
            return True
        else:
            return False

    def __repr__(self):
        return f"User2FA('{self.user_id}', '{self.pin}')"
Beispiel #10
0
class ResetPasswordToken(db.Model):
    token = db.Column(db.String(300), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)

    def __repr__(self):
        return f"ResetPasswordLInk('{self.token}','{self.user_id}')"