class Energy(db.Model):
    __tablename__ = "energy"
    id = db.Column(db.Integer, primary_key=True)
    energy = db.Column(db.Float(64))
    measurement_time = db.Column(db.DateTime(), default=sql.func.now())
    created = db.Column(
        db.DateTime(),
        default=sql.func.now()  # use db to set timestamp
    )
    updated = db.Column(db.DateTime(),
                        default=sql.func.now(),
                        onupdate=sql.func.now())
    asset_id = Column(Integer, ForeignKey('asset.id'))
Ejemplo n.º 2
0
class ItemModel(db.Model):
    __tablename__ = 'item'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(25))
    price = db.Column(db.Float(precision=2))
    description = db.Column(db.String(150))

    def __init__(self, name, price, description):
        self.name = name
        self.price = price
        self.description = description

    def __repr__(self):
        return f'{self.__class__.__name__}'
Ejemplo n.º 3
0
class Items(db.Model):
    __tablename__ = "items"

    """
    Represents items 

    field id: Primary key
    type id: Integer

    """
    
    id = db.Column(db.Integer, primary_key=True)
    itemTitle = db.Column(db.String(220), nullable=False)
    categoryId = db.Column( db.ForeignKey('category.id'), nullable=False)
    itemDescription = db.Column(db.Text, nullable=True)
    itemPrice = db.Column(db.Float(precision=2), nullable=False)
    status = db.Column(db.Boolean, default=True)
    createdAt = db.Column(db.DateTime,default=datetime.datetime.utcnow())
    updatedAt =  db.Column(db.DateTime, onupdate=datetime.datetime.utcnow())
Ejemplo n.º 4
0
class ReaderGrade(db.Model):
    '''读者等级表'''
    __tablename__ = "reader_grade"  #表名
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  #id 主键自增
    grand_name = db.Column(db.String(50), nullable=True)  # 级别名字
    quan_tity = db.Column(db.Integer, nullable=True)  # 可借数量2本
    max_maney = db.Column(db.Float(), nullable=True)  # 最大金额/押金
    date_amount = db.Column(db.Integer, nullable=True)  # 还书期限
    #
    '''
    作者1--N书
    Author:books = db.relationship('Book', backref='author')
    Book:author_id = db.Column(db.Integer,db.ForeignKey('authors.id')) #或者是, Author.id
    '''
    # 读者返回来引用 级别
    readers = db.relationship('Reader', backref='grade')  #指定读者对象,引用级别的别名!

    def __str__(self):
        return self.grand_name
class DesignationModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    designation = db.Column(db.String(12), nullable=False)
    basic = db.Column(db.Float(precision=2), nullable=False)

    def __init__(self, designation, basic):
        self.designation = designation
        self.basic = basic

    @classmethod
    def find_by_designation(cls, designation):
        return DesignationModel.query.filter_by(
            designation=designation).first()

    def json(self):
        return {"Designation": self.designation, "Basic": self.basic}

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 6
0
class CommissionModel(db.Model):
    __tablename__ = "commission"
    commission_id = db.Column(db.Integer, primary_key=True)
    order_id = db.Column(db.Integer, db.ForeignKey('orders.order_id'))
    amount = db.Column(db.Float(precision='3,2'), nullable=False)
    vendor_id = db.Column(db.Integer, db.ForeignKey('auth.id'))
    total_amt = db.Column(db.Integer)
    date = db.Column(db.String(50), nullable=False, default=datetime.utcnow)

    vendor = db.relationship("AuthModel", foreign_keys=[vendor_id])

    def __init__(self, amount):
        self.amount = amount

    def json(self):
        return {
            "Commission_id": self.commission_id,
            "Order_id": self.order_id,
            "Total_Amount": self.total_amt,
            "Commission_Amount": self.amount,
            "Vendor_id": self.vendor_id,
            "Vendor": self.vendor.username,
            "Date": self.date
        }

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    @classmethod
    def find_by_comid(cls, id):
        return CommissionModel.query.filter_by(commission_id=id).first()

    @classmethod
    def find_by_orderid(cls, id):
        return CommissionModel.query.filter_by(order_id=id).first()
