Exemplo n.º 1
0
class Like(db.Model):
    """
    Describes a like given by some user to some post
    """

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    post_id = db.Column(db.Integer, db.ForeignKey("post.id"))
    date = db.Column(db.Date, default=datetime.date.today())
    time = db.Column(db.Time, default=datetime.datetime.now().time())

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    def __repr__(self):
        return f"<Like: id={self.id}, user_id={self.user_id}, post_id={self.post_id}, " \
               f"date={str(self.date)}, time={str(self.time)}>"

    def json(self):
        return {
            "user_id": self.user_id,
            "post_id": self.post_id,
            "date": str(self.date),
            "time": str(self.time)
        }
Exemplo n.º 2
0
class FavourOfferModel(BaseModel):
  __tablename__='favour_offers'

  id = db.Column(db.Integer, primary_key=True)
  order_id = db.Column(db.Integer, db.ForeignKey('orders.order_id', ondelete='CASCADE'), nullable=False)
  # usuario que entrega el pedido
  user_id = db.Column(db.Integer, db.ForeignKey('normal_users.user_id', ondelete='CASCADE'), nullable=False)
  points = db.Column(db.Integer,nullable = False)
  created_at = db.Column(db.DateTime)
  created_at_seconds = db.Column(db.Integer)
  state = db.Column(db.String(128), nullable=False)

    # class constructor
  def __init__(self, data):
    """
    Class constructor
    """
    self.order_id = data.get("order_id")
    self.user_id = data.get('user_id')
    self.points = data.get('points')
    self.created_at = datetime.datetime.utcnow()
    self.created_at_seconds = int(round(time.time()))
    self.state = data.get('state')

  @staticmethod
  def get_offer(offer_id):
    response = FavourOfferModel.query.get(offer_id)
    if not response:
        raise NotFoundException("Invalid ID")
    return response
Exemplo n.º 3
0
class Build(db.Model):

    _id = db.Column(db.Integer, primary_key=True)  # ID in database (is unique)
    id = db.Column(
        db.Integer)  # ID in job, together with job_id is an unique tuple
    description = db.Column(db.Text)
    commands = db.Column(db.Text)
    output = db.Column(db.Text)
    status = db.Column(db.String(32))
    job_id = db.Column(db.Integer, db.ForeignKey("job.id"))
    node_id = db.Column(db.Integer, db.ForeignKey("node.id"))
    created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow)

    def to_dict(self):
        return {
            'id': self.id,
            'description': self.description,
            'commands': self.commands,
            'output': self.output,
            'status': self.status,
            'job_id': self.job_id,
            'node_id': self.node_id,
            'created_date': self.created_date.strftime("%m/%d/%Y, %H:%M:%S")
        }

    def __repr__(self):
        return f"<id {self.id}, description : {self.description}>"
Exemplo n.º 4
0
class OrderOffersModel(BaseModel):

  # table name
  __tablename__ = 'order_oferts'

  id = db.Column(db.Integer, primary_key=True)
  order_id = db.Column(db.Integer, db.ForeignKey('orders.order_id', ondelete='CASCADE'), nullable=False)
  delivery_id = db.Column(db.Integer, db.ForeignKey('delivery_users.user_id', ondelete='CASCADE'), nullable=False)
  delivery_price = db.Column(db.Float,nullable=False)
  delivery_pay = db.Column(db.Float,nullable = False)
  created_at = db.Column(db.DateTime)
  created_at_seconds = db.Column(db.Integer)
  state = db.Column(db.String(128), nullable=False)

  # class constructor
  def __init__(self, data):
    """
    Class constructor
    """
    self.order_id = data.get("order_id")
    self.delivery_id = data.get('delivery_id')
    self.delivery_price = data.get('delivery_price')
    self.delivery_pay = data.get('delivery_pay')
    self.created_at = datetime.datetime.utcnow()
    self.created_at_seconds = int(round(time.time()))
    self.state = data.get('state')

  @staticmethod
  def get_offer(offer_id):
    response = OrderOffersModel.query.get(offer_id)
    if not response:
        raise NotFoundException("Invalid ID")
    return response
