コード例 #1
0
class Pin(SurrogatePK, Model):
    """A pin in the map, a reference address to be used when calculating distances."""

    __tablename__ = 'pin'

    name = Column(db.String())
    address = Column(db.String())

    def __repr__(self):
        """Represent the object as a unique string."""
        return '<Pin({}, {})>'.format(self.name, self.address)
コード例 #2
0
class Apartment(SurrogatePK, Model):
    """A home (apartment, flat, etc.)."""

    __tablename__ = 'apartment'

    url = Column(db.String(), unique=True, nullable=False)
    active = Column(db.Boolean, default=True, nullable=False)
    title = Column(db.String())
    address = Column(db.String())
    neighborhood = Column(db.String())
    rooms = Column(db.Numeric(3, 1))
    size = Column(db.Numeric(7, 2))

    # Prices
    cold_rent_price = Column(db.Numeric(10, 2))
    warm_rent_price = Column(db.Numeric(10, 2))
    additional_price = Column(db.Numeric(10, 2))
    heating_price = Column(db.Numeric(10, 2))

    opinion_id = reference_column('opinion', True)
    opinion = relationship('Opinion')

    description = Column(db.String())
    equipment = Column(db.String())
    location = Column(db.String())
    other = Column(db.String())
    availability = Column(db.Date)
    comments = Column(db.String())

    json = db.Column(postgresql.JSONB(none_as_null=True), nullable=False)
    errors = db.Column(postgresql.JSONB(none_as_null=True))

    created_at = Column(db.DateTime, default=func.now())
    updated_at = Column(db.DateTime, onupdate=func.now(), default=func.now())

    distances = relationship('Distance')

    def __repr__(self):
        """Represent the object as a unique string."""
        return '<Apartment({}: {} {})>'.format(
            self.id, self.url, self.opinion.title if self.opinion else '')

    @classmethod
    def get_or_create(cls, url: str):
        """Get an apartment by its URL (which should be unique).

        :return: An existing apartment or a new empty instance.
        :rtype: Apartment
        """
        return cls.query.filter_by(url=url).first() or Apartment()
コード例 #3
0
class Opinion(SurrogatePK, Model):
    """An opinion about an apartment."""

    __tablename__ = 'opinion'

    title = Column(db.String())