Ejemplo n.º 1
0
class RoomType(BaseDataModel):
    __tablename__ = 'roomtype'
    description = db.Column(db.String(128))
    bedcount = db.Column(db.Integer())
    # bedtype
    # roomstate
    currency = db.Column(db.Integer(),
                         db.ForeignKey('currency.id', ondelete='NO ACTION'),
                         default=1)
    price = db.Column(db.Float(), nullable=False)
    pricechd = db.Column(db.Float(), nullable=False)
Ejemplo n.º 2
0
class Capteur(db.Model):

    captId = db.Column(db.Integer, primary_key=True)
    cName = db.Column(db.String(100))
    cTel = db.Column(db.String(20))
    cType = db.Column(db.String(100))
    frequence = db.Column(db.Float(5, 2))
    formule = db.Column(db.String(255))
    owner_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)
    owner = db.relationship('User',
                            backref=db.backref('capteurs', lazy='dynamic'))

    # méthode d'affichage
    def __repr__(self):
        return "<Capteur (%d) %s>" % (self.captId, self.cName)

    @property
    def position(self):
        return self.positions.first()

    def serialize(self):
        return {
            'captId': self.captId,
            'cName': self.cName,
            'cTel': self.cTel,
            'cType': self.cType,
            'frequence': self.frequence,
            'formule': self.frequence,
            'pos_x': self.position.position_x,
            'pos_y': self.position.position_y,
        }
Ejemplo n.º 3
0
class ItemModel(db.Model):

    __tablename__ = 'items'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    price = db.Column(db.Float(precision=2), nullable=False)

    store_id = db.Column(db.Integer, db.ForeignKey('stores.id'))

    # different value for the lazy argument
    # https://medium.com/@ns2586/sqlalchemys-relationship-and-lazy-parameter-4a553257d9ef
    store = db.relationship('StoreModel', backref='items', lazy=True)

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

    def json(self):
        return {'name': self.name, 'price': self.price}

    @classmethod
    def find_by_name(cls, name):
        return cls.query.filter_by(name=name).first()

    def save_to_db(self):
        """"insert or update ItemModel to db."""
        db.session.add(self)
        db.session.commit()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()
Ejemplo n.º 4
0
class Sentence(db.Model):
    __tablename__ = 'sentence'

    id = db.Column(db.Integer(), primary_key=True)
    text = db.Column(db.String())
    sentiment = db.Column(db.Float())
    status = db.Column(db.String())  #CONTEXT, SENTIMENT, PRED, DONE
    date = db.Column(db.String())
    time = db.Column(db.String())

    article_id = db.Column(db.Integer(), db.ForeignKey('article.id'))
    context = db.Column(db.String(), db.ForeignKey("company.stock_code"))

    def __init__(self, text, article_id, date, time):
        #self.id = id
        self.text = text
        self.article_id = article_id
        self.status = "CONTEXT"
        self.date = self.time = datetime.strptime(date, '%m/%d/%Y')
        self.time = datetime.strptime(time, '%H:%M:%S')

    def __repr__(self):
        return '<id {}>'.format(self.id)

    def serialize(self):
        return {
            'id': self.id,
            'text': self.text,
            'sentiment': self.sentiment,
            'status': self.status,
            'article_id': self.article_id,
            'date': self.date.strftime("%m/%d/%Y"),
            'time': self.time.strftime("%H:%M:%S"),
            'context': self.context
        }
Ejemplo n.º 5
0
class User(db.Model):
    __tablename__ = "user"

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(100), nullable=False, unique=True)
    email = db.Column(db.String(100), nullable=False, unique=True)
    password = db.Column(db.String(200), nullable=False)
    items = db.relationship("Item", backref="user")
    rating = db.Column(db.Float())
    profile_picture = db.Column(db.String(300), default=None)
    is_admin = db.Column(db.Boolean(), default=False)
    created_at = db.Column(db.DateTime(), nullable=False,
                           server_default=db.func.now())
    updated_at = db.Column(db.DateTime(), nullable=False,
                           server_default=db.func.now(),
                           onupdate=db.func.now())