Exemplo n.º 5
0
class ActivityLog(db.Model):
    """
    Describes an activity by (optional) user (and/or) on some (optional) post,
    or just a message about what was done

    """

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=True)
    post_id = db.Column(db.Integer, db.ForeignKey("post.id"), nullable=True)
    action = db.Column(db.String(255))
    date = db.Column(db.Date, default=datetime.date.today())
    time = db.Column(db.Time, default=datetime.datetime.now().time())

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    def __repr__(self):
        return f"<Activity: id={self.id}, user={self.user_id}, post={self.post_id}, " \
               f"action={self.action}, date={self.date}, time={self.time}>"

    def json(self):
        return {
            "user_id": self.user_id,
            "post_id": self.post_id,
            "action": self.action,
            "date": str(self.date),
            "time": str(self.time)
        }
Exemplo n.º 6
0
class EventModel(db.Model):
    __tablename__ = 'events'

    id = db.Column(db.Integer, primary_key=True)
    time_created = db.Column(db.DateTime(), default=datetime.datetime.utcnow)
    time_updated = db.Column(db.DateTime(), onupdate=datetime.datetime.utcnow)
    owner_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    owner = db.relationship('UserModel', foreign_keys=[owner_id])
    community_id = db.Column(db.Integer,
                             db.ForeignKey('communities.id'),
                             nullable=False)
    community = db.relationship('CommunityModel', foreign_keys=[community_id])
    title = db.Column(db.String(120), nullable=False)
    description = db.Column(db.Text, nullable=True)
    start = db.Column(db.DateTime())
    end = db.Column(db.DateTime())

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

    @staticmethod
    def get_marshaller():
        return {
            'id': fields.Integer,
            'time_created': fields.DateTime,
            'time_updated': fields.DateTime,
            'owner': fields.Nested(UserModel.get_marshaller()),
            'title': fields.String,
            'description': fields.String,
            'start': fields.DateTime,
            'end': fields.DateTime,
        }

    @classmethod
    def delete_by_id(cls, event_id):
        event = db.session.query(cls).filter(cls.id == event_id).first()
        if event:
            db.session.delete(event)
            db.session.commit()
        else:
            raise NoData

    @classmethod
    def find_by_id(cls, id):
        return cls.query.filter_by(id=id).first()

    @classmethod
    def find_by_community(cls, community_id, from_datetime, to_datetime):
        return cls.query.filter_by(community_id=community_id). \
            filter(EventModel.end >= from_datetime, EventModel.start <= to_datetime).all()

    @classmethod
    def find_next_n_by_community(cls, community_id, n):
        return cls.query.filter_by(community_id=community_id). \
            filter(EventModel.end >= datetime.datetime.utcnow()).order_by(EventModel.start.asc()).limit(n).all()
Exemplo n.º 7
0
class Follow(db.Model):
    __tablename__ = "follows"
    follower_id = db.Column(db.Integer,
                            db.ForeignKey("users.id"),
                            primary_key=True)
    followed_id = db.Column(db.Integer,
                            db.ForeignKey("users.id"),
                            primary_key=True)
    timestamp = db.Column(db.DateTime, default=datetime.utcnow)

    def __repr__(self):
        return f"<User ID {self.follower_id} follows {self.followed_id} as of {self.timestamp}>"
Exemplo n.º 8
0
class StudyClass(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(10), unique=True, nullable=False)
    year_of_study = db.Column(db.String(2), unique=False, nullable=False)

    schedule_id = db.Column(db.Integer, db.ForeignKey('schedule.id'))
    professor_id = db.Column(db.Integer, db.ForeignKey('professor.id'))

    schedule = db.relationship('Schedule',
                               backref=db.backref('classes', lazy=True))
    discipline = db.relationship('Discipline', backref='study_class')

    def __repr__(self):
        return f'{self.name} {self.year_of_study}'