Ejemplo n.º 7
0
class Mainorder(GenericModel):
    id = db.Column('order_id', db.Integer(), primary_key=True)
    cid = db.Column('cust_id', db.ForeignKey("customer.cust_id"),nullable=False,unique=False)
    hid = db.Column('hotel_id', db.ForeignKey("hotel.hotel_id"),nullable=False,unique=False)
    billamount = db.Column('total_bill', db.Float())
Ejemplo n.º 8
0
class Room(db.Model):
    __tablename__ = 'rooms'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    title = db.Column(db.String(50), nullable=False)
    description = db.Column(db.Text(), nullable=True)
    address = db.Column(db.String(50), nullable=True)
    number = db.Column(db.String(7), nullable=True)
    region = db.Column(db.String(50), nullable=True)
    cep = db.Column(db.String(15), nullable=True)
    lat = db.Column(db.Float(), nullable=True)
    long = db.Column(db.Float(), nullable=True)
    building = db.Column(db.String(5), nullable=False)
    type = db.Column(db.String(5), nullable=False)
    bathroom = db.Column(db.String(5), nullable=False)
    minRent = db.Column(db.Integer(), nullable=True, default=1)
    price = db.Column(db.Integer(), nullable=False, default=0)
    gender = db.Column(db.String(2), nullable=True)
    main_image = db.Column(db.String(100), nullable=True, default='default')
    imageServer = db.Column(db.String(15), nullable=True)
    city_id = db.Column(db.Integer, db.ForeignKey('cities.id'), nullable=False)
    active = db.Column('is_active',
                       db.Boolean(),
                       nullable=False,
                       server_default='1')
    views = db.Column(db.Integer(), nullable=True, default=0)
    views7days = db.Column(db.Integer(), nullable=True, default=0)
    furniture = db.Column(db.Boolean(), nullable=False, server_default='0')
    include_bills = db.Column(db.Boolean(), nullable=False, server_default='0')
    smoking = db.Column(db.Boolean(), nullable=False, server_default='0')
    pet = db.Column(db.Boolean(), nullable=False, server_default='0')
    visits = db.Column(db.Boolean(), nullable=False, server_default='0')
    aircond = db.Column(db.Boolean(), nullable=False, server_default='0')
    internet = db.Column(db.Boolean(), nullable=False, server_default='0')
    parking = db.Column(db.Boolean(), nullable=False, server_default='0')
    elevator = db.Column(db.Boolean(), nullable=False, server_default='0')
    last_modified = db.Column(db.DateTime(),
                              nullable=False,
                              default=datetime.now())
    created = db.Column(db.DateTime(), nullable=False, default=datetime.now())

    def getCity(self):
        city = db.session.query(City).filter(City.id == self.city_id).one()
        return city.desc

    def get_bool_attr(self, attr):
        value = self.__getattribute__(attr)
        if value: return 'Sim'
        else: return 'Não'.decode('utf-8')

    def get_gender_attr(self):
        if self.gender == 'F': return 'Mulher'
        if self.gender == 'M': return 'Homem'
        if self.gender == 'B': return 'Homem/Mulher'

    def get_building_attr(self):
        if self.building == 'apto': return 'Apartamento'
        if self.building == 'house': return 'Casa'
        if self.building == 'hostel': return 'Pensionato'
        if self.building == 'hotel': return 'Hotel'

    def get_room_attr(self):
        if self.type == 'single': return 'Individual'
        if self.type == 'singlec': return 'Solteiro Coletivo'
        if self.type == 'couple': return 'Casal'

    def get_bathroom_attr(self):
        if self.bathroom == 'single': return 'Individual'
        if self.bathroom == 'public': return 'Coletivo'
        if self.bathroom == 'half': return 'Compartilhado para dois quartos'
