Ejemplo n.º 1
0
class User(BaseMixin, db.Model, UserMixin, ReprMixin):
    email = db.Column(db.String(127), unique=True, nullable=False)
    password = db.Column(db.String(255), default='', nullable=False)
    username = db.Column(db.String(127), nullable=True)

    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())

    last_login_ip = db.Column(db.String(45))
    current_login_ip = db.Column(db.String(45))
    login_count = db.Column(db.Integer)
    roles = db.relationship('Role',
                            back_populates='users',
                            secondary='user_role')
    permissions = db.relationship('Permission',
                                  back_populates='users',
                                  secondary='user_permission')

    user_profile = db.relationship("UserProfile",
                                   uselist=False,
                                   back_populates="user",
                                   cascade='all, delete-orphan',
                                   lazy='subquery')

    def has_permission(self, permission):
        if isinstance(permission, str):
            return permission in (permission.name
                                  for permission in self.permissions)
        else:
            return permission in self.permissions
Ejemplo n.º 2
0
class User(db.Model, BaseMixin, UserMixin, ReprMixin):
    email = db.Column(db.String(127), unique=True, nullable=False)
    password = db.Column(db.String(255), default='', nullable=False)
    name = db.Column(db.String(127), nullable=True)
    mobile_number = db.Column(db.String(20), unique=True, nullable=False)

    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())

    last_login_ip = db.Column(db.String(45))
    current_login_ip = db.Column(db.String(45))
    login_count = db.Column(db.Integer)
    roles = db.relationship('Role', back_populates='users', secondary='user_role')
    retail_shops = db.relationship('RetailShop', back_populates='users', secondary='user_retail_shop', lazy='dynamic')

    @hybrid_property
    def name(self):
        return '{0}'.format(self.user_profile.first_name) + (' {0}'.format(self.user_profile.last_name)) \
                if self.user_profile.first_name else ''

    @hybrid_property
    def retail_shop_ids(self):
        return [i[0] for i in self.retail_shops.with_entities(RetailShop.id).all()]

    @hybrid_property
    def brand_ids(self):
        return set([i[0] for i in self.retail_shops.with_entities(RetailShop.retail_brand_id).all()])
Ejemplo n.º 3
0
class Post(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, nullable=False)
    body = db.Column(db.String, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey(Member.id))
    user = db.relationship(Member)
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=db.func.now())
    updated_at = db.Column(db.DateTime(timezone=True),
                           server_default=db.func.now(),
                           server_onupdate=db.func.now())
    image_url = db.Column(db.Text)
    view_count = db.Column(db.Integer)
    ### RELATION PART
    comments = db.relationship("Comment", backref="post", lazy=True)

    def render(self):
        return {
            "id": self.id,
            "title": self.title,
            "body": self.body,
            "image": self.image_url,
            "created_at": self.created_at,
            "updated_at": self.updated_at,
            "view_count": self.view_count,
            "user_id": self.author.get_data(),
            "comments": [comment.render() for comment in self.comments[::-1]]
        }
