示例#1
0
class User(UserMixin, db.Model):
    __table_args__ = (db.UniqueConstraint('login',
                                          name='unique_login_cnstr'), )
    id = db.Column(db.Integer, primary_key=True)
    login = db.Column(db.String(150))
    password = db.Column(db.String(150))

    def __repr__(self):
        return self.login

    def set_password(self, password: str):
        self.password = generate_password_hash(password)
示例#2
0
class UserDepartmentRole(db.Model):
    """
    UserDepartmentRole model
    """
    __tablename__ = "user_department_role"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    department_id = db.Column(db.Integer,
                              db.ForeignKey("department.id"),
                              nullable=False)
    role_id = db.Column(db.Integer, db.ForeignKey("role.id"), nullable=False)

    __table_args__ = (db.UniqueConstraint(user_id, department_id, role_id), )

    def __init__(self, user, department, role):
        self.user_id = user.id
        self.department_id = department.id
        self.role_id = role.id
示例#3
0
class Prereq(db.Model):
    """
    This class defines the course table
    """

    __tablename__ = "prereq"

    cid = db.Column(db.Integer, db.ForeignKey("course.cid"), primary_key=True)
    req_id = db.Column(db.Integer, primary_key=True)
    req_group = db.Column(db.Integer, nullable=False)

    __table_args__ = (db.UniqueConstraint("cid",
                                          "req_id",
                                          "req_group",
                                          name="unique_prereq"), )

    def __init__(self, cid, req_id, req_group):
        self.cid = cid
        self.req_id = req_id
        self.req_group = req_group

    def save(self):
        """
        Save course to database
        :return:
        """
        db.session.add(self)
        db.session.commit()

    def update(self, cid, req_id, req_group):
        self.cid = cid
        self.req_id = req_id
        self.req_group = req_group
        self.save()

    def delete(self):
        """
        Delete a course from db
        :return:
        """
        db.session.delete(self)
        db.session.commit()
class SmartMeter(db.Model, SmartMeterService):
    __tablename__ = 'smart_meters'
    __table_args__ = (db.UniqueConstraint('meter_name',
                                          'home_id',
                                          name='unique_smart_meter'), )

    id = db.Column(db.Integer, primary_key=True)
    meter_name = db.Column(db.String(50), nullable=False)
    uuid = db.Column(db.String(36), unique=True, index=True)
    home_id = db.Column(db.Integer, db.ForeignKey('homes.id'), nullable=False)
    meta_data = db.relationship('ApplianceMetaData',
                                backref='smart_meters',
                                lazy='subquery',
                                cascade="all, delete-orphan")

    def __init__(self, meter_name):
        self.meter_name = meter_name
        self.uuid = str(uuid.uuid4())

    def __repr__(self):
        return f'SmartMeter({self.meter_name}, {self.uuid}, {self.home_id})'
示例#5
0
文件: models.py 项目: adunn308/stores
class Store(db.Model):
    __tablename__ = "stores"
    id = db.Column(db.Integer, primary_key=True, nullable=False)
    name = db.Column(db.Text(), nullable=False)
    postcode = db.Column(db.Text(), nullable=False)
    longitude = db.Column(db.Float)
    latitude = db.Column(db.Float)
    geo = db.Column(Geometry(geometry_type="POINT"))

    __table_args__ = (db.UniqueConstraint('name',
                                          'postcode',
                                          name='_name_postcode_uc'), )

    def __repr__(self):
        return "<City {name} ({lat}, {lon})>".format(name=self.name,
                                                     lat=self.latitude,
                                                     lon=self.longitude)

    def update_geometry(self):
        point = 'POINT({} {})'.format(self.longitude, self.latitude)
        self.geo = point
class Home(db.Model, HomeService):
    __tablename__ = 'homes'
    __table_args__ = (db.UniqueConstraint('home_name',
                                          'user_id',
                                          name='unique_component_commit'), )

    id = db.Column(db.Integer, primary_key=True)
    home_name = db.Column(db.String(50), nullable=False)
    address = db.Column(db.String(50), nullable=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    uuid = db.Column(db.String(36), unique=True, index=True)
    smart_meters = db.relationship('SmartMeter',
                                   backref='homes',
                                   lazy='select',
                                   cascade="all, delete-orphan")

    def __init__(self, home_name, address=None):
        self.uuid = str(uuid.uuid4())
        self.home_name = home_name
        self.address = address

    def __repr__(self):
        return f'Home({self.home_name}, {self.address}, {self.uuid}, {self.user_id})'
示例#7
0
 def __table_args__(self):
     return (db.UniqueConstraint("cid",
                                 "user_id",
                                 name=f"unique_{self.__name__.lower()}"), )