class Cart(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    product_id = db.Column(db.Integer,
                           db.ForeignKey('product.id'),
                           nullable=False)

    def __repr__(self):
        return f"Cart('{self.user_id}', '{self.product_id}')"
class Category(db.Model):
    __table_args__ = {'extend_existing': True}
    categoryid = db.Column(db.Integer, primary_key=True)
    category_name = db.Column(db.String(100), nullable=False)
    date_posted = db.Column(db.DateTime,
                            nullable=False,
                            default=datetime.utcnow)

    def __repr__(self):
        return f"Category('{self.categoryid}', '{self.category_name}')"
Beispiel #3
0
class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    orderTime = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    # one to many relationship
    cartId = db.Column(db.Integer, db.ForeignKey('cartItem.id'),nullable=True)
    addressId = db.Column(db.Integer, db.ForeignKey('address.id'),nullable=True)


    def __repr__(self):
        return f"{self.orderTime}"
Beispiel #4
0
class Brand(db.Model):
    __tablename__ = 'brand'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text, nullable=False)
    slug = db.Column(db.Text, nullable=False, unique=True)
    description = db.Column(db.Text, nullable=True)
    imageFile = db.Column(db.Text, nullable=False, default='Brand.jpg')

    def __repr__(self):
        return f"Post('{self.name}', '{self.description}', '{self.imageFile}')"
Beispiel #5
0
class Room(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(20))
    description = db.Column(db.Text)
    address = db.Column(db.String(70), nullable=False)
    available_from = db.Column(db.Date, nullable=False)
    available_to = db.Column(db.Date, nullable=False)
    price = db.Column(db.Float, nullable=False)
    max_persons = db.Column(db.Integer, nullable=False, default=1)
    owner_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Room({self.id}, '{self.name}', '{self.address}', '{self.available_from}', '{self.available_to}', '{self.price}', '{self.max_persons}')"

    def as_dict(self):
        return {
            'id': self.id,
            'name': str(self.name),
            'description': str(self.description),
            'address': str(self.address),
            'available_from': str(self.available_from),
            'available_to': str(self.available_to),
            'price': str(self.price),
            'max_persons': str(self.max_persons),
            'owner_id': self.owner_id
        }
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    firstname = db.Column(db.String(20), unique=True, nullable=False)
    lastname = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    image_file = db.Column(db.String(20),
                           nullable=False,
                           default='default.jpg')
    password = db.Column(db.String(60), nullable=False)
    utype = db.Column(db.String(60), default='user')
    cart = db.relationship('Cart', backref='author', lazy=True)
    instagram_id = db.Column(db.String(60), nullable=True)
    facebook_id = db.Column(db.String(60), nullable=True)

    def get_reset_token(self, expires_sec=1800):
        s = Serializer(app.config['SECRET_KEY'], expires_sec)
        return s.dumps({'user_id': self.id}).decode('utf-8')

    @staticmethod
    def verify_reset_token(token):
        s = Serializer(app.config['SECRET_KEY'])
        try:
            user_id = s.loads(token)['user_id']
        except:
            return None
        return User.query.get(user_id)

    def __repr__(self):
        return f"User('{self.username}', '{self.email}', '{self.image_file}')"
Beispiel #7
0
class Product(db.Model):

    __table_args__ = {'extend_existing': True}

    productid = db.Column(db.Integer, primary_key=True)

    sku = db.Column(db.String(100), nullable=False)

    product_name = db.column(db.String(100))

    description = db.Column(db.String(100), nullable=False)

    image = db.Column(db.String(100), nullable=False)

    quantity = db.Column(db.Integer, nullable=False)

    regular_price = db.Column(db.DECIMAL)

    discounted_price = db.Column(db.DECIMAL)

    product_rating = db.Column(db.DECIMAL)

    product_review = db.Column(db.String(100), nullable=True)

    def __repr__(self):

        return f"Product('{self.productid}','{self.product_name}','{self.description}', '{self.image}', " \
               f" '{self.quantity}', '{self.regular_price}', '{self.discounted_price}')"