Ejemplo n.º 4
0
class User(db.Model, UserMixin):

    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    user_email = db.Column(db.String(64), unique=True, index=True)
    user_username = db.Column(db.String(64), unique=True, index=True)
    user_posts = db.relationship('Topic', cascade="all, delete-orphan", backref='author', lazy='dynamic')
    user_role = db.Column(db.String(10), index=True, default='User')
    user_first_name = db.Column(db.String(64), index=True, nullable=True)
    user_last_name = db.Column(db.String(64), index=True, nullable=True)
    user_birthday = db.Column(db.DateTime(), index=True, nullable=True)
    user_date = db.Column(db.DateTime(), index=True, nullable=True)
    user_location = db.Column(db.String(64), index=True, nullable=True)
    user_about = db.Column(db.String(140), index=True, nullable=True)
    user_occupation = db.Column(db.String(100), index=True, nullable=True)
    user_interests = db.Column(db.String(100), index=True, nullable=True)
    password_hash = db.Column(db.String(128))
    user_reply = db.relationship('Reply', cascade="all, delete-orphan", backref='reply_from', lazy='dynamic')

    def __init__(self, user_email, user_username, user_password, user_role,
                 user_date):

        self.user_email = user_email
        self.user_username = user_username
        self.user_role = user_role
        self.password_hash = generate_password_hash(user_password)
        self.user_date = user_date

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)
Ejemplo n.º 5
0
class Rider(BaseMixin, ReprMixin, UserMixin, db.Model):
    __repr_fields__ = ['id', 'first_name']
    email = db.Column(db.String(127), unique=True, nullable=True, index=True)
    password = db.Column(db.String(255), nullable=True)
    first_name = db.Column(db.String(55), nullable=False)
    last_name = db.Column(db.String(55), nullable=True)
    mobile_number = db.Column(db.String(20),
                              unique=True,
                              nullable=False,
                              index=True)
    company_name = db.Column(db.String(55), nullable=True)
    counter = db.Column(db.Integer, nullable=True, default=0)

    picture = db.Column(db.Text(), nullable=True, index=True)
    active = db.Column(db.Boolean(), default=False)
    confirmed_at = db.Column(db.DateTime(), default=datetime.utcnow)
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())

    last_login_ip = db.Column(db.String(45))
    current_login_ip = db.Column(db.String(45))
    login_count = db.Column(db.Integer)

    device_limit = db.Column(db.Integer, nullable=True, default=0)
    devices = db.relationship('Device',
                              back_populates='riders',
                              secondary='rider_device')
Ejemplo n.º 6
0
class Address(db.Model):
    __tablename__ = 'address'
  
    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    person_id = db.Column(db.Integer, db.ForeignKey("person.id"), nullable=False)
    neighborhood = db.Column(db.String(128), index=True)
    street = db.Column(db.String(128), index=True)
    number = db.Column(db.String(20), index=True)
    complement = db.Column(db.String(128), index=True)
    city = db.Column(db.String(128), index=True)
    creation_date = db.Column(db.DateTime(), nullable=False,  default=datetime.datetime.utcnow())
    modification_date = db.Column(db.DateTime(), nullable=False,  default=datetime.datetime.utcnow())
    
    person = db.relationship("Person", back_populates="address")


    def __init__(self, data):
        self.person_id = data.get('person_id')
        self.neighborhood = data.get('neighborhood')
        self.street = data.get('street')
        self.number = data.get('number')
        self.complement = data.get('complement')
        self.city = data.get('city')

    def __repr__(self):
        if self.city and self.neighborhood and self.street and self.number:
            return f'<Address: {self.city}, {self.neighborhood}, {self.street}, {self.number}'
        return f'<Address: id:{self.id}'
Ejemplo n.º 7
0
class User(db.Model):
    __tablename__ = 'users'
    # __table_args__ = (
    #     db.ForeignKeyConstraint(
    #         ["person_id"],
    #         ["person.id"],
    #     ),
    # )

    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    person_id = db.Column(db.Integer, db.ForeignKey('person.id'), nullable=False)
    username = db.Column(db.String(40), nullable=False, unique=True, index=True)
    password = db.Column(db.String(128), nullable=False)
    is_admin = db.Column(db.Boolean())
    creation_date = db.Column(db.DateTime(), nullable=False,  default=datetime.datetime.utcnow())
    modification_date = db.Column(db.DateTime(), nullable=False,  default=datetime.datetime.utcnow())

    userProfileSystem = db.relationship("UserProfileSystem", back_populates="users")
    person = db.relationship("Person", back_populates="users")

    def __init__(self, username, password, is_admin, person_id):
        bcrypt = Bcrypt(current_app)
        self.username = username
        self.password = bcrypt.generate_password_hash(password).decode('utf-8')
        self.is_admin = is_admin
        self.person_id = person_id

    def compare_password(self, password):
        bcrypt = Bcrypt(current_app)
        return bcrypt.check_password_hash(self.password, password)

    def __repr__(self):
        return f'<User: {self.username}'