class Timezones(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    time_zone = db.Column(db.String(40), db.ForeignKey('info.timezone'))
    offset = db.Column(db.Float())
Ejemplo n.º 10
0
class Exercise(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    duration = db.Column(db.Float)
    calories_burned = db.Column(db.Integer)
    pace = db.Column(db.Float(), nullable=True)
    miles = db.Column(db.Float(), nullable=True)
    sets = db.Column(db.Float(), nullable=True)
    reps = db.Column(db.Float(), nullable=True)
    category = db.Column(db.String(45))
    description = db.Column(db.Text(), nullable=True)
    created_at = db.Column(db.DateTime, server_default=func.now())
    updated_at = db.Column(db.DateTime, server_default=func.now(), onupdate=func.now())
    workout_id = db.Column(db.Integer, db.ForeignKey('workout.id', ondelete='cascade'), nullable=False)
    workout = db.relationship('Workout', foreign_keys=[workout_id])
    # class methods
    @classmethod
    def create_exercise(cls, user_data):
        duration = calcMinutes(user_data['hour'], user_data['minutes'])
        if user_data['category'] == 'running' or user_data['category'] == 'walking' or user_data['category'] == 'cycling':
            pace = float(duration) / float(user_data['miles'])
            exercise = Exercise(name=user_data['exercise_name'], duration=duration, calories_burned=float(user_data['calories_burned']), workout_id=user_data['workout_id'], category=user_data['category'], miles=float(user_data['miles']), pace=pace)
            db.session.add(exercise)
            db.session.commit()
            return exercise
        if user_data['category'] == 'weight_lifting':
            exercise = Exercise(name=user_data['exercise_name'], duration=duration, calories_burned=float(user_data['calories_burned']), workout_id=user_data['workout_id'], category=user_data['category'], sets=float(user_data['sets']), reps=float(user_data['reps']))
            db.session.add(exercise)
            db.session.commit()
            return exercise
        if user_data['category'] == 'other':
            exercise = Exercise(name=user_data['exercise_name'], duration=duration, calories_burned=float(user_data['calories_burned']), workout_id=user_data['workout_id'], category=user_data['category'], description=user_data['desc'])
            db.session.add(exercise)
            db.session.commit()
            return exercise
    @classmethod
    def valid_ex_update(cls, user_data):
        is_valid = True
        if user_data['calories_burned'] == '':
            is_valid = False
            flash("Please Enter Est. Calories Burned", "ex2_error")
        if len(user_data['exercise_name']) < 2 or user_data['exercise_name'] == '':
            is_valid = False
            flash("Please Enter an Exercise Name", "ex2_error")
        if profanity.contains_profanity(user_data['exercise_name']) == True:
            is_valid = False
            flash("Please Enter an Appropriate Exercise Name", "ex2_error");
        if (user_data['hours'] == '' or float(user_data['hours']) < 1) and (user_data['minutes'] == '' or float(user_data['minutes']) < 1):
            is_valid = False
            flash("Please Enter Duration", "ex2_error")
        return is_valid 
    @classmethod
    def valid_ex(cls, user_data):
        is_valid = True
        if len(user_data['exercise_name']) < 2 or user_data['exercise_name'] == '':
            is_valid = False
            flash("Please Enter an Exercise Name", "ex_error")
        if profanity.contains_profanity(user_data['exercise_name']) == True:
            is_valid = False
            flash("Please Enter an Appropriate Exercise Name", "ex_error");
        if user_data['hour'] == '':
            is_valid = False
            flash("Please Enter Amount of Hours", "ex_error")
        if user_data['minutes'] == '':
            is_valid = False
            flash("Please Enter Amount of Minutes", "ex_error")
        if user_data['calories_burned'] == '':
            is_valid = False
            flash("Please Enter Est. Calories Burned", "ex_error")
        if user_data['category'] == 'running' or user_data['category'] == 'walking' or user_data['category'] == 'cycling':
            if user_data['miles'] == '' or user_data['miles'] == 0:
                is_valid = False
                flash("Please Enter Amount of Miles", "ex_error")
        if user_data['category'] == 'weight_lifting':
            if user_data['reps'] == '':
                is_valid = False
                flash("Please Enter Amount of Repetitions", "ex_error")
            if user_data['sets'] == '':
                is_valid = False
                flash("Please Enter Amount of Sets", "ex_error")
        if user_data['category'] == 'other':
            if user_data['desc'] == '' or profanity.contains_profanity(user_data['desc']) == True:
                is_valid = False
                flash("Please Enter Valid Description", "ex_error")
        return is_valid
Ejemplo n.º 11
0
class Pool(db.Model):
    __tablename__ = "pool"
    pool_id = db.Column(db.Integer, primary_key=True)
    pool_hash = db.Column(db.String(100), nullable=False, unique=True)
    pool_pair = db.Column(db.String(10), nullable=False)
    pool_timeframe = db.Column(db.String(10), nullable=False)
    pool_locked_price = db.Column(db.Float(precision=2, asdecimal=True),
                                  nullable=False)
    pool_close_price = db.Column(db.Float(precision=2, asdecimal=True),
                                 nullable=False)
    pool_amount_buy = db.Column(db.Float(precision=5, asdecimal=True),
                                nullable=False)
    pool_amount_sell = db.Column(db.Float(precision=5, asdecimal=True),
                                 nullable=False)
    pool_multiplier_buy = db.Column(db.Float(precision=2, asdecimal=True),
                                    nullable=False)
    pool_multiplier_sell = db.Column(db.Float(precision=2, asdecimal=True),
                                     nullable=False)
    pool_fee_type = db.Column(db.Integer, nullable=False)
    pool_fee_amount = db.Column(db.Float(precision=2, asdecimal=True),
                                nullable=False)
    pool_status = db.Column(
        db.Integer, nullable=False
    )  # 0 = not started 1 = open  2 = confirming  3 = closed  4 = under review
    pool_tcreate = db.Column(db.DateTime(timezone=True), default=func.now())
    pool_tmodified = db.Column(db.DateTime(timezone=True),
                               default=func.now(),
                               onupdate=func.now())
    pool_start = db.Column(db.DateTime(timezone=True),
                           default=None,
                           nullable=True)
    pool_topen = db.Column(db.DateTime(timezone=True),
                           default=None,
                           nullable=True)
    pool_tlock = db.Column(db.DateTime(timezone=True),
                           default=None,
                           nullable=True)
    pool_texpire = db.Column(db.DateTime(timezone=True),
                             default=None,
                             nullable=True)
    pool_tclose = db.Column(db.DateTime(timezone=True),
                            default=None,
                            nullable=True)
    pool_treview = db.Column(db.DateTime(timezone=True),
                             default=None,
                             nullable=True)

    transactions = db.relationship(
        "Transaction",
        backref="pool",
        primaryjoin="Transaction.pool_id == Pool.pool_id",
        order_by="desc(Transaction.transaction_tmodified)",
    )

    # Pool state
    POOL_STATE_NOT_STARTED = 0  # No betting allowed yet
    POOL_STATE_OPEN = 1  # Open for betting
    POOL_STATE_LOCKED = 2  # No more betting, pool has begun
    POOL_STATE_EXPIRED = 3  # Time expired, no payouts yet
    POOL_STATE_CLOSED = 4  # Payouts complete
    POOL_STATE_UNDER_REVIEW = 5  # Oops, there's a problem

    # Pool Fees
    POOL_FEE_NONE = 0
    POOL_FEE_FIXED = 1
    POOL_FEE_PERCENT = 2
Ejemplo n.º 12
0
class Spot(db.Model):
    __tablename__ = 'Spots'
    __searchable__ = ['name', 'describe']

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    zone = db.Column(db.String(20), nullable=False)
    describe = db.Column(db.String(5000))
    tel = db.Column(db.String(255))
    website = db.Column(db.String(500))
    keyword = db.Column(db.String(255))
    address = db.Column(db.String(500))
    pic1 = db.Column(db.String(500))
    pic2 = db.Column(db.String(500))
    pic3 = db.Column(db.String(500))
    px = db.Column(db.Float(precision=18))
    py = db.Column(db.Float(precision=18))
    rec_table = db.Column(db.String(50000))
    rec_factors = db.Column(db.String(2000))
    del_pic1 = db.Column(db.String(100))
    del_pic2 = db.Column(db.String(100))
    del_pic3 = db.Column(db.String(100))
    owner = db.Column(db.Integer, db.ForeignKey("Users.id"))

    def __init__(self,
                 name,
                 zone,
                 describe,
                 tel,
                 website,
                 keyword,
                 address,
                 pic1,
                 pic2,
                 pic3,
                 px,
                 py,
                 del_pic1=None,
                 del_pic2=None,
                 del_pic3=None,
                 owner=None):
        self.name = name
        self.zone = zone
        self.describe = describe
        self.tel = tel
        self.website = website
        self.keyword = keyword
        self.address = address
        self.pic1 = pic1
        self.pic2 = pic2
        self.pic3 = pic3
        self.px = px
        self.py = py
        self.del_pic1 = del_pic1
        self.del_pic2 = del_pic2
        self.del_pic3 = del_pic3
        self.owner = owner

    def to_dict(self, lang='en'):
        return dict(
            spot_id=self.id,
            name=self.name if lang == 'zh' else trans(self.name),
            zone=self.zone,
            describe=self.describe if lang == 'zh' else trans(self.describe),
            tel=self.tel,
            website=self.website,
            keyword=self.keyword,
            address=self.address if lang == 'zh' else trans(self.address),
            pic=[p for p in [self.pic1, self.pic2, self.pic3] if p],
            px=self.px,
            py=self.py,
            like_num=self.count_like_num(),
            owner=self.owner,
        )

    def count_like_num(self):
        return FavoriteSpot.query.filter_by(spot_id=self.id).count()
Ejemplo n.º 13
0
class Dish(DaoOperations, OutputMixin, db.Model):
    RELATIONSHIPS_TO_DICT = True
    DISH_REQUIRED_PARAMS = [
        'description', 'price', 'category', 'name', 'type', 'establishment_id',
        'category_id'
    ]

    did = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String(100), nullable=False)
    price = db.Column(db.Float(precision=2), nullable=False)
    rating = db.Column(db.Integer, default=0)
    image_url = db.Column(db.String(550), default='')
    category_id = db.Column(db.Integer,
                            db.ForeignKey('category.cid'),
                            nullable=False)
    category = db.relationship('Category', backref='dishes',
                               lazy=True)  # int? | Category table
    name = db.Column(db.String(50), nullable=False)
    type = db.Column(db.String(20), nullable=False)
    # menu_id = db.Column(db.Integer, db.ForeignKey('menu.mid'), nullable=False)
    # menu = db.relationship('Menu', backref='dishes', lazy=True)
    establishment_id = db.Column(db.Integer,
                                 db.ForeignKey('establishment.eid'),
                                 nullable=False)
    establishment = db.relationship('Establishment',
                                    backref='dishes',
                                    lazy=True)

    # upVotes = db.relationship('UpVote', backref=db.backref('dish', lazy='subquery'), lazy=True)
    # reviews = db.relationship('Review', backref=db.backref('dish', lazy='subquery'), lazy=True)

    def __init__(self, **kwargs):
        super(Dish, self).__init__(**kwargs)
        self.description = kwargs['description']
        self.price = kwargs['price']
        self.image_url = kwargs.get('image_url', None)
        self.rating = kwargs.get('rating', None)
        self.name = kwargs['name']
        self.type = kwargs['type']
        self.establishment_id = kwargs['establishment_id']
        self.category_id = kwargs['category_id']

    @staticmethod
    def get_all_dishes():
        return Dish.query.all()

    @staticmethod
    def get_dish_by_id(dish_id):
        return Dish.query.filter_by(did=dish_id).first()

    # new queries
    @staticmethod
    def get_all_dish_by_type(dish_type):
        return Dish.query.filter_by(type=dish_type)

    @staticmethod
    def get_all_dish_by_category(dish_category):
        return Dish.query.filter_by(category=dish_category)

    @staticmethod
    def get_all_dishes_by_establishment(eid):
        return Dish.query.filter_by(establishment_id=eid)

    @staticmethod
    def get_top_dishes_by_establishment(eid, n=3):
        return Dish.query.filter_by(establishment_id=eid).\
            order_by(Dish.rating.desc()).limit(n)

    @staticmethod
    def get_top_dishes(n=100):
        return Dish.query.order_by(Dish.rating.desc()).limit(n)

    @staticmethod
    def get_random_dishes(n=10):
        return Dish.query.order_by(func.random()).limit(n)