Beispiel #8
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(30), nullable=False)
    surname = db.Column(db.String(30), nullable=False)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(40), unique=True, nullable=False)
    birth_date = db.Column(db.Date)
    password = db.Column(db.String(20), nullable=False)
    picture = db.Column(db.String(40), default='/static/img/users/default.png')
    privilege = db.Column(db.Boolean(), default=False)

    def __repr__(self):
        return f"User({self.id}, '{self.name}', '{self.surname}', '{self.username}', '{self.email}', '{self.birth_date}', '{self.privilege}')"

    def as_dict(self):
        return {
            'id': self.id,
            'name': str(self.name),
            'surname': str(self.surname),
            'username': str(self.username),
            'email': str(self.email),
            'birth_date': str(self.birth_date),
            'picture': str(self.picture),
            'privilege': self.privilege
        }
class Order(db.Model):
    __table_args__ = {'extend_existing': True}
    orderid = db.Column(db.Integer, primary_key=True)
    order_date = db.Column(db.DateTime, nullable=False)
    total_price = db.Column(db.DECIMAL, nullable=False)
    userid = db.Column(db.Integer,
                       db.ForeignKey('user.userid'),
                       nullable=False,
                       primary_key=True)

    def __repr__(self):
        return f"Order('{self.orderid}', '{self.order_date}','{self.total_price}','{self.userid}'')"
Beispiel #10
0
class CartItem(db.Model):
    __tablename__ = 'cartItem'
    id = db.Column(db.Integer, primary_key=True)
    userId = db.Column(db.Integer,db.ForeignKey('user.id', ondelete='SET NULL'),nullable=True)
    productId = db.Column(db.Integer, db.ForeignKey('product.id', ondelete='SET NULL'),nullable=True)
    quanitity = db.Column(db.Integer,nullable=True)
    order = db.relationship('Order',backref='cartItem',lazy=True)



    def __reper__(self):
        return f'{self.id}'
Beispiel #11
0
class Category(db.Model, UserMixin):
    __tablename__ = "category"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(256), default="N/A")
    photo = db.Column(db.String(64), default="default.jpg")
    products = db.relationship("Product",
                               backref="the_category",
                               lazy="dynamic")

    def __init__(self, name, photo="default.jpg"):
        self.name = name
        self.photo = photo
class OrderedProduct(db.Model):
    __table_args__ = {'extend_existing': True}
    ordproductid = db.Column(db.Integer, primary_key=True)
    orderid = db.Column(db.Integer,
                        db.ForeignKey('order.orderid'),
                        nullable=False)
    productid = db.Column(db.Integer,
                          db.ForeignKey('product.productid'),
                          nullable=False)
    quantity = db.Column(db.Integer, nullable=False)

    def __repr__(self):
        return f"Order('{self.ordproductid}', '{self.orderid}','{self.productid}','{self.quantity}')"
class Cart(db.Model):
    __table_args__ = {'extend_existing': True}
    userid = db.Column(db.Integer,
                       db.ForeignKey('user.userid'),
                       nullable=False,
                       primary_key=True)
    productid = db.Column(db.Integer,
                          db.ForeignKey('product.productid'),
                          nullable=False,
                          primary_key=True)
    quantity = db.Column(db.Integer, nullable=False)

    def __repr__(self):
        return f"Cart('{self.userid}', '{self.productid}, '{self.quantity}')"
Beispiel #14
0
class Rating(db.Model):
    __tablename__ = 'rating'
    id = db.Column(db.Integer, primary_key=True)
    rate = db.Column(db.Integer, nullable=True)
    comments = db.Column(db.Text, nullable=True)

    userId = db.Column(db.Integer,
                       db.ForeignKey('user.userId'),
                       nullable=False)
    product_id = db.Column(db.Integer,
                           db.ForeignKey('product.id'),
                           nullable=False)

    def __repr__(self):
        return f"Post('{self.rate}', '{self.comments}')"
class ProductCategory(db.Model):
    __table_args__ = {'extend_existing': True}
    categoryid = db.Column(db.Integer,
                           db.ForeignKey('category.categoryid'),
                           nullable=False,
                           primary_key=True)
    productid = db.Column(db.Integer,
                          db.ForeignKey('product.productid'),
                          nullable=False,
                          primary_key=True)
    created_on = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.utcnow)

    def __repr__(self):
        return f"Product('{self.categoryid}', '{self.productid}')"