Ejemplo n.º 8
0
class Contact(db.Model):
    __tablename__ = 'contact'
    __table_args__ = (
        db.ForeignKeyConstraint(
            ["person_id", ],
            ["person.id",]
        ),
    
    )
    id = db.Column(db.Integer, autoincrement=True, primary_key=True)

    person_id = db.Column(db.Integer, primary_key=True)
    person = db.relationship("Person")

    email = db.Column(db.String(65))
    cell_phone = db.Column(db.String(11))
    phone = db.Column(db.String(11))

    creation_date = db.Column(db.DateTime(), nullable=False, default=datetime.datetime.utcnow())
    modification_date = db.Column(db.DateTime(), nullable=False,  default=datetime.datetime.utcnow())

    def __init__(self, person_id, email, cell_phone, phone):
        self.person_id = person_id
        self.email = email
        self.cell_phone = cell_phone
        self.phone = phone

    def __repr__(self):
        contact = 'id: {id}'
        if email: contact+= f', email:{email}' 
        if cell_phone: contact+= f', cellphone:{cell_phone}' 
        return f'<Contact: {contact}'
Ejemplo n.º 9
0
class User(db.Model, BaseMixin, ReprMixin, UserMixin):
    __repr_fields__ = ['id', 'username', 'email', 'mobile_number', 'roles']

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(40), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    mobile_number = db.Column(db.String(20),
                              unique=True,
                              nullable=False,
                              index=True)
    password = db.Column(db.String(60), nullable=False)

    where_from = db.Column(db.String(20), nullable=False)
    where_to = db.Column(db.String(20), nullable=False)

    previous_salary = db.Column(db.Integer, nullable=False)
    expected_salary = db.Column(db.Integer, nullable=False)

    active = db.Column(db.Boolean(), default=False)
    confirmed_at = db.Column(db.DateTime(), default=datetime.utcnow)
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())

    last_login_ip = db.Column(db.String(45))
    current_login_ip = db.Column(db.String(45))
    login_count = db.Column(db.Integer)

    roles = db.relationship('Role',
                            back_populates='users',
                            secondary='user_role')
Ejemplo n.º 10
0
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String, nullable=False)
    created_on = db.Column(db.DateTime(timezone=True),
                           server_default=db.func.now())
    updated_on = db.Column(db.DateTime(timezone=True),
                           server_default=db.func.now(),
                           server_onupdate=db.func.now())
    user_id = db.Column(db.Integer, db.ForeignKey(Users.id), nullable=False)
    post_id = db.Column(db.Integer,
                        db.ForeignKey(Post.id, ondelete='CASCADE'),
                        nullable=False)
    like_list = db.relationship('Like',
                                backref=db.backref('comment'),
                                passive_deletes="all",
                                lazy=True)

    def render(self):
        likes = [like.render() for like in self.like_list]
        likers = [like['owner'] for like in likes]
        return {
            'comment_id': self.id,
            'content': self.content,
            'owner': self.user.user_name,
            'owner_id': self.user.id,
            "likes": {
                'count': len(likes),
                'liker_name': [like['owner'].user_name for like in likes],
                'liker_id': [like['owner'].id for like in likes]
            },
            "created_on": self.created_on,
            "updated_on": self.updated_on,
        }
Ejemplo n.º 11
0
class ProfilePermission(db.Model):
    __tablename__ = 'profilePermission'

    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    profile_system_id = db.Column(db.Integer,
                                  db.ForeignKey("profileSystem.id"),
                                  nullable=False)
    system_permission_id = db.Column(db.Integer,
                                     db.ForeignKey("systemPermission.id"),
                                     nullable=False)
    creation_date = db.Column(db.DateTime(),
                              nullable=False,
                              default=datetime.datetime.utcnow())
    modification_date = db.Column(db.DateTime(),
                                  nullable=False,
                                  default=datetime.datetime.utcnow())

    systemPermission = db.relationship("SystemPermission",
                                       back_populates="profilePermission")
    profileSystem = db.relationship("ProfileSystem",
                                    back_populates="profilePermission")

    def __init__(self, data):
        self.system_permission_id = data.get('system_permission_id')
        self.profile_system_id = data.get('profile_system_id')

    def __repr__(self):
        return f'<ProfilePermission: {self.id}'
