Exemplo n.º 1
0
class Role(db.Model):
    '''
    权限
    '''
    __tablename__ = 'db_role'
    id = db.Column(db.Integer,
                   nullable=False,
                   primary_key=True,
                   index=True,
                   autoincrement=True)
    role_id = db.Column(db.String(36), index=True, nullable=False, unique=True)
    name = db.Column(db.String(64), nullable=False, unique=True)
    mark = db.Column(db.String(64), nullable=False, unique=True)
    is_disabled = db.Column(db.Boolean, index=True, default=False)
    role_list = db.Column(db.Text)
    admins = db.relationship('Admin', backref='role')
    __table_args__ = {'useexisting': True, 'mysql_engine': 'InnoDB'}

    def to_json(self):
        dict = self.__dict__
        if "_sa_instance_state" in dict:
            del dict["_sa_instance_state"]
        if "role_list" in dict:
            del dict["role_list"]
        return dict

    def __repr__(self):
        return '<Role %r>' % self.name
Exemplo n.º 2
0
class Folder(db.Model):
    '''
    文件夹
    '''
    __tablename__ = 'db_folder'
    id = db.Column(db.Integer, nullable=False, primary_key=True, index=True, autoincrement=True)
    folder_id = db.Column(db.String(36), index=True, nullable=False, unique=True)
    admin_id = db.Column(db.String(36), index=True, default=None)
    pid = db.Column(db.String(36), nullable=False, index=True, default='0')
    name = db.Column(db.String(36), index=True, nullable=False)
    is_sys = db.Column(db.Boolean, index=True, default=True)  # True = 系统文件夹
    create_time = db.Column(db.DateTime, index=True, default=datetime.datetime.now)
    documents = db.relationship('Document', backref='folder')
    __table_args__ = (table_args())

    def to_json(self):
        dict = self.__dict__
        if "_sa_instance_state" in dict:
            del dict["_sa_instance_state"]
        if "create_time" in dict:
            dict["create_time"] = dict["create_time"].strftime('%Y-%m-%d %H:%M:%S')
        return dict

    def __repr__(self):
        return '<Folder %r>' % self.name
