Ejemplo n.º 1
0
class StatPost(db.Model):
    __tablename__ = 'stat_post'
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column('user_id', db.Integer(), db.ForeignKey('user.id'))
    post_id = db.Column('post_id', db.Integer(), db.ForeignKey('post.id'))
    like = db.Column(db.Boolean, default=None)
    count = db.Column(db.Integer(), default=0)
Ejemplo n.º 2
0
class RolesUsers(db.Model):
    __tablename__ = 'roles_users'
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer(),
                        db.ForeignKey('user.id', ondelete='CASCADE'))
    role_id = db.Column(db.Integer(),
                        db.ForeignKey('role.id', ondelete='CASCADE'))
Ejemplo n.º 3
0
class UserRoles(db.Model):
    """User和Role的关联表"""
    __tablename__ = "user_roles"
    id = db.Column(db.Integer(), primary_key=True)  # 必须加这一条,否则删除的时候sqlite会出错
    user_id = db.Column(db.Integer(),
                        db.ForeignKey('users.id', ondelete='CASCADE'))
    role_id = db.Column(db.Integer(),
                        db.ForeignKey('roles.id', ondelete='CASCADE'))
Ejemplo n.º 4
0
class UserRoles(db.Model):
    """
    Association table for Users and Roles
    """
    __tablename__ = 'user_roles'
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer(),
                        db.ForeignKey('users.id', ondelete='CASCADE'))
    role_id = db.Column(db.Integer(),
                        db.ForeignKey('roles.id', ondelete='CASCADE'))
Ejemplo n.º 5
0
class UserRoles(db.Model):
    __tablename__ = 'user_roles'
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer(),
                        db.ForeignKey('users.id', ondelete='CASCADE'))
    role_id = db.Column(db.Integer(),
                        db.ForeignKey('roles.id', ondelete='CASCADE'))

    def __init__(self, user_id, role_id):
        self.user_id = user_id,
        self.role_id = role_id

    def __repr__(self):
        return f"user_id[{self.user_id}] to role_id[{self.user_role}]"
class User(db.Model):
    __tablename__ = 'Users'
    Id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    Name = db.Column(db.Text(), nullable=True)
    Email = db.Column(db.Text(), nullable=False)
    DisplayName = db.Column(db.Text(), nullable=True)
    FamilyName = db.Column(db.Text(), nullable=True)
    RegistrationDate = db.Column(db.DateTime(), nullable=False)
    LastVisit = db.Column(db.DateTime(), nullable=False)

    wished_markers = db.relationship('Marker',
                                     secondary=wishlist_markers,
                                     backref='wishers')
    owned_markers = db.relationship('Marker',
                                    secondary=my_markers,
                                    backref='owners')
    cart_markers = db.relationship('Cart', backref='user')

    def to_dict(self):
        data = {
            'id': self.Id,
            'email': self.Email,
            'name': self.Name,
            'display_name': self.DisplayName,
            'family_name': self.FamilyName,
            'registration_date': self.RegistrationDate,
            'last_visit': self.LastVisit
        }
        return data
class Marker(db.Model):
    __tablename__ = 'Markers'
    Id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    Brand = db.Column(db.Text(), nullable=False)
    Series = db.Column(db.Text(), nullable=False)
    FullName = db.Column(db.Text(), nullable=False)
    ColorGroup = db.Column(db.Text(), nullable=True)
    ColorGroupFullName = db.Column(db.Text(), nullable=False)
    Hex = db.Column(db.Text(), nullable=False)
    ShortName = db.Column(db.Text(), nullable=False)

    carts = db.relationship('Cart', backref='marker')

    def __repr__(self):
        return self.Brand + self.Series + self.Hex

    def to_dict(self):
        data = {
            'id': self.Id,
            'full_name': self.FullName,
            'short_name': self.ShortName,
            'brand': self.Brand,
            'series': self.Series,
            'hex': self.Hex,
            'color_group_full_name': self.ColorGroupFullName,
            'color_group': self.ColorGroup
        }
        return data

    def by_brand_series_key(self):
        return self.Brand + self.Series