Ejemplo n.º 12
0
class System(db.Model):
    __tablename__ = 'system'

    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    name = db.Column(db.String(50), index=True, nullable=False, unique=True)
    description = db.Column(db.String(200))
    url = db.Column(db.String(200), index=True)
    creation_date = db.Column(db.DateTime(),
                              nullable=False,
                              default=datetime.datetime.utcnow())
    modification_date = db.Column(db.DateTime(),
                                  nullable=False,
                                  default=datetime.datetime.utcnow())

    systemPermission = db.relationship("SystemPermission",
                                       back_populates="system")
    profileSystem = db.relationship("ProfileSystem", back_populates="system")
    userProfileSystem = db.relationship("UserProfileSystem",
                                        back_populates="system")

    def __init__(self, data):
        self.name = data.get('name')
        self.description = data.get('description')
        self.url = data.get('url')

    def __repr__(self):
        return f'<System: {self.name}'
Ejemplo n.º 13
0
class User(BaseMixin, UserMixin, ReprMixin, db.Model):
    email = db.Column(db.String(127), unique=True, nullable=False)
    password = db.Column(db.String(255), default='', nullable=False)
    name = db.Column(db.String(55), nullable=False)
    mobile_number = db.Column(db.String(20), unique=True, nullable=False)

    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())

    last_login_ip = db.Column(db.String(45))
    current_login_ip = db.Column(db.String(45))
    login_count = db.Column(db.Integer)

    organisation_id = db.Column(db.ForeignKey('organisation.id'), index=True)

    organisation = db.relationship('Organisation',
                                   foreign_keys=[organisation_id],
                                   back_populates='users')
    roles = db.relationship('Role',
                            back_populates='users',
                            secondary='user_role')
    permissions = db.relationship('Permission',
                                  back_populates='users',
                                  secondary='user_permission',
                                  lazy='dynamic')
    stores = db.relationship('Store',
                             back_populates='users',
                             secondary='user_store',
                             lazy='dynamic')

    @hybrid_property
    def store_ids(self):
        return [i[0] for i in self.stores.with_entities(Store.id).all()]

    @store_ids.expression
    def store_ids(self):
        return select([
            UserStore.store_id
        ]).where(UserStore.user_id == self.id).label('store_ids').limit(1)

    @hybrid_method
    def has_shop_access(self, shop_id):
        return db.session.query(
            UserStore.query.filter(
                UserStore.store_id == shop_id,
                UserStore.user_id == self.id).exists()).scalar()

    @hybrid_method
    def has_permission(self, permission):
        return db.session.query(
            self.permissions.filter(
                Permission.name == permission).exists()).scalar()

    @hybrid_property
    def is_owner(self):
        return self.has_role('owner')
Ejemplo n.º 14
0
class PointStoreModelMixin(db.Model):
    __abstract__ = True
    value = db.Column(db.Float(), nullable=True)
    value_original = db.Column(db.Float(), nullable=True)
    value_raw = db.Column(db.String(), nullable=True)
    fault = db.Column(db.Boolean(), default=False, nullable=False)
    fault_message = db.Column(db.String())
    ts_value = db.Column(db.DateTime())
    ts_fault = db.Column(db.DateTime())
Ejemplo n.º 15
0
class Temperature(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    sensorID = db.Column(db.String(64), nullable=False)
    createdAt = db.Column(db.DateTime(), index=True, nullable=False)
    takenAt = db.Column(db.DateTime(), index=True, nullable=False)
    temperature = db.Column(db.String(3), nullable=False)

    def __repr__(self):
        return '<Temperature {}>'.format(self.id)
Ejemplo n.º 16
0
class User(BaseMixin, ReprMixin, UserMixin, db.Model):
    __repr_fields__ = ['id', 'first_name']

    email = db.Column(db.String(127), unique=True, nullable=True, index=True)
    password = db.Column(db.String(255), nullable=True)
    first_name = db.Column(db.String(55), nullable=False)
    last_name = db.Column(db.String(55), nullable=True)
    mobile_number = db.Column(db.String(20),
                              unique=True,
                              nullable=False,
                              index=True)
    business_name = db.Column(db.String(55), nullable=True)
    counter = db.Column(db.Integer, nullable=True, default=0)

    #picture = db.Column(db.Text(), nullable=True, index=True)
    active = db.Column(db.Boolean(), default=False)
    confirmed_at = db.Column(db.DateTime(), default=datetime.utcnow)
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())

    last_login_ip = db.Column(db.String(45))
    current_login_ip = db.Column(db.String(45))
    login_count = db.Column(db.Integer)

    parent_id = db.Column(db.ForeignKey('user.id'), nullable=True)

    parent = db.relationship('User',
                             foreign_keys=[parent_id],
                             uselist=False,
                             remote_side='User.id')
    children = db.relationship(
        'User',
        remote_side='User.parent_id',
        lazy='dynamic',
        order_by="User.first_name",
    )

    roles = db.relationship('Role',
                            back_populates='users',
                            secondary='user_role')
    devices = db.relationship('Device',
                              back_populates='users',
                              secondary='user_device')

    @hybrid_property
    def get_children_list(self):
        beginning_getter = User.query.with_entities(User.id) \
            .filter(User.id == self.id).cte(name='children_for', recursive=True)
        with_recursive = beginning_getter.union_all(
            User.query.with_entities(
                User.id).filter(User.parent_id == beginning_getter.c.id))
        return [i[0] for i in db.session.query(with_recursive).all()]

    @hybrid_property
    def get_immediate_children_list(self):
        return [i[0] for i in self.children.with_entities(User.id).all()]