Exemplo n.º 9
0
class Discipline(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=False, nullable=False)
    # Day of the week + hour interval of the class
    course_schedule = db.Column(db.String(50), unique=False, nullable=True)
    lab_schedule = db.Column(db.String(50), unique=False, nullable=True)
    seminary_schedule = db.Column(db.String(50), unique=False, nullable=True)

    schedule_id = db.Column(db.Integer, db.ForeignKey('schedule.id'))
    study_class_id = db.Column(db.Integer, db.ForeignKey('study_class.id'))
    professor_id = db.Column(db.Integer, db.ForeignKey('professor.id'))

    def __repr__(self):
        return f'{self.name} {self.course_schedule} {self.lab_schedule} {self.seminary_schedule}'
Exemplo n.º 10
0
class AccountSettingsModel(db.Model):
    __tablename__ = 'account_settings'

    id = db.Column(db.Integer, primary_key=True)
    time_created = db.Column(db.DateTime(), default=datetime.datetime.utcnow)
    time_updated = db.Column(db.DateTime(), onupdate=datetime.datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    auto_load_parking_place_gps_location = db.Column(db.Boolean, default=False)
    parking_place_required = db.Column(db.Boolean, default=False)

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

    @staticmethod
    def get_marshaller():
        return {
            'id': fields.Integer,
            'time_created': fields.DateTime,
            'time_updated': fields.DateTime,
            'auto_load_parking_place_gps_location': fields.Boolean,
            'parking_place_required': fields.Boolean
        }

    @classmethod
    def find_by_user_id(cls, user_id):
        return cls.query.filter_by(user_id=user_id).first()
Exemplo n.º 11
0
class Post(db.Model):
    __tablename__ = "posts"
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.Text)
    body_html = db.Column(db.Text)
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    author_id = db.Column(db.Integer, db.ForeignKey("users.id"))

    @staticmethod
    def on_changed_body(target, value, oldvalue, initiator):
        allowed_tags = [
            "a",
            "abbr",
            "acronym",
            "b",
            "blockquote",
            "code",
            "em",
            "i",
            "li",
            "ol",
            "pre",
            "strong",
            "ul",
            "h1",
            "h2",
            "h3",
            "p",
        ]
        target.body_html = bleach.linkify(
            bleach.clean(markdown(value, output_format="html"),
                         tags=allowed_tags,
                         strip=True))