Ejemplo n.º 8
0
class Role(CRUDMixin, db.Model):
    """
    Role table: stores information about roles, which users can be tied to users
    """
    __tablename__ = 'roles'
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(50), unique=True)
Ejemplo n.º 9
0
class Data(db.Model):
    __tablename__ = "Data"
    __table_args__ = {'extend_existing': True}

    fileid = db.Column(db.Integer, db.ForeignKey('Files.fileid'))
    ticker = db.Column(db.String(80), nullable=False, primary_key=True)
    per = db.Column(db.Integer())
    date = db.Column(db.Date, nullable=False, primary_key=True)
    time = db.Column(db.Time, nullable=False, primary_key=True)
    open = db.Column(db.Float)
    high = db.Column(db.Float)
    low = db.Column(db.Float)
    close = db.Column(db.Float)
    vol = db.Column(db.Integer)

    created = db.Column(db.DateTime,
                        default=datetime.now,
                        server_default=text('now()'))
    updated = db.Column(db.DateTime,
                        default=datetime.now,
                        onupdate=datetime.now,
                        server_default=text('now()'))

    def __repr__(self):
        return f'{type(self).__name__} <{self.fileid}>: <{self.ticker}>-<{self.date}>-<{self.time}>'
Ejemplo n.º 10
0
class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(100), unique=True)
    description = db.Column(db.String(255))

    def __repr__(self):
        return self.name
Ejemplo n.º 11
0
class Role(db.Model):
    __tablename__ = 'role'
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __repr__(self):
        return self.name
Ejemplo n.º 12
0
class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(50), unique=True)

    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return self.name
Ejemplo n.º 13
0
class Token(BaseModel):
    __tablename__ = 'token'

    access_token = db.Column(db.String(), nullable=False)
    token_type = db.Column(db.String(), nullable=False)
    scope = db.Column(db.String(), nullable=False)
    expires_in = db.Column(db.Integer(), nullable=False)
    refresh_token = db.Column(db.String(), nullable=False)
    user_id = db.Column(UUIDType(binary=False),
                        db.ForeignKey('user.id'),
                        nullable=False,
                        index=True,
                        unique=True)