Ejemplo n.º 17
0
class Comment(db.Model):
    __tablename__ = "comments"
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.Text, nullable=False)
    image_url = db.Column(db.Text)
    author = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    post_id = db.Column(db.Integer, db.ForeignKey('posts.id'), nullable=False)
    timestamp = db.Column(db.DateTime(timezone=True), server_default = db.func.now())
    updated = db.Column(db.DateTime(timezone=True), server_default = db.func.now(), server_onupdate=db.func.now())

    def __repr__(self):
        return '<Task>' % self.id
Ejemplo n.º 18
0
class Post(db.Model):
    __tablename__ = "posts"
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.Text, nullable=False)
    image_url = db.Column(db.Text)
    author = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    timestamp = db.Column(db.DateTime(timezone=True), server_default = db.func.now())
    updated = db.Column(db.DateTime(timezone=True), server_default = db.func.now(), server_onupdate=db.func.now()) ## same as above, but with updating timestamp
    views_count = db.Column(db.Integer, default=0)

    def __repr__(self): 
        return '<Task>' % self.id
Ejemplo n.º 19
0
class User(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    username = db.Column(db.String(length=255))
    email = db.Column(db.String(length=255))
    password = db.Column(db.String(length=255))
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self, username, email, password, created_at):
        self.username = username
        self.email = email
        self.password = password
        self.created_at = created_at
Ejemplo n.º 20
0
class Order(db.Model):
    __tablename__ = 'orders'
    id = db.Column(db.Integer, primary_key=True)
    client_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    orderitems = db.relationship('Orderitem', backref='order')
    isPaid = db.Column(db.Boolean, default=False)
    timestamp = db.Column(db.DateTime(timezone=True), server_default = db.func.now())
Ejemplo n.º 21
0
class Image(db.Model):
    __tablename__ = 'images'
    id = db.Column(db.Integer, primary_key=True)
    image_name = db.Column(db.String(200))
    image_url = db.Column(db.Text, nullable=False)
    event_id = db.Column(db.Integer, db.ForeignKey('events.id'))
    timestamp = db.Column(db.DateTime(timezone=True), server_default = db.func.now())
Ejemplo n.º 22
0
class Article(db.Model):
    __tablename__ = 'article'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200))
    body = db.Column(db.Text, nullable=False)
    event_id = db.Column(db.Integer, db.ForeignKey('events.id'))
    timestamp = db.Column(db.DateTime(timezone=True), server_default = db.func.now())
Ejemplo n.º 23
0
class Order(db.Model):
    timestamp = db.Column(db.DateTime(timezone=True),
                          server_default=func.now())
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    restaurant_id = db.Column(db.Integer, db.ForeignKey('restaurant.id'))
    status = db.Column(db.Integer, default=0)  # payment or not yet