Exemplo n.º 12
0
class Posts(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    deleted = db.Column(db.Boolean, default=False)
    deleted_at = db.Column(db.DateTime, default=None)
    created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    updated_at = db.Column(db.DateTime,
                           default=datetime.datetime.utcnow,
                           onupdate=datetime.datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    title = db.Column(db.String(200), nullable=False)
    thumbnail = db.Column(db.Text)
    slug = db.Column(db.String(200), nullable=False, unique=True)
    brief = db.Column(db.Text, nullable=False)
    content = db.Column(db.Text, nullable=False)
    last_edited_at = db.Column(db.DateTime)

    user = db.relationship('Users', backref=db.backref('posts', lazy=True))
    votes = db.relationship("Votes", back_populates="post")
    tags = db.relationship('Tags',
                           secondary=post_tags,
                           lazy='subquery',
                           backref=db.backref('posts', lazy=True))

    def __repr__(self):
        return '<Posts %r>' % self.title
Exemplo n.º 13
0
class Character(db.Model):
    __tablename__ = 'character'
    id = db.Column(db.Integer, primary_key=True)
    available = db.Column(db.Integer)
    collectionURI = db.Column(db.String(140))
    returned = db.Column(db.Integer)
    comic_id = db.Column(db.Integer, db.ForeignKey('comics.id'))
Exemplo n.º 14
0
class NormalUserModel(UserModel):
    # table name
    __tablename__ = 'normal_users'

    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.user_id'),
                        primary_key=True)
    suscripcion = db.Column(db.String(128), nullable=False)
    picture = db.Column(db.String(256), nullable=True)
    make_favours = db.Column(db.Boolean, nullable=False)

    __mapper_args__ = {
        'polymorphic_identity': 'normal_users',
    }

    # class constructor
    def __init__(self, data):
        """
    Class constructor
    """
        super(NormalUserModel, self).__init__(data)
        self.suscripcion = data.get('suscripcion')
        self.picture = data.get('picture')
        self.make_favours = data.get('make_favours', True)

    @staticmethod
    def get_user(user_id):
        response = NormalUserModel.query.get(user_id)
        if not response:
            raise NotFoundException("Invalid ID")
        return response
Exemplo n.º 15
0
class ProductModel(BaseModel):

  # table name
  __tablename__ = 'products'

  id = db.Column(db.Integer, primary_key=True)
  shop_id = db.Column(db.Integer, db.ForeignKey('shops.id', ondelete='CASCADE'), nullable=False)
  name = db.Column(db.String(128), nullable=False)
  description = db.Column(db.String(128), nullable=False)
  price = db.Column(db.Float, nullable=False)

  # class constructor
  def __init__(self, data):
    """
    Class constructor
    """
    self.shop_id = data.get('shop_id')
    self.name = data.get('name')
    self.description = data.get('description')
    self.price = data.get('price')

  @staticmethod
  def get_product(product_id):
    response = ProductModel.query.get(product_id)
    if not response:
      raise NotFoundException("Invalid ID")
    return response
Exemplo n.º 16
0
class Comments(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    deleted = db.Column(db.Boolean, default=False)
    deleted_at = db.Column(db.DateTime, default=None)
    created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    updated_at = db.Column(db.DateTime,
                           default=datetime.datetime.utcnow,
                           onupdate=datetime.datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    post_id = db.Column(db.Integer, db.ForeignKey('posts.id'), nullable=False)
    content = db.Column(db.Text, nullable=False)

    post = db.relationship('Posts', backref=db.backref('comments', lazy=True))
    user = db.relationship('Users', backref=db.backref('comments', lazy=True))

    def __repr__(self):
        return '<Comment %r>' % self.content
Exemplo n.º 17
0
class OrderProductsModel(BaseModel):

  # table name
  __tablename__ = 'order_products'

  id = db.Column(db.Integer, primary_key=True)
  order_id = db.Column(db.Integer, db.ForeignKey('orders.order_id', ondelete='CASCADE'), nullable=False)
  product_id = db.Column(db.Integer, db.ForeignKey('products.id', ondelete='CASCADE'), nullable=False)
  units = db.Column(db.Integer, nullable=False)

  # class constructor
  def __init__(self, data):
    """
    Class constructor
    """
    self.product_id = data.get('product_id')
    self.units = data.get('units')
Exemplo n.º 18
0
class Name(db.Model):
    __tablename__ = 'name'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(400))
    disposition = db.Column(db.String(400))

    hat_id = db.Column(db.Integer, db.ForeignKey('hat.id'))
Exemplo n.º 19
0
class Votes(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    deleted = db.Column(db.Boolean, default=False)
    deleted_at = db.Column(db.DateTime, default=None)
    created_at = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    updated_at = db.Column(db.DateTime,
                           default=datetime.datetime.utcnow,
                           onupdate=datetime.datetime.utcnow)
    vote = db.Column(db.Boolean, default=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    post_id = db.Column(db.Integer, db.ForeignKey('posts.id'), nullable=False)

    post = db.relationship("Posts", uselist=False, back_populates="votes")
    user = db.relationship('Users', backref=db.backref('votes', lazy=True))

    def __repr__(self):
        return '<Vote %r>' % self.vote
class TourPassengerLinkModel(db.Model):
    __tablename__ = 'tour_passenger_link'

    tour_id = db.Column(db.Integer,
                        db.ForeignKey('tours.id'),
                        primary_key=True)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id'),
                        primary_key=True)
    tour = db.relationship('TourModel')
    user = db.relationship('UserModel')
    time_created = db.Column(db.DateTime(), default=datetime.datetime.utcnow)
    time_updated = db.Column(db.DateTime(), onupdate=datetime.datetime.utcnow)

    def persist(self):
        db.session.add(self)
        db.session.commit()
Exemplo n.º 21
0
class OrderModel(BaseModel):

  # table name
  __tablename__ = 'orders'

  order_id = db.Column(db.Integer, primary_key=True)
  shop_id = db.Column(db.Integer, nullable=False)
  products = db.relationship('OrderProductsModel', backref='order', lazy=True)
  latitud = db.Column(db.Float, nullable=False)
  longitud = db.Column(db.Float, nullable=False)
  payWithPoints = db.Column(db.Boolean, nullable=False)
  favourPoints = db.Column(db.Integer, nullable=False)
  state = db.Column(db.String(128), nullable=False)
  price = db.Column(db.Float,nullable = False)
  delivery_price = db.Column(db.Float)
  delivery_pay = db.Column(db.Float)
  user_id = db.Column(db.Integer, db.ForeignKey('normal_users.user_id'), nullable=False)
  delivery_id = db.Column(db.Integer, db.ForeignKey('users.user_id'), nullable=True)
  created_at = db.Column(db.DateTime)
  modified_at = db.Column(db.DateTime)
  delivery_review = db.Column(db.Float, nullable = True)
  shop_review = db.Column(db.Float, nullable = True)
  discount = db.Column(db.Boolean, nullable=False)

  # class constructor
  def __init__(self, data):
    """
    Class constructor
    """
    self.shop_id = data.get('shop_id')
    self.latitud = data.get('latitude')
    self.longitud = data.get('longitude')
    self.payWithPoints = data.get('payWithPoints')
    self.favourPoints = data.get('favourPoints', 0)
    self.state = data.get('state')
    self.user_id = data.get('user_id')
    self.delivery_id = data.get('delivery_id', None)
    self.price = data.get("price")
    self.created_at = datetime.datetime.utcnow()
    self.modified_at = datetime.datetime.utcnow()
    self.delivery_review = None
    self.shop_review = None 
    self.discount =  data.get("discount", False)
Exemplo n.º 22
0
class ProductModel(db.Model):
    __tablename__ = 'products'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    price = db.Column(db.Integer, nullable=False)
    description = db.Column(db.Text, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    images = db.relationship('ProductImagesModel',
                             backref='product',
                             lazy=True,
                             cascade="all,delete")
Exemplo n.º 23
0
class CarModel(db.Model):
    __tablename__ = 'cars'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120), nullable=False)
    make = db.Column(db.String(120), nullable=False)
    model = db.Column(db.String(120), nullable=False)
    time_created = db.Column(db.DateTime(), default=datetime.datetime.utcnow)
    time_updated = db.Column(db.DateTime(), onupdate=datetime.datetime.utcnow)
    owner_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    owner = db.relationship('UserModel', back_populates='cars')

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

    @staticmethod
    def get_marshaller():
        return {
            'id': fields.Integer,
            'name': fields.String,
            'make': fields.String,
            'model': fields.String,
            'time_created': fields.DateTime,
            'time_updated': fields.DateTime,
            'owner': fields.Nested(UserModel.get_marshaller())
        }

    @classmethod
    def find_by_id(cls, id):
        return cls.query.filter_by(id=id).first()

    @classmethod
    def return_all(cls):
        return CarModel.query.all()

    @classmethod
    def return_all_for_user(cls, user_id):
        return CarModel.query.filter(cls.owner_id == user_id).all()

    @classmethod
    def delete_all(cls):
        db.session.query(cls).delete()
        db.session.commit()

    @classmethod
    def delete_by_id(cls, id):
        car = db.session.query(cls).filter(cls.id == id).first()
        if car:
            db.session.delete(car)
            db.session.commit()
        else:
            raise NoData
Exemplo n.º 24
0
class CronBuild(db.Model):
    cron_key = db.Column(db.String(32), primary_key=True)
    cron_exp = db.Column(db.String(32))
    build_description = db.Column(db.Text)
    commands = db.Column(db.Text)
    job_id = db.Column(db.Integer, db.ForeignKey("job.id"))
    node_id = db.Column(db.Integer, db.ForeignKey("node.id"))
    created_date = db.Column(db.DateTime, default=datetime.datetime.utcnow)

    def to_dict(self):
        return {
            'cron_key': self.cron_key,
            'cron_exp': self.cron_exp,
            'build_description': self.build_description,
            'commands': self.commands,
            'job_id': self.job_id,
            'node_id': self.node_id,
            'created_date': self.created_date.strftime("%m/%d/%Y, %H:%M:%S")
        }

    def __repr__(self):
        return f"<cron_key {self.cron_key}>"
Exemplo n.º 25
0
class Employee(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    department_id = db.Column(db.Integer, db.ForeignKey("department.id"))
    name = db.Column(db.String(250))
    surname = db.Column(db.String(250))
    slug = db.Column(db.String(250))
    salary = db.Column(db.Integer)
    birth_date = db.Column(db.Date)

    def __init__(self, *args, **kwargs):
        super(Employee, self).__init__(*args, **kwargs)
        self.slug = slugify(self.name + self.surname)

    def __repr__(self):
        return f"<Employee : name: {self.name}, surname: {self.surname}, department: {self.department_id}>"
Exemplo n.º 26
0
class IpView(db.Model):

    __tablename__ = "ip_view"
    ip = db.Column("ip", db.String(20), primary_key=True)
    date_id = db.Column("date_id",
                        db.Date(),
                        db.ForeignKey(Day.id),
                        primary_key=True)

    def __init__(self, ip, date_id):
        self.ip = ip
        self.date_id = date_id

    def serialize(self):
        return {"ip": self.ip, "date_id": self.date_id}
Exemplo n.º 27
0
class Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30), unique=False, nullable=False)
    surname = db.Column(db.String(30), unique=False, nullable=False)
    address = db.Column(db.String(200), unique=False, nullable=True)
    year_of_study = db.Column(db.String(2), unique=False, nullable=True)
    adm_score = db.Column(db.Float, unique=False, nullable=False)
    # Current exam scores for all past years and semesters
    scores = db.Column(db.String(200), unique=False, nullable=True)
    # Foreign key to a StudyClass instance
    study_class_id = db.Column(db.Integer, db.ForeignKey('study_class.id'))

    # Foreign key relationship
    study_class = db.relationship('StudyClass',
                                  backref=db.backref('students', lazy=True))

    def __repr__(self):
        return f'{self.name} {self.surname} {self.address} {self.adm_score} {self.scores}'
Exemplo n.º 28
0
class Requests(db.Model):
    __tablename__ = "requests"

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(100))
    book_id = db.Column(db.Integer, db.ForeignKey("books.id"))
    created_on = db.Column(db.DateTime, server_default=db.func.now())
    updated_on = db.Column(db.DateTime,
                           server_default=db.func.now(),
                           server_onupdate=db.func.now())

    def __repr__(self):
        return "<User id={}, email={}>, book={}".format(
            self.id, self.email, self.book.id)

    @property
    def serialize(self):
        """Return object data in serializeable format"""
        return {
            "id": self.id,
            "email": self.email,
            "book_id": self.book_id,
            "timestamp": self.created_on,
        }