Exemplo n.º 3
0
class Transactions(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    payment_method_id = db.Column(db.Integer,
                                  db.ForeignKey('payment_method.id',
                                                ondelete='CASCADE'),
                                  nullable=False,
                                  default=1)
    shipment_method_id = db.Column(db.Integer,
                                   db.ForeignKey('shipment_method.id',
                                                 ondelete='CASCADE'),
                                   nullable=False,
                                   default=1)
    insurance_method_id = db.Column(db.Integer,
                                    db.ForeignKey('insurance_method.id',
                                                  ondelete='CASCADE'),
                                    nullable=False,
                                    default=1)
    shipment_price = db.Column(db.Float, default=100)
    insurance_price = db.Column(db.Float, default=0)
    total = db.Column(db.Float)
    payment_status = db.Column(db.Integer, nullable=True)
    receiver_name = db.Column(db.String(50))
    receiver_phone = db.Column(db.String(14))
    receiver_address = db.Column(db.String(500))
    created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
    updated_at = db.Column(db.DateTime, default=db.func.current_timestamp())

    def __repr__(self):
        return "<Transactions %r>" % self.id
Exemplo n.º 4
0
class Generation(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(256), index=True)
    model_id = db.Column(db.Integer, db.ForeignKey('model.id'))
    year_begin = db.Column(db.String(128), index=True)
    year_end = db.Column(db.String(128), index=True)
    series = db.relationship('Series', backref='generation', lazy='dynamic')
Exemplo n.º 5
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    caption = db.Column(db.String(80), nullable=False)
    foto = db.Column(db.String(120), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    users = db.relationship('User', backref='user')
    userlikes = db.relationship('User',
                                secondary=likes,
                                backref=db.backref('likes', lazy='dynamic'))
    # UserComment = db.relationship('User', secondary=Comments,
    #     backref=db.backref('Comment', lazy='dynamic'))
    UserComment = db.relationship('Comment')
    created_date = db.Column(db.DateTime, default=datetime.now, nullable=True)

    def __repr__(self):
        return '<Post %r %r>' % (self.id, self.caption)

    def data(self, a):

        return {
            "id": self.id,
            "caption": self.caption,
            "foto": self.foto,
            "users": self.users.username,
            "totallike": len(self.userlikes),
            "userlikes": checkdata(a, self.userlikes)
        }
Exemplo n.º 6
0
class CardModel(db.Model):
    __tablename__ = 'card'

    card_number = db.Column(db.String(17), primary_key=True)
    amount = db.Column(db.Float, nullable=False)
    active_to = db.Column(db.DATE, nullable=False)
    cvv = db.Column(db.SmallInteger, nullable=False)
    created_at = db.Column(db.TIMESTAMP,
                           server_default=db.func.current_timestamp())

    owner_id = db.Column(db.Integer,
                         db.ForeignKey('user.user_id',
                                       onupdate='cascade',
                                       ondelete='restrict'),
                         nullable=False)
    account_number = db.Column(db.String(34),
                               db.ForeignKey('account.account_number',
                                             onupdate='cascade',
                                             ondelete='restrict'),
                               nullable=False)

    owner = db.relationship('UserModel', foreign_keys=owner_id)
    account = db.relationship('AccountModel', foreign_keys=account_number)

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Exemplo n.º 7
0
class User(db.Model):
    __tablename__ = 'users'
    no = db.Column(db.Integer, primary_key=True, autoincrement=True)
    id = db.Column(db.String(30), nullable=False, unique=True)
    pw = db.Column(db.String(64), nullable=False)
    name = db.Column(db.String(20), nullable=False)
    passthru = db.Column(db.Boolean, nullable=False, default=True)

    def check_password(self, pw):
        h = hashlib.sha256()
        h.update(pw.encode('utf-8'))

        return (self.pw == h.hexdigest())

    def is_authenticated(self):
        return True

    def is_active(self):
        return True

    def is_anonymous(self):
        return False

    def get_id(self):
        return self.no
Exemplo n.º 8
0
class Product(BaseModel):
    __tablename__ = "products"

    id = db.Column(db.Integer,
                   nullable=False,
                   primary_key=True,
                   autoincrement=True)
    company = db.Column(db.String(50), nullable=True)
    category = db.Column(db.String(50), nullable=True)
    subcategory = db.Column(db.String(50), nullable=True)
    product_name = db.Column(db.String(255), nullable=False)
    price = db.Column(db.String(50), nullable=True)
    image_link = db.Column(db.String(255), nullable=True)
    product_url = db.Column(db.String(255), nullable=True)
    description = db.Column(db.Text, nullable=True)
    name = db.Column(db.String(50), nullable=True)
    email = db.Column(db.String(50), nullable=True)
    phone_number = db.Column(db.String(50), nullable=True)

    def __init__(self, company, category, subcategory, product_name, price,
                 image_link, product_url, description):
        self.company = company
        self.category = category
        self.subcategory = subcategory
        self.product_name = product_name
        self.price = price
        self.image_link = image_link
        self.product_url = product_url
        self.description = description

    def set_owner(self, name, email, phone_number):
        self.name = name
        self.email = email
        self.phone_number = phone_number
Exemplo n.º 9
0
class Update_change(Node_Base):
    __tablename__ = 'update_change'
    id = Column(db.Integer,primary_key=True, autoincrement=True)
    update_id=Column(db.String(255), db.ForeignKey('updates.update_id'))
    change_id= Column(db.String(255), db.ForeignKey('changes.change_id'))
    def __repr__(self):
        return "<Update_change(update_id='%s',change_id='%s')>" %(self.update_id,self.change_id) 
Exemplo n.º 10
0
class LoginLock(db.Model):
    '''
    登录锁定
    '''
    __tablename__ = 'db_login_lock'
    id = db.Column(db.Integer,
                   nullable=False,
                   primary_key=True,
                   index=True,
                   autoincrement=True)
    lock_id = db.Column(db.String(36), index=True, nullable=False, unique=True)
    user_id = db.Column(db.String(36), index=True, nullable=False)
    flag = db.Column(db.Boolean, index=True, default=False)  # 是否锁定
    number = db.Column(db.Integer, primary_key=True, default=0)
    ip = db.Column(db.String(36), index=True)
    lock_time = db.Column(db.DateTime)
    __table_args__ = {'useexisting': True, 'mysql_engine': 'InnoDB'}

    def to_json(self):
        dict = self.__dict__
        if "_sa_instance_state" in dict:
            del dict["_sa_instance_state"]
        if "lock_time" in dict:
            dict["lock_time"] = dict["lock_time"].strftime('%Y-%m-%d %H:%M:%S')
        return dict

    def __repr__(self):
        return '<LoginLock %r>' % self.lock_id
Exemplo n.º 11
0
class Log(db.Model):
    '''
    日志
    '''
    __tablename__ = 'db_log'
    id = db.Column(db.Integer, nullable=False, primary_key=True, index=True, autoincrement=True)
    username = db.Column(db.String(64), index=True, nullable=False)
    content = db.Column(db.Text) # 错误内容
    path = db.Column(db.Text, nullable=False)
    method = db.Column(db.String(36), nullable=False)
    params = db.Column(db.Text) # 请求参数
    ip = db.Column(db.String(255))
    time = db.Column(db.Integer, nullable=False)
    status = db.Column(db.SmallInteger, nullable=False, index=True, default=1) # 0 成功 1 失败 2 禁用
    type = db.Column(db.SmallInteger, nullable=False, index=True, default=1) # 0 其他 1 登录
    create_time = db.Column(db.DateTime, index=True, default=datetime.datetime.now)
    __table_args__ = {
        'useexisting': True,
        'mysql_engine': 'InnoDB'
    }

    def to_json(self):
        dict = self.__dict__
        if "_sa_instance_state" in dict:
            del dict["_sa_instance_state"]
        if "create_time" in dict:
            dict["create_time"] = dict["create_time"].strftime('%Y-%m-%d %H:%M:%S')
        return dict

    def __repr__(self):
        return '<Log %r>' % self.id
class AdminModel(db.Model):

    __tablename__ = 'admin'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), nullable=False)
    password = db.Column(db.String(20), nullable=False)
    priviledges = db.Column(db.String(3), nullable=False)
    fcmtoken = db.Column(db.String(300), nullable=False)

    def json(self):
        return {
            'id': self.id,
            'username': self.username,
            'priviledges': self.priviledges
        }

    @classmethod
    def find_by_username(cls, email):
        return cls.query.filter_by(username=email).first()

    def save_to_db(self):

        db.session.add(self)
        db.session.commit()