#Funktio joka hakee käyttäjänimen mukaan
    @classmethod
    def get_by_username(cls, username):
        return cls.query.filter_by(username=username).first()
#Funktio joka hakee sähköpostin mukaan
    @classmethod
    def get_by_email(cls, email):
        return cls.query.filter_by(email=email).first()

# Funktio joka hakee käyttäjän id.n mukaan
    @classmethod
    def get_by_id(cls, id):
        return cls.query.filter_by(id=id).first()

    def save(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 6
0
class Sale(BaseDataModel):
    __tablename__ = 'sale'
    description = db.Column(db.String(128))
    price = db.Column(db.Float(), nullable=False)
    currency = db.Column(db.Integer(),
                         db.ForeignKey('currency.id', ondelete='NO ACTION'),
                         default=1)
    reservationid = db.Column(
        db.Integer(), db.ForeignKey('reservation.id', ondelete='NO ACTION'))
Ejemplo n.º 7
0
class ProductSku(BaseModelMixin, db.Model):
    sku_code = db.Column(db.String(16), nullable=False)
    description = db.Column(db.String(500), nullable=False)
    product_id = db.Column(db.Integer(), db.ForeignKey('product.id'))
    price = db.Column(db.Float(), nullable=False, default=0)
    # product_name = db.Column(db.String(), db.ForeignKey('product.name'))

    # prices = db.relationship('ProductPrice', backref='sku',
    #                          lazy='subquery', )

    cost = db.Column(db.Float())
    msrp = db.Column(db.Float())

    def __init__(self, sku_code, description):
        self.sku_code = sku_code
        self.description = description

    def __repr__(self):
        return "<SKU '{}'>".format(self.sku_code)

    @property
    def formated_price(self):
        return "${0:.2f}".format(self.price)
Ejemplo n.º 8
0
class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.String(1000), nullable=False)
    price = db.Column(db.Float(3), nullable=False)
    stock = db.Column(db.Integer, nullable=False)
    image_path = db.Column(db.String(1000))

    def __init__(self, name: str, description: str, price: float, stock: int,
                 image_path: str):
        self.name = name
        self.description = description
        self.price = price
        self.stock = stock
        self.image_path = image_path

    def __repr__(self):
        return "<Product %r>" % self.name
Ejemplo n.º 9
0
class Eye_Data(db.Model):
    __tablename__ = 'eye_data_entries'

    id = db.Column(db.Integer, primary_key=True)
    timestamp = db.Column(db.String(80))
    score = db.Column(db.Float())

    def __init__(self, timestamp, score):
        self.timestamp = timestamp
        self.score = score

    def __repr__(self):
        return '<id {}>'.format(self.id)

    def serialize(self):
        return {
            'id': self.id,
            'timestamp': self.timestamp,
            'score': self.score
        }
Ejemplo n.º 10
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    # personal information columns
    username = db.Column(db.String(80), nullable=False, unique=True)
    password = db.Column(db.String(1000), nullable=False)
    email = db.Column(db.String(1000), nullable=False)
    # cart columns
    n_items = db.Column(db.Integer, nullable=False)
    subtotal = db.Column(db.Float(3), nullable=False)

    def __init__(self, username: str, password: str, email: str):
        self.username = username
        self.password = password
        self.email = email

        self.n_items = 0
        self.subtotal = 0

    def __repr__(self):
        return "<User %r>" % self.username