Ejemplo n.º 14
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer(), primary_key=True)
    email = db.Column(db.String(100), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def get_id(self):
        return self.id

    def get_urole(self):
        return self.role
class Store(db.Model):
    __tablename__ = 'Stores'
    Id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    Name = db.Column(db.Text(), nullable=False)
    Site = db.Column(db.Text(), nullable=False)
    Logo = db.Column(db.Text(), nullable=False)

    def to_dict(self):
        data = {
            'id': self.Id,
            'name': self.Name,
            'site': self.Site,
            'logo': self.Logo
        }
        return data
Ejemplo n.º 16
0
class Role(db.Model, RoleMixin):
    """
    Role Model

    Using Flask-Security's RoleMixin

    Arguments:
        id (int): Primary Role Key
        name (str): Role name for reference in admin and for restrictions
        description (str): Role description
    """
    __tablename__ = 'roles'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __repr__(self):
        if self.description is not None:
            return '{0} - {1}'.format(self.name, self.description)
        return '{0}'.format(self.name)
Ejemplo n.º 17
0
class Feature(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(64))
    description = db.Column(db.Text())
    client = db.Column(db.String(24))
    client_priority = db.Column(db.Integer())
    target_date = db.Column(db.DateTime())
    product_area = db.Column(db.String(24))

    def to_json(self):
        """Return object data in easily serializeable format"""
        return {
            'id': self.id,
            'title': self.title,
            'description': self.description,
            'client': self.client,
            'client_priority': self.client_priority,
            'target_date': dump_datetime(self.target_date),
            'product_area': self.product_area
        }

    def __repr__(self):
        return '<Feature {}>'.format(self.title)
Ejemplo n.º 18
0
class Settings(db.Model):
    __table_args__ = {"schema": settings.SQLALCHEMY_DATABASE_SCHEMA}
    __tablename__ = "settings"
    id = db.Column(db.Integer(), primary_key = True)
    max_likes_per_day = db.Column(db.Integer(), default = 600)
    max_unlikes_per_day = db.Column(db.Integer(), default = 600)
    max_follows_per_day = db.Column(db.Integer(), default = 350)
    max_unfollows_per_day = db.Column(db.Integer(), default = 200)
    max_comments_per_day = db.Column(db.Integer(), default = 100)
    max_likes_to_like = db.Column(db.Integer(), default = 2000)
    filter_users = db.Column(db.Boolean(), default = 1)
    filter_business_accounts = db.Column(db.Boolean(), default = 1)
    filter_verified_accounts = db.Column(db.Boolean(), default = 1)
    filter_users_without_profile_photo = db.Column(db.Boolean(), default = 1)
    filter_users_with_external_url = db.Column(db.Boolean(), default = 1)
    max_followers_to_follow = db.Column(db.Integer(), default = 5000)
    min_followers_to_follow = db.Column(db.Integer(), default = 10)
    max_following_to_follow = db.Column(db.Integer(), default = 2000)
    min_following_to_follow = db.Column(db.Integer(), default = 10)
    max_followers_to_following_ratio = db.Column(db.Integer(), default = 10)
    max_following_to_followers_ratio = db.Column(db.Integer(), default = 2)
    min_media_count_to_follow = db.Column(db.Integer(), default = 3)
    max_following_to_block = db.Column(db.Integer(), default = 2000)
    like_delay = db.Column(db.Integer(), default = 30)
    unlike_delay = db.Column(db.Integer(), default = 30)
    follow_delay = db.Column(db.Integer(), default = 30)
    unfollow_delay = db.Column(db.Integer(), default = 30)
    comment_delay = db.Column(db.Integer(), default = 30)

    def __repr__(self):
        from app.utils.functions import config_to_dict
        self_dict = config_to_dict(self)
        msg = [k + '=' + str(v) for k, v in self_dict.items()]
        return ','.join(msg)

    pass
Ejemplo n.º 19
0
class TagsPosts(db.Model):
    __tablename__ = 'tags_posts'
    id = db.Column(db.Integer(), primary_key=True)
    post_id = db.Column('post_id', db.Integer(), db.ForeignKey('post.id'))
    tag_id = db.Column('tag_id', db.Integer(), db.ForeignKey('tag.id'))
Ejemplo n.º 20
0
"""
Model for user
"""
from flask_security import UserMixin, RoleMixin, SQLAlchemyUserDatastore

from app.database import db

roles_users = db.Table(
    'roles_users', db.Column('user_id', db.Integer(),
                             db.ForeignKey('users.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('roles.id')))


class Role(db.Model, RoleMixin):
    """
    Role Model

    Using Flask-Security's RoleMixin

    Arguments:
        id (int): Primary Role Key
        name (str): Role name for reference in admin and for restrictions
        description (str): Role description
    """
    __tablename__ = 'roles'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __repr__(self):
Ejemplo n.º 21
0
class User(Model, SurrogatePK, UserMixin):
    """user model"""
    __tablename__ = 'users'
    username = db.Column(db.String(32), unique=True, index=True)  # username
    password_hash = db.Column(db.String(128))
    email = db.Column(db.String(128), index=True, default=None)  # Email
    phone = db.Column(db.String(32), index=True, default=None)
    sex = db.Column(db.Integer(), default=0)
    active = db.Column(db.Boolean(), default=True)
    nickname = db.Column(db.String(32), default="")  # 昵称
    avatar_hash = db.Column(db.String(32))  # 头像hash值

    create_datetime = db.Column(db.DateTime,
                                nullable=False,
                                default=dt.datetime.now)  # 创建(注册)时间

    current_login_datetime = db.Column(db.DateTime, nullable=True)  # 本次登录时间
    last_login_datetime = db.Column(db.DateTime, nullable=True)  # 上次登录时间
    last_login_ip = db.Column(db.String(32), nullable=True)  # 上次登录IP
    current_login_ip = db.Column(db.String(32), nullable=True)  # 当前登录IP

    def get_user_id(self):
        """for authlib"""
        return self.id

    roles = db.relationship('Role',
                            secondary='user_roles',
                            backref=db.backref('users', lazy='dynamic'))

    def __repr__(self):
        return '<User %r>' % self.username

    @property
    def password(self):
        return self.password_hash

    @password.setter
    def password(self, password):
        """设置密码hash"""
        # for flask-user
        # from app import user_manager
        self.password_hash = user_manager.password_manager.hash_password(
            password)

    def verify_password(self, password):
        """验证密码"""
        # from app import user_manager
        return user_manager.password_manager.\
            verify_password(password, self.password)

    def gravatar(self, size=100, default='identicon', rating='g'):
        """生成头像"""
        if request.is_secure:
            url = 'https://secure.gravatar.com/avatar'
        else:
            url = 'http://www.gravatar.com/avatar'
        hash = self.avatar_hash or hashlib.md5(
            self.username.encode('utf-8')).hexdigest()
        return '{url}/{hash}?s={size}&d={default}&r={rating}'.format(
            url=url, hash=hash, size=size, default=default, rating=rating)

    def login_info_update(self, auto_commit=True):
        import datetime as dt
        from flask import request
        self.last_login_datetime = self.current_login_datetime
        self.current_login_datetime = dt.datetime.now()
        self.last_login_ip = self.current_login_ip
        self.current_login_ip = request.remote_addr
        if auto_commit:
            db.session.add(self)
            db.session.commit()
Ejemplo n.º 22
0
from app.database import db
from model_base import BaseModel
from flask_security import UserMixin, RoleMixin

# Define models
roles_users = db.Table(
    'roles_users', db.Column('user_id', db.Integer(),
                             db.ForeignKey('user.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))

groups_users = db.Table(
    'groups_users', db.Column('user_id', db.Integer(),
                              db.ForeignKey('user.id')),
    db.Column('group_id', db.Integer(), db.ForeignKey('group.id')))


class Role(BaseModel, RoleMixin):
    __tablename__ = 'role'
    name = db.Column(db.String(255), unique=True, index=True)
    description = db.Column(db.String(255), index=True)


class User(BaseModel, UserMixin):
    __tablename__ = 'user'
    username = db.Column(db.String(255), unique=True, index=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean(), index=True)
    confirmed_at = db.Column(db.DateTime())
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())
    last_login_ip = db.Column(db.String(63))
class Cart(db.Model):
    __tablename__ = 'Carts'
    Id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    Amount = db.Column(db.Integer(), nullable=True)
    User_id = db.Column(db.Integer(), db.ForeignKey('Users.Id'))
    Marker_id = db.Column(db.Integer(), db.ForeignKey('Markers.Id'))
Ejemplo n.º 24
0
from app.database import db
from model_base import BaseModel


labels_subjects = db.Table('labels_subjects',
        db.Column('label_id', db.Integer(), db.ForeignKey('label.id')),
        db.Column('subject_id', db.Integer(), db.ForeignKey('subject.id')))

groups_heads = db.Table('groups_heads',
                         db.Column('group_id', db.Integer(), db.ForeignKey('group.id')),
                         db.Column('head_id', db.Integer(), db.ForeignKey('head.id')))

users_papers = db.Table('users_papers',
                         db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
                         db.Column('paper_id', db.Integer(), db.ForeignKey('paper.id')))


class Scene(BaseModel):
    __tablename__ = 'scene'
    describe = db.Column(db.Text, comment='场景描述')


class Label(BaseModel):
    __tablename__ = 'label'
    name = db.Column(db.String(255), comment='标签简述')
    describe = db.Column(db.Text, comment='标签描述')


class Subject(BaseModel):
    __tablename__ = 'subject'
    topic = db.Column(db.Text, comment='考题题目')
Ejemplo n.º 25
0
from flask_security import UserMixin, RoleMixin

from app.database import db


roles_users = db.Table('roles_users',
                       db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
                       db.Column('role_id', db.Integer(), db.ForeignKey('role.id'))
                       )


class User(db.Model, UserMixin):
    id = db.Column(db.Integer(), primary_key=True)
    email = db.Column(db.String(100), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def get_id(self):
        return self.id

    def get_urole(self):
        return self.role


class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(100), unique=True)
    description = db.Column(db.String(255))