Exemplo n.º 13
0
class User(db.Model):

    __tablename__ = 'user'

    id = db.Column(db.String, primary_key=True)
    name = db.Column(db.String(120))
    email = db.Column(db.String(120))
    phone_number = db.Column(db.String(120))

    def __init__(self, name, email, phone_number):
        self.id = str(uuid.uuid4())
        self.name = name
        self.email = email
        self.phone_number = phone_number

    @staticmethod
    def create_user(user):
        db.session.add(user)
        db.session.commit()

    @staticmethod
    def get_user_by_email(email):
        user = User.query.filter_by(email=email).first()
        user_dict = user.__dict__
        user_dict.pop('_sa_instance_state')
        return user_dict
Exemplo n.º 14
0
class Read(Resource, db.Model):
    def __init__(self, user_id) -> None:
        super().__init__()
        self.user_id = user_id

    __tablename__ = 'user_keys_read'

    user_id = db.Column(db.Integer, db.ForeignKey('{}.id'.format(User.__tablename__)), nullable=False)

    username = db.Column(db.String(100), nullable=False, unique=False)
    value = db.Column(db.String(64), nullable=False, unique=True)

    @classmethod
    def findByUserEmail(cls, email):
        return cls.query.join(User).filter(User.email == email).order_by(desc(Read.createdAt)).all()

    @classmethod
    def getByUsername(cls, username):
        return cls.query.filter(Read.username == username).first()

    @classmethod
    def generateKey(cls):
        length = 8
        key = ''
        for i in range(length): key += (str(chr(random.randint(97, 122))))
        return key.upper()

    @classmethod
    def deleteById(cls, id):
        return cls.query.filter_by(id=id).delete()
Exemplo n.º 15
0
class Action(db.Model):
	__tablename__ = 'actions'
	id = db.Column(db.Integer, primary_key=True, autoincrement=True)
	name = db.Column(db.String())
	cost = db.Column(db.Boolean)
	turn = db.Column(db.Boolean)
	description = db.Column(db.String())
	all = db.Column(db.Boolean)
	current = db.Column(db.Boolean)
	any = db.Column(db.Boolean)
	var = db.Column(db.Boolean)
	none = db.Column(db.Boolean)
	hide = db.Column(db.Boolean)

	def format(self):
		return {
			'id': self.id,
			'name': self.name,
			'cost': self.cost,
			'turn': self.turn,
			'description': self.description,
			'all': self.all,
			'current': self.current,
			'any': self.any,
			'var': self.var,
			'none': self.none,
			'hide': self.hide
		}