Ejemplo n.º 24
0
class Recipient(db.Model):
    __tablename__ = 'recipients'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id'),
                        index=True,
                        nullable=False)
    email = db.Column(db.String(255), nullable=False)
    name = db.Column(db.String(255), nullable=False)
    state = db.Column(db.String(50), nullable=False)
    last_send_date = db.Column(db.DateTime())
    form_data = db.relationship("FormData", backref='recipient', lazy=True)

    def __repr__(self):
        return '<Recipient %r>' % self.name

    def serialize(self):
        return {
            'id': self.id,
            'email': self.email,
            'name': self.name,
            'user_name': self.user.username,
            'state': self.state,
            'last_send_date': self.last_send_date
        }
Ejemplo n.º 25
0
class Image(db.Model):
    timestamp = db.Column(db.DateTime(timezone=True),
                          server_default=func.now())
    id = db.Column(db.Integer, primary_key=True)
    url = db.Column(db.String, unique=True)
    restaurants = db.relationship('Restaurant', backref='img', lazy=True)
    dishs = db.relationship('Dish', backref='img', lazy=True)
Ejemplo n.º 26
0
class QRCode(db.Model):

    __tablename__ = 'qrcode'
    timestamp = db.Column(db.DateTime(timezone=True),
                          server_default=func.now())
    id = db.Column(db.Integer, primary_key=True)
    code = db.Column(db.String, unique=True)
Ejemplo n.º 27
0
class Person(db.Model):
    __tablename__ = 'person'

    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    type = db.Column(db.String(128), index=True, nullable=True)
    birth_date = db.Column(db.Date())
    name = db.Column(db.String(128), index=True)
    surname = db.Column(db.String(128), index=True)
    gender = db.Column(db.String(128))
    cpf = db.Column(db.String(128), index=True)
    company_name = db.Column(db.String(128), index=True)
    cnpj = db.Column(db.String(128), index=True)
    creation_date = db.Column(db.DateTime(),
                              nullable=False,
                              default=datetime.datetime.utcnow())
    modification_date = db.Column(db.DateTime(),
                                  nullable=False,
                                  default=datetime.datetime.utcnow())

    users = db.relationship("User", back_populates="person")
    address = db.relationship("Address", back_populates="person")

    def __init__(self, data_person):
        _type = data_person.get('type')
        birth_date = data_person.get('birth_date')
        name = data_person.get('name')
        surname = data_person.get('surname')
        gender = data_person.get('gender')
        cpf = data_person.get('cpf')
        company_name = data_person.get('company_name')
        cnpj = data_person.get('cnpj')

        self.type = _type
        self.birth_date = birth_date
        self.name = name
        self.surname = surname
        self.gender = gender
        self.cpf = cpf
        self.company_name = company_name
        self.cnpj = cnpj

    def __repr__(self):
        identification = ''
        if self.name or self.surname or self.company_name:
            identification = f'{self.name} {self.surname} {self.company_name}'
        return f'<Person: {identification}'
Ejemplo n.º 28
0
class Engagement(db.Model):
    __tablename__ = 'engagement'

    engagementid = db.Column(db.Integer, primary_key=True)
    capacity_in_days = db.Column(db.Integer, nullable=False)
    hours_of_work = db.Column(db.Integer, nullable=False)
    start_date = db.Column(db.DateTime(), nullable=False, default=datetime.now)
    end_date = db.Column(db.DateTime(), nullable=False, default=datetime.now)
    contract_rate = db.Column(db.String(), nullable=False)
    profile_id = db.Column(db.Integer,
                           db.ForeignKey("profiles.profileid"),
                           nullable=False)
    contract_id = db.Column(db.Integer,
                            db.ForeignKey("contracts.contractid"),
                            nullable=False)

    def __repr__(self):
        return f"<Engagement {self.title}>"
Ejemplo n.º 29
0
class Follow(db.Model):
    __tablename__ = "follows"
    id = db.Column(db.Integer, primary_key=True)
    author = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    timestamp = db.Column(db.DateTime(timezone=True), server_default = db.func.now())

    def __repr__(self):
        return '<Task>' % self.id
Ejemplo n.º 30
0
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    comment = db.Column(db.Text(2000))
    author = db.Column(db.String(150))
    article = db.Column(db.ForeignKey('article.id'))
    created_at = db.Column(db.DateTime(), default=datetime.utcnow)

    def __repr__(self):
        return f'{self.author}{self.comment}'