Exemplo n.º 29
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    author_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    text = db.Column(db.Text, nullable=False)
    uuid = db.Column(db.String(255), unique=True)
    date = db.Column(db.Date, default=datetime.date.today())
    time = db.Column(db.Time, default=datetime.datetime.now().time())

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.uuid = str(uuid.uuid4())

    def __repr__(self):
        return f"<Post: id={self.id}, author_id={self.author_id}>, text={self.text}, uuid={self.uuid}"

    def json(self):
        return {
            "id": self.id,
            "author_id": self.author_id,
            "text": self.text,
            "uuid": self.uuid,
            "date": str(self.date),
            "time": str(self.time)
        }
Exemplo n.º 30
0
class DeliveryUserModel(UserModel):
    # table name
    __tablename__ = 'delivery_users'

    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.user_id'),
                        primary_key=True)
    balance = db.Column(db.Integer, nullable=False)
    picture = db.Column(db.String(256), nullable=False)

    __mapper_args__ = {
        'polymorphic_identity': 'delivery_users',
    }

    # class constructor
    def __init__(self, data):
        """
    Class constructor
    """
        super(DeliveryUserModel, self).__init__(data)
        self.balance = data.get('balance')
        self.picture = data.get('picture')

    @staticmethod
    def get_user(user_id):
        response = DeliveryUserModel.query.get(user_id)
        if not response:
            raise NotFoundException("Invalid ID")
        return response

    @staticmethod
    def get_delivery(user_id):
        response = DeliveryUserModel.query.get(user_id)
        if not response:
            raise NotFoundException("Invalid ID")
        return response