на главную назад

uts

data/users.py

import datetime
import sqlalchemy
from .db_session import SqlAlchemyBase
from sqlalchemy import orm
from werkzeug.security import generate_password_hash, check_password_hash
from flask_login import UserMixin


class User(SqlAlchemyBase, UserMixin):
    __tablename__ = 'users'
    from sqlalchemy import orm

    id = sqlalchemy.Column(sqlalchemy.Integer,
                           primary_key=True, autoincrement=True)
    name = sqlalchemy.Column(sqlalchemy.String, nullable=True)
    about = sqlalchemy.Column(sqlalchemy.String, nullable=True)
    email = sqlalchemy.Column(sqlalchemy.String,
                              index=True,  nullable=True)
    hashed_password = sqlalchemy.Column(sqlalchemy.String, nullable=True)
    created_date = sqlalchemy.Column(sqlalchemy.DateTime,
                                     default=datetime.datetime.now)
    image = sqlalchemy.Column(sqlalchemy.BLOB)

    jokes_count = sqlalchemy.Column(sqlalchemy.Integer, default=0)
    music_count = sqlalchemy.Column(sqlalchemy.Integer, default=0)
    servers_count = sqlalchemy.Column(sqlalchemy.Integer, default=0)

    can_joke = sqlalchemy.Column(sqlalchemy.Boolean, default=True)
    can_server = sqlalchemy.Column(sqlalchemy.Boolean, default=True)
    can_music = sqlalchemy.Column(sqlalchemy.Boolean, default=True)

    telegram_ = sqlalchemy.Column(sqlalchemy.String, default='')
    git_ = sqlalchemy.Column(sqlalchemy.String, default='')
    social_ = sqlalchemy.Column(sqlalchemy.String, default='')

    #snake_max = sqlalchemy.Column(sqlalchemy.Integer, default=0)

    admin = sqlalchemy.Column(sqlalchemy.Boolean, default=False)




    #def __repr__(self):
    #    return f"<Colonist> {self.id} {self.surname} {self.name}"

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

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