Ejemplo n.º 11
0
class Product(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    type = db.Column(db.String(10))
    origin = db.Column(db.String(4))
    destination = db.Column(db.String(4))
    adults = db.Column(db.Integer())
    childs = db.Column(db.Integer())
    infants = db.Column(db.Integer())
    flights = db.relationship('Flight')
    total_duration = db.Column(db.Integer())
    prices = db.Column(CastingArray(JSON))
    total_price = db.Column(db.Float())
    price_currency = db.Column(db.String(3))
    airlines = db.Column(ARRAY(db.String(2)))
    departure_date = db.Column(db.Date())
    return_date = db.Column(db.Date())
    flight_classes = db.Column(ARRAY(db.String(1)))
    search_id = db.Column(db.Integer(), db.ForeignKey('search.id'))

    def __repr__(self):
        return '{origin} - {destination}'.format(origin=self.origin,
                                                 destination=self.destination)
Ejemplo n.º 12
0
class Zip(db.Model):
    __tablename__ = 'zips'

    id = db.Column(db.String(64), primary_key=True)
    zip = db.Column(db.String(6), nullable=False, index=True)
    state = db.Column(db.String(2), nullable=False)
    district = db.Column(db.String(2), nullable=False)
    factor = db.Column(db.Float(8), nullable=False)

    def __init__(self,
                 zip=None,
                 state=None,
                 district=None,
                 factor=None,
                 **kwargs):
        self.id = str(uuid.uuid4())
        self.zip = zip
        self.state = state
        self.district = district
        self.factor = factor

    def as_dict(self):
        return {c.name: getattr(self, c.name) for c in self.__table__.columns}
Ejemplo n.º 13
0
class ItemModel(db.Model):
    __tablename__ = 'items'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), nullable=False)
    price = db.Column(db.Float(precision=2), nullable=False)

    store_id = db.Column(db.Integer, db.ForeignKey('stores.id'))
    store = db.relationship('StoreModel')

    @classmethod
    def find_by_name(cls, name):
        return cls.query.filter_by(name=name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

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

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()
Ejemplo n.º 14
0
class Employee(BaseDataModel):
    __tablename__ = 'employee'
    address = db.Column(db.String(256))
    bankname = db.Column(db.String(64))
    birthdate = db.Column(db.Date())
    birthplace = db.Column(db.String(64))
    bloodgrp = db.Column(db.String(3))
    city = db.Column(db.String(64))
    country = db.Column(db.String(64))
    fullname = db.Column(db.String(64))
    email = db.Column(db.String(64), unique=True)
    gender = db.Column(db.String(6))
    iban = db.Column(db.String(26))
    idno = db.Column(db.String(64))
    maritalstatus = db.Column(db.Boolean())
    paycurrid = db.Column(db.Integer(),
                          db.ForeignKey('currency.id', ondelete='NO ACTION'),
                          default=1)
    salaryamount = db.Column(db.Float(), nullable=False, default=0.0)
    salaryday = db.Column(db.Integer, nullable=False, default=1)
    enddate = db.Column(db.Date())
    tel = db.Column(db.String(16))
    userid = db.Column(db.Integer, db.ForeignKey('user.id',
                                                 ondelete='SET NULL'))
Ejemplo n.º 15
0
class Person(db.Model):
    uuid = db.Column(UUID(as_uuid=True),
                     unique=True,
                     nullable=False,
                     primary_key=True,
                     default=generate_uuid)
    survived = db.Column(db.Boolean, default=False)
    passenger_class = db.Column(db.Integer, nullable=False)
    name = db.Column(db.String(100), nullable=False)
    sex = db.Column(db.Enum(SexEnum), nullable=False, default=SexEnum.other)
    age = db.Column(db.Integer, nullable=False)
    siblings_or_spouses_aboard = db.Column(db.Integer, nullable=False)
    parents_or_children_aboard = db.Column(db.Integer, nullable=False)
    fare = db.Column(db.Float(), nullable=False)

    __tablename__ = 'person'

    def __repr__(self):
        return f'<Person {self.name}>'

    def __str__(self):
        return self.name

    def __init__(self, **kwargs):
        self.uuid = kwargs.pop('uuid', None)
        self.survived = kwargs.pop('survived', None)
        self.passenger_class = kwargs.pop('passenger_class', None)
        self.name = kwargs.pop('name', None)
        self.sex = kwargs.pop('sex', None)
        self.age = kwargs.pop('age', None)
        self.siblings_or_spouses_aboard = kwargs.pop(
            'siblings_or_spouses_aboard', None)
        self.parents_or_children_aboard = kwargs.pop(
            'parents_or_children_aboard', None)
        self.fare = kwargs.pop('fare', None)

    @validates('passenger_class')
    def validate_passenger_class(self, key, value):
        if value is None:
            raise AssertionError('No `passengerClass` provided')
        if not isinstance(value, int):
            raise AssertionError(
                'Incorrect type of value for `passengerClass`')
        return value

    @validates('name')
    def validate_name(self, key, value):
        if value is None:
            raise AssertionError('No `name` provided')
        if not isinstance(value, str):
            raise AssertionError('Incorrect type of value for `name`')
        if len(value) > 100:
            raise AssertionError('To long value for `name`. Max 100 chars.')
        return value

    @validates('sex')
    def validate_sex(self, key, value):
        if value is None:
            raise AssertionError('No `sex` provided')
        if not value in [item.value for item in SexEnum]:
            raise AssertionError('Incorrect value for `sex`')
        return value

    @validates('age')
    def validate_age(self, key, value):
        if value is None:
            raise AssertionError('No `age` provided')
        if not isinstance(value, int):
            raise AssertionError('Incorrect type of value for `age`')
        return value

    @validates('siblings_or_spouses_aboard')
    def validate_siblings_or_spouses_aboard(self, key, value):
        if value is None:
            raise AssertionError('No `siblingsOrSpousesAboard` provided')
        if not isinstance(value, int):
            raise AssertionError(
                'Incorrect type of value for `siblingsOrSpousesAboard`')
        return value

    @validates('parents_or_children_aboard')
    def validate_parents_or_children_aboard(self, key, value):
        if value is None:
            raise AssertionError('No `parentsOrChildrenAboard` provided')
        if not isinstance(value, int):
            raise AssertionError(
                'Incorrect type of value for `parentsOrChildrenAboard`')
        return value

    @validates('fare')
    def validate_fare(self, key, value):
        if value is None:
            raise AssertionError('No `fare` provided')
        if not isinstance(value, float):
            raise AssertionError('Incorrect type of value for `fare`')
        return value

    def update(self, **kwargs):
        for k, v in kwargs.items():
            if hasattr(self, self.to_snake_case(k)):
                setattr(self, self.to_snake_case(k), v)

    def save(self):
        db.session.add(self)
        db.session.commit()
        self.refresh()

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

    def refresh(self):
        db.session.refresh(self)

    @staticmethod
    def get_all():
        return Person.query.all()

    @staticmethod
    def to_camel_case(snake_str):
        return snake_str[0].lower() + string.capwords(
            snake_str, sep='_').replace('_',
                                        '')[1:] if snake_str else snake_str

    @staticmethod
    def to_snake_case(camel_str):
        return SNAKE_CASE.sub(r'_\1', camel_str).lower()

    def dump(self):
        return json.loads(
            json.dumps(dict([(self.to_camel_case(k), v)
                             for k, v in vars(self).items()
                             if not k.startswith('_')]),
                       cls=PersonEncoder))

    @classmethod
    def load(cls, **kwargs):
        return cls(**dict([(cls.to_snake_case(k), v)
                           for k, v in kwargs.items()]))
Ejemplo n.º 16
0
class ProductSkuPrice(BaseModelMixin, db.Model):
    product_id = db.Column(db.Integer(), db.ForeignKey('product.id'))
    price = db.Column(db.Float(), nullable=False)

    def __repr__(self):
        print "<ProductPrice '{}'>".format(self.product_id)