Beispiel #16
0
class User(db.Model, UserMixin):
    __tablename__ = 'user'
    userId = db.Column(db.Integer, primary_key=True)
    userName = db.Column(db.Text, unique=True, nullable=False)
    email = db.Column(db.Text, unique=True, nullable=False)
    imageFile = db.Column(db.Text, nullable=False, default='default.jpg')
    password = db.Column(db.Text, nullable=False)
    role = db.Column(db.Text, nullable=False, default='Customer')
    dateRegistered = db.Column(db.DateTime,
                               nullable=False,
                               default=datetime.utcnow)
    # For relation with Shipping database table
    shippingDetails = db.relationship('Shipping',
                                      backref='shipping_user_id',
                                      lazy=True)
    # post = Post(title = form.title.data, content = form.content.data, user = current_user)
    productId = db.relationship('Product',
                                backref='product_user_id',
                                lazy=True)
    userCart = db.relationship('Cart', backref='cart_user_id', lazy=True)
    userOrder = db.relationship('Order', backref='order_user_id', lazy=True)
    userRating = db.relationship('Rating', backref='rating_user_id', lazy=True)

    def get_id(self):
        return (self.userId)

    def __repr__(self):
        return f"User('{self.userName}', '{self.email}', '{self.imageFile}', '{self.role}', '{self.dateRegistered}')"
Beispiel #17
0
class CustomerOrder(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    #invoice = db.Column(db.String(20), unique=True, nullable=False)
    status = db.Column(db.String(20), default='Pending', nullable=False)
    customer_id = db.Column(db.Integer,
                            db.ForeignKey('user.id'),
                            unique=False,
                            nullable=True)
    date_created = db.Column(db.DateTime,
                             default=datetime.utcnow,
                             nullable=False)
    orders = db.Column(JsonEcodedDict)

    #def __repr__(self):
    #    return'<CustomerOrder %r>' % self.invoice

    def __repr__(self):
        return f"CustomerOrder('{self.id}', '{self.status}','{self.customer_id}')"
Beispiel #18
0
class Image(db.Model):
    __tablename__ = 'images'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True, nullable=False)
    filename = db.Column(db.String(128), unique=True,default='default.jpg')
    productId = db.Column(db.Integer, db.ForeignKey('product.id'),nullable=False)

    def __repr__(self):
        return self.name

    @property
    def url(self):
        return images.url(self.filename)

    @property
    def filepath(self):
        if self.filename is None:
            return
        return images.path(self.filename)
Beispiel #19
0
class Order(db.Model):
    __tablename__ = 'order'
    id = db.Column(db.Integer, primary_key=True)
    quantity = db.Column(db.Integer, nullable=False)
    color = db.Column(db.String(10), nullable=True)
    size = db.Column(db.String(10), nullable=True)
    status = db.Column(db.String(25), nullable=False)
    total = db.Column(db.Integer, nullable=False)
    deliveryType = db.Column(db.String(30), nullable=False, default='COD')
    orderDate = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)

    userId = db.Column(db.Integer,
                       db.ForeignKey('user.userId'),
                       nullable=False)
    product_id = db.Column(db.Integer,
                           db.ForeignKey('product.id'),
                           nullable=False)

    def __repr__(self):
        return f"Post('{self.quantity}', '{self.color}', '{self.size}', '{self.status}', '{self.total}', '{self.deliveryType}', '{self.orderDate}')"
Beispiel #20
0
class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    image = db.Column(db.String(20), nullable=True, default='product.png')
    description = db.Column(db.Text, nullable=False)
    price = db.Column(db.Numeric(10, 2), nullable=False)
    discount = db.Column(db.Integer, default=0)
Beispiel #21
0
class SaleTransaction(db.Model):
    __table_args__ = {'extend_existing': True}
    transactionid = db.Column(db.Integer, primary_key=True)
    orderid = db.Column(db.Integer,db.ForeignKey('order.orderid'), nullable=False)
    transaction_date = db.Column(db.DateTime,nullable=False)
    amount = db.Column(db.DECIMAL, nullable=False)
    cc_number=db.Column(db.String(50), nullable=False)
    cc_type = db.Column(db.String(50), nullable=False)
    response = db.Column(db.String(50), nullable=False)

    def __repr__(self):
        return f"Order('{self.transactionid}', '{self.orderid}','{self.transactiondate}','{self.amount}', '{self.cc_number}','{self.cc_type}','{self.response}')"