Exemplo n.º 16
0
class File(db.Model, Deletable):
    __tablename__ = "files"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    uploaded_name = db.Column(db.String(255), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    folder_id = db.Column(db.Integer,
                          db.ForeignKey("folders.id"),
                          nullable=False)

    user = db.relationship("User", foreign_keys=user_id)
    folder = db.relationship(
        "Folder",
        foreign_keys=folder_id,
        uselist=False,
        lazy="select",
        back_populates="files",
    )

    def __init__(self, user_id, name: str, folder_id: int) -> None:
        extension = name.split(".")[-1]

        self.user_id = user_id
        self.name = name
        self.uploaded_name = (str(user_id) + "-" + str(uuid4().hex) + "." +
                              extension)
        self.folder_id = folder_id

    def serialize(self) -> dict:
        return {"id": self.id, "name": self.name}
Exemplo n.º 17
0
class SkillTable(db.Model):
	__tablename__ = 'skill_tables'
	id = db.Column(db.Integer, primary_key=True, autoincrement=True)
	skill_id = db.Column(db.Integer, db.ForeignKey('skills.id'))
	dc = db.Column(db.Integer)
	description = db.Column(db.String())
	check_id = db.Column(db.Integer, db.ForeignKey('checks.id'))
	modifier_id = db.Column(db.Integer, db.ForeignKey('modifiers.id'))
	degree = db.Column(db.Boolean)
	measurement  = db.Column(db.Integer)
	complexity = db.Column(db.String())
	modifier = db.Column(db.Boolean)
	circumstance = db.Column(db.Boolean)
	requires_sub = db.Column(db.Boolean)


	def format(self):
		return {
			'id': self.id,
			'skill_id': self.skill_id,
			'dc': self.dc,
			'description': self.description,
			'check_id': self.check_id,
			'modifier_id': self.modifier_id,
			'degree': self.degree,
			'measurement': self.measurement,
			'complexity': self.complexity,
			'modifier': self.modifier,
			'circumstance': self.circumstance,
			'requires_sub': self.requires_sub
		}
Exemplo n.º 18
0
class Session(db.Model):
    uuid = db.Column(db.String(36), primary_key=True)
    user_uuid = db.Column(db.String(36))

    def __init__(self, uuid, user_uuid=None):
        self.uuid = uuid
        self.user_uuid = user_uuid
Exemplo n.º 19
0
class EquipOpposed(db.Model):
    __tablename__ = 'equipment_opposed'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    equip_id = db.Column(db.Integer, db.ForeignKey('equipment.id'))
    effect = db.Column(db.Integer, db.ForeignKey('equipment_effect.id'))
    feature = db.Column(db.Integer, db.ForeignKey('features.id'))
    dc = db.Column(db.Integer)
    skill_type = db.Column(db.Integer, db.ForeignKey('skills.id'))
    skill = db.Column(db.Integer, db.ForeignKey('skill_bonus.id'))
    check = db.Column(db.Integer, db.ForeignKey('checks.id'))
    when = db.Column(db.String())
    condition1 = db.Column(db.String())
    condition2 = db.Column(db.String())

    def format(self):
        return {
            'id': self.id,
            'equip_id': self.equip_id,
            'effect': self.effect,
            'feature': self.feature,
            'dc': self.dc,
            'skill_type': self.skill_type,
            'skill': self.skill,
            'check': self.check,
            'when': self.when,
            'condition1': self.condition1,
            'condition2': self.condition2
        }
Exemplo n.º 20
0
class BurstBlockMixin(object):
    """
        平台爆块记录
    """
    __table_args__ = {'extend_existing': True}
    id = db.Column(db.Integer, primary_key=True)
    account_key = db.Column(db.String(255), index=True)
    plotter_id = db.Column(db.String(255))
    block_hash = db.Column(db.String(256), default='')
    nonce = db.Column(db.String(256), default='')
    height = db.Column(db.INTEGER)

    burst_block_time = db.Column(db.BIGINT)
    create_time = db.Column(db.TIMESTAMP(), default=datetime.now)

    def to_dict(self):
        burst_dict = {
            "account_key": self.account_key,
            "plotter_id": self.plotter_id,
            "block_hash": self.block_hash,
            "nonce": self.nonce,
            "height": self.height,
            "deadline": self.deadline,
            "create_time": str(self.create_time),
            "burst_block_time": self.burst_block_time,
        }

        return burst_dict
Exemplo n.º 21
0
class AssetTransfer(db.Model):
    __tablename__ = 'pool_asset_transfer'
    __table_args__ = {'extend_existing': True}
    id = db.Column(db.Integer, primary_key=True)
    account_key = db.Column(db.String(64), index=True)
    amount = db.Column(db.DECIMAL(32, 16))
    direction = db.Column(db.BOOLEAN, comment="True:抵押到余额,False:余额到抵押")
    create_time = db.Column(db.TIMESTAMP(), default=datetime.now)
    coin_name = db.Column(db.String(32), default='0')

    def __init__(self, account_key, amount, direction, coin_name):
        self.account_key = account_key
        self.amount = amount
        self.direction = direction
        self.coin_name = coin_name

    def to_dict(self):
        transfer_dict = {
            "account_key": self.account_key,
            "amount": self.amount,
            "coin_name": self.coin_name,
            "direction": self.direction,
            "create_time": str(self.create_time),
        }

        return transfer_dict
Exemplo n.º 22
0
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, index=True)
    # password = db.Column(db.String(64))
    password_hash = db.Column(db.String(128))

    @property
    def password(self):
        raise AttributeError('密码不能读取!')

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)

    @staticmethod
    def init_db():
        db.drop_all()
        db.create_all()

    @staticmethod
    def init_datas():
        user_a = User(username='******', password="******")
        user_b = User(username='******', password="******")
        user_c = User(username='******', password="******")
        db.session.add_all([user_a, user_b, user_c])
        db.session.commit()