Beispiel #22
0
class Shipping(db.Model):
    __tablename__ = 'shipping'
    id = db.Column(db.Integer, primary_key=True)
    fullName = db.Column(db.Text, nullable=False)
    contactNo = db.Column(db.Text, nullable=True)
    phoneNo = db.Column(db.Text, nullable=False)
    street = db.Column(db.Text, nullable=False)
    city = db.Column(db.Text, nullable=False)
    country = db.Column(db.Text, nullable=False)

    userId = db.Column(db.Integer,
                       db.ForeignKey('user.userId'),
                       nullable=False)

    def __repr__(self):
        return f"Post('{self.fullName}', '{self.contactNo}', '{self.phoneNo}', '{self.street}', '{self.city}', '{self.country}')"
Beispiel #23
0
class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True, nullable=False)
    description = db.Column(db.String(500), nullable=False)
    price = db.Column(db.Float, nullable=False)
    category = db.Column(db.String(80), nullable=False)
    image_flie = db.Column(db.String(20),
                           nullable=False,
                           default='default.jpg')
Beispiel #24
0
class Coupon(db.Model, UserMixin):
    __tablename__ = "coupon"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(256), default="N/A")
    product = db.Column(db.Integer,
                        db.ForeignKey("products.id"),
                        nullable=False)
    discount_amount = db.Column(db.Numeric, nullable=False)
    qty = db.Column(db.Integer)
    start_date = db.Column(db.DateTime)
    end_date = db.Column(db.DateTime)
    db.relationship("Order", backref="the_coupon", lazy="dynamic")
Beispiel #25
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(20), nullable=False)
    last_name = db.Column(db.String(20), nullable=False)
    created_at = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.utcnow)
    email = db.Column(db.String(120), unique=True, nullable=False)
    phone_number = db.Column(db.Integer, unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)

    def __repr__(self):
        return f"User('{self.id }',{self.first_name}', '{self.last_name}', '{self.email}','{self.created_at}','{self.admin}')"
Beispiel #26
0
class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    product_name = db.Column(db.String(20), nullable=False)
    description = db.Column(db.Text, nullable=False)
    price = db.Column(db.Float, nullable=False)
    picture = db.Column(db.String(20), nullable=False, default='default.jpg')
    quantity = db.Column(db.Integer, nullable=False, default=0)
    category_id = db.Column(db.Integer,
                            db.ForeignKey('category.id'),
                            nullable=False)

    def __repr__(self):
        return f"User('{self.id}', '{self.name}', '{self.image_file}','{self.price}','{self.quantity}')"
Beispiel #27
0
class Address(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    country = db.Column(db.String(50), nullable=False)
    city = db.Column(db.String(70), nullable=False)
    street = db.Column(db.String(100), nullable=False)
    Postcode = db.Column(db.Integer, nullable=False)
    userId = db.Column(db.Integer, db.ForeignKey('user.id',ondelete='SET NULL'),nullable=True)
    order = db.relationship('Order', backref='address',lazy=True)

    def __repr__(self):
        return f"{self.country},{self.city},{self.street}"
Beispiel #28
0
class Category(db.Model):
    __tablename__ = 'category'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Text, nullable=False)
    slug = db.Column(db.Text, nullable=False, unique=True)
    parentCategory = db.Column(db.Text, nullable=False, default='None')
    description = db.Column(db.Text, nullable=True)
    imageFile = db.Column(db.Text, nullable=False, default='category.jpg')

    def __repr__(self):
        return f"Post('{self.name}', '{self.parentCategory}', '{self.description}', '{self.imageFile}')"
Beispiel #29
0
class Product(db.Model):
    __searchable__ = ['name','price']
    id = db.Column(db.Integer, primary_key=True)
    images= db.relationship('Image',backref='product',lazy=True)
    name = db.Column(db.String(80),nullable=False)
    price = db.Column(db.Integer)
    offer = db.Column(db.Boolean(),default=False)
    digital = db.Column(db.Boolean(),default=False)
    detial = db.Column(db.Text(),nullable=True)
    cart_id = db.relationship('CartItem', backref='product',lazy=True)
    
    def __repr__(self):
        return f"{self.name, self.price}"
Beispiel #30
0
class User(db.Model,UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    confirmed_user =db.Column(db.Boolean(),default=False )
    is_admin = db.Column(db.Boolean(),default=False)
    address = db.relationship('Address', backref='user',lazy=True)
    cart_id = db.relationship('CartItem', backref='user',lazy=True)

    
    def __repr__(self):
        return f"username = {self.username} , user_email = {self.email}"