Exemplo n.º 23
0
class Product(db.Model, Base, EntityBase):
    __tablename__ = 'product'
    id = db.Column(guid(), primary_key=True)

    # Relationships with Category
    category_id = db.Column(guid(),
                            db.ForeignKey('category.id',
                                          name='fk_product_id_category',
                                          onupdate='CASCADE',
                                          ondelete='CASCADE'),
                            index=True)
    category = db.relationship('Category')

    name = db.Column(db.String(255), nullable=False)
    photo = db.Column(db.String(255))
    code = db.Column(db.String(255), nullable=False)
    price = db.Column(db.Numeric(10, 2), nullable=False)
    quantity = db.Column(db.Integer, nullable=False, default=0)
    description = db.Column(db.Text)

    @property
    def entity_type(self):
        return EntityBase.TYPE_PRODUCT

    @property
    def resource_type(self):
        from models.acl import AclResource
        return AclResource.PRODUCT
Exemplo n.º 24
0
class DeadlineFractionMixin(object):
    __table_args__ = {'extend_existing': True}
    id = db.Column(db.Integer, primary_key=True)
    account_key = db.Column(db.String(64), index=True)
    plotter_id = db.Column(db.String(64), index=True)
    miner_name = db.Column(db.String(64), index=True)
    fraction = db.Column(db.DECIMAL(32, 16))
    capacity = db.Column(db.DECIMAL(32, 16))
    height = db.Column(db.INTEGER)
    create_time = db.Column(db.TIMESTAMP(), default=datetime.now)
    deadline = db.Column(db.BigInteger)

    def to_dict(self):
        dl_fraction_dict = {
            "account_key": self.account_key,
            "plotter_id": self.plotter_id,
            "miner_name": self.miner_name,
            "fraction": self.fraction,
            "capacity": self.capacity,
            "height": self.height,
            "create_time": str(self.create_time),
            "deadline": self.deadline,
        }

        return dl_fraction_dict
Exemplo n.º 25
0
class Role(db.Model):
    '''
    鉴权
    '''
    __tablename__ = 'db_role'
    id = db.Column(db.Integer, nullable=False, primary_key=True, index=True, autoincrement=True)
    role_id = db.Column(db.String(36), index=True, nullable=False, unique=True)
    name = db.Column(db.String(64), nullable=False, unique=True)
    mark = db.Column(db.String(64), nullable=False, unique=True)
    disable = db.Column(db.Boolean, index=True, default=False)
    admins = db.relationship('Admin', backref='role')
    interfaces = db.relationship('Interface',
                                 secondary=InterfaceToRole,
                                 backref=db.backref('roles', lazy='dynamic'),
                                 lazy='dynamic')
    menus = db.relationship('Menu',
                            secondary=MenuToRole,
                            backref=db.backref('roles', lazy='dynamic'),
                            lazy='dynamic')
    __table_args__ = (table_args())

    def to_json(self):
        dict = self.__dict__
        if "_sa_instance_state" in dict:
            del dict["_sa_instance_state"]
        if "role_list" in dict:
            del dict["role_list"]
        return dict

    def __repr__(self):
        return '<Role %r>' % self.name
Exemplo n.º 26
0
class TransactionModel(db.Model):
    __tablename__ = 'transaction'

    transaction_id = db.Column(db.BigInteger,
                               primary_key=True,
                               autoincrement=True)
    amount = db.Column(db.Float, nullable=False)
    created_at = db.Column(db.TIMESTAMP,
                           server_default=db.func.current_timestamp())

    author_account = db.Column(db.String(34),
                               db.ForeignKey('account.account_number',
                                             onupdate='cascade',
                                             ondelete='restrict'),
                               nullable=False)
    receiver_account = db.Column(db.String(34),
                                 db.ForeignKey('account.account_number',
                                               onupdate='cascade',
                                               ondelete='restrict'),
                                 nullable=False)

    author = db.relationship('AccountModel', foreign_keys=author_account)
    receiver = db.relationship('AccountModel', foreign_keys=receiver_account)

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Exemplo n.º 27
0
class Site(db.Model):
    __tablename__ = "site"
    key = db.Column(db.String(64), primary_key=True)
    value = db.Column(db.String(64))

    def __repr__(self):
        return '<Site %s>' % self.key
Exemplo n.º 28
0
class Department(db.Model):
    """ Departments table. """

    __tablename__ = 'departments'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), unique=True, nullable=False)
    avg_salary = db.Column(db.Float, nullable=False, default=0.0)
    count_employees = db.Column(db.Integer, nullable=False, default=0)
    email = db.Column(db.String(64))

    def __init__(self, name: str, email: str = None):
        self.name = name.strip()
        self.email = email.strip()
        self.avg_salary = 0.0
        self.count_employees = 0
        logger.debug(
            'Created Department instance. Department name is %s, '
            'email = %s, average salary = %f, employees = %i', self.name,
            self.email, self.avg_salary, self.count_employees)

    # def __eq__(self, other):
    #     if not isinstance(other, Department):
    #         return NotImplemented
    #     return self.id == other.id\
    #            and self.name == other.name \
    #            and self.avg_salary == other.avg_salary \
    #            and self.count_employees == other.count_employees \
    #            and self.email == other.email

    def __repr__(self):
        return f'<Department {self.name}, {self.email}'
Exemplo n.º 29
0
class User(BaseModel):
    name = db.Column(db.String(64), index=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password_hash = db.Column(db.String(128))

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    def update(self, **kwargs):
        name = kwargs.get('name', self.name)
        email = kwargs.get('email', self.email)
        password = kwargs.get('password')

        self.name = name
        self.email = email

        if password:
            self.set_password(password)

    @property
    def serialize(self):
        return dict(
            id=self.id,
            name=self.name,
            email=self.email
        )

    def __repr__(self):
        return '<User %r>' % self.name
Exemplo n.º 30
0
class VehicleModel(db.Model):
    id: int = db.Column(db.Integer, primary_key=True)
    client_id = db.Column(db.Integer, db.ForeignKey('client.id'))
    brand: str = db.Column(db.String(30), nullable=False)
    model: str = db.Column(db.String(30), nullable=False)
    board: str = db.Column(db.String(30), nullable=False, unique=True)
    year: str = db.Column(db.String(30), nullable=False)

    @staticmethod
    def list_all():
        return VehicleModel.query.order_by(VehicleModel.id).all()

    @staticmethod
    def get_by_client(client_id):
        return VehicleModel.query.filter_by(client_id=client_id).all()

    @staticmethod
    def get_by_board(board):
        return VehicleModel.query.filter_by(board=board).first()

    @staticmethod
    def get_by_id(id):
        return VehicleModel.query.filter_by(id=id).first()

    def save(self):
        db.session.merge(self)
        db.session.commit()