class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username
示例#2
0
class Application(db.Model):
    name = db.Column(db.String(120), unique=True, nullable=False, primary_key=True)
    fields = db.Column(db.String(255), unique=False, nullable=True, default='[]', server_default='[]')
    s3_buckets = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<Application %r>' % self.name
示例#3
0
class User(db.Model):
    """
    User model used for storing name and email of the user
    """

    id = db.Column(db.Text(length=36),
                   default=lambda: str(uuid.uuid4()),
                   primary_key=True)

    email = db.Column(db.String(120), index=True)
    name = db.Column(db.String(255))
    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    updated_at = db.Column(db.DateTime, default=datetime.utcnow)

    __tablename__ = 'user'

    def __repr__(self):
        return 'User {}'.format(self.name)

    def to_dict(self):
        """

        """
        data = {
            'id': self.id,
            'email': self.email,
            'name': self.name,
            'created_at': self.created_at.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
            'updated_at': self.updated_at.strftime('%Y-%m-%dT%H:%M:%S.%fZ')
        }
        return data
示例#4
0
class Messages(db.Model):
    __tablename__ = 'tr_messages'
    id = db.Column(db.Integer, primary_key=True)
    event_id = db.Column(db.Integer)
    email_subject = db.Column(db.String(200))
    email_content = db.Column(db.String(500))
    timestamp = db.Column(db.DateTime())
示例#5
0
class QuestionModel(db.Model):
    __tablename__ = 'wufazhuce_question'

    question_id = db.Column(INTEGER, primary_key=True)
    question_title = db.Column(TEXT)
    question_text = db.Column(TEXT)
    question_body = db.Column(TEXT)
示例#6
0
class GroupMember(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    group_id = db.Column(db.Integer, db.ForeignKey('group.id'), nullable=False)
    member_email = db.Column(db.String(120), index=True, nullable=False)

    def __repr__(self):
        return '<GroupMember {}, {}>'.format(self.group_id, self.member_email)

    @staticmethod
    def signup_status(member_email):
        user = User.query.filter_by(email=member_email).first()
        if user:
            return True
        else:
            return False

    @staticmethod
    def group_signup_status(group_id, member_email):
        user = User.query.filter_by(email=member_email).first()
        if user:
            preferences = user.user_preferences.filter_by(
                group_id=group_id).first()
            if preferences:
                return True
        return False
示例#7
0
class Site(db.Model):
    __tablename__ = 'site'
    site_id = db.Column(db.String, primary_key=True)
    primary = db.Column(db.Boolean, nullable=False, default=False)

    # only needs to be set if primary=True
    base_url = db.Column(db.String, nullable=True, unique=True)

    tenant_base_url_template = db.Column(db.String, nullable=True, unique=True)
    site_admin_tenant_id = db.Column(db.String, nullable=False)
    services = db.Column(ARRAY(db.String), unique=False, nullable=False)

    create_time = db.Column(db.DateTime, nullable=False)
    last_update_time = db.Column(db.DateTime, default=datetime.datetime.utcnow, nullable=False)
    created_by = db.Column(db.String(120), unique=False, nullable=False)
    last_updated_by = db.Column(db.String(120), unique=False, nullable=False)

    def __repr__(self):
        return f'{self.site_id}'

    @property
    def serialize(self):
        return {
            "site_id": self.site_id,
            "primary": self.primary,
            "base_url": self.base_url,
            "tenant_base_url_template": self.tenant_base_url_template,
            "site_admin_tenant_id": self.site_admin_tenant_id,
            "services": self.services,
            "create_time": str(self.create_time),
            "created_by": self.created_by,
            "last_update_time": str(self.last_update_time),
            "last_updated_by": self.last_updated_by
        }
示例#8
0
class Books(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    subject_id = db.Column(db.Integer,
                           db.ForeignKey('subject.id'),
                           nullable=False)
    name = db.Column(db.String, unique=True, nullable=False)
    file = db.Column(db.Binary, nullable=False)
示例#9
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True, nullable=False)

    def to_dict(self):
        d = {'id': self.id, 'name': self.name}
        return d
示例#10
0
class Schedule(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    subject_id = db.Column(db.Integer,
                           db.ForeignKey('subject.id'),
                           nullable=False)
    starts = db.Column(db.DateTime, nullable=False)
    ends = db.Column(db.DateTime, nullable=False)
    duration = db.Column(db.Integer, nullable=False)
示例#11
0
class ArticleModel(db.Model):
    __tablename__ = 'wufazhuce_article'

    article_id = db.Column(INTEGER, primary_key=True)
    article_title = db.Column(TEXT)
    article_author = db.Column(TEXT)
    article_text = db.Column(TEXT)
    article_body = db.Column(TEXT)
示例#12
0
class BaseModel(db.Model):
    __abstract__ = True

    id = db.Column(INTEGER, primary_key=True)
    ctime = db.Column(DATETIME, nullable=False, default=datetime.now)
    mtime = db.Column(DATETIME, nullable=False, default=datetime.now, onupdate=datetime.now)
    create_time_unix = db.Column(INTEGER, nullable=False, default=time.time)
    modify_time_unix = db.Column(INTEGER, nullable=False, default=time.time, onupdate=time.time)
示例#13
0
class PhotoModel(db.Model):
    __tablename__ = 'wufazhuce_photo'

    photo_id = db.Column(INTEGER, primary_key=True)
    photo_url = db.Column(TEXT)
    photo_date = db.Column(TEXT)
    photo_text = db.Column(TEXT)
    wufazhuce_url = db.Column(TEXT)
示例#14
0
class Mapping(db.Model):
    id = db.Column(db.String(120), unique=True, nullable=False, primary_key=True)
    app_name = db.Column(db.String(120), db.ForeignKey('application.name'), nullable=False)
    app = db.relationship('Application', foreign_keys=app_name)
    image_url = db.Column(db.String(500), nullable=True)
    fields = db.Column(db.String(500), nullable=True)

    def __repr__(self):
        return '<Mapping %r>' % self.id
示例#15
0
class QuestionModel(db.Model):
    '''
    问答表
    '''
    __tablename__ = 'question'

    question_id = db.Column(db.Integer, primary_key=True)
    question_title = db.Column(db.Text)
    question_text = db.Column(db.Text)
    question_body = db.Column(db.Text)
示例#16
0
class User(db.Model):
    __tablename__ = "users"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(128), nullable=False)
    email = db.Column(db.String(128), nullable=False)
    active = db.Column(db.Boolean(), default=True, nullable=False)

    def __init__(self, username, email):
        self.username = username
        self.email = email
示例#17
0
class ArticleModel(db.Model):
    '''
    文章表
    '''
    __tablename__ = 'article'

    article_id = db.Column(db.Integer, primary_key=True)
    article_title = db.Column(db.Text)
    article_author = db.Column(db.Text)
    article_text = db.Column(db.Text)
    article_body = db.Column(db.Text)
示例#18
0
class PhotoModel(db.Model):
    '''
    图片表
    '''
    __tablename__ = 'photo'

    photo_id = db.Column(db.Integer, primary_key=True)
    photo_url = db.Column(db.Text)
    photo_date = db.Column(db.Text)
    photo_text = db.Column(db.Text)
    wufazhuce_url = db.Column(db.Text)
class UserSearchAndResults(db.Model):  # type: ignore
    """
    Store details of user view (for audit purposes) and update after payment (for reconciliation).
    """

    # As several users may be searching at the same time, we need a compound primary key.
    # Note that WebSeal prevents a user from being logged in from multiple places concurrently.
    search_datetime = db.Column(db.DateTime(), nullable=False, primary_key=True)
    user_id = db.Column(db.String(20), nullable=False, primary_key=True)
    title_number = db.Column(db.String(20), nullable=False)
    search_type = db.Column(db.String(20), nullable=False)
    purchase_type = db.Column(db.String(20), nullable=False)
    amount = db.Column(db.String(10), nullable=False)
    cart_id = db.Column(db.String(30), nullable=True)

    # Post-payment items: these (or the like) are also held in the 'transaction_data' DB.
    # TODO: Ideally they should be fetched from there instead, via the 'search_datetime' key.
    lro_trans_ref = db.Column(db.String(30), nullable=True)                # Reconciliation: 'transId' from Worldpay.
    viewed_datetime = db.Column(db.DateTime(), nullable=True)              # If null, user has yet to view the results.
    valid = db.Column(db.Boolean, default=False)

    def __init__(self,
                 search_datetime,
                 user_id,
                 title_number,
                 search_type,
                 purchase_type,
                 amount,
                 cart_id,
                 lro_trans_ref,
                 viewed_datetime,
                 valid
                 ):
        self.search_datetime = search_datetime
        self.user_id = user_id
        self.title_number = title_number
        self.search_type = search_type
        self.purchase_type = purchase_type
        self.amount = amount
        self.cart_id = cart_id

        self.lro_trans_ref = lro_trans_ref
        self.viewed_datetime = viewed_datetime
        self.valid = valid

    # This is for serialisation purposes; it returns the arguments used and their values as a dict.
    # Note that __dict__ only works well in this case if no other local variables are defined.
    # "marshmallow" may be an alternative: https://marshmallow.readthedocs.org/en/latest.
    def get_dict(self):
        return self.__dict__

    def id(self):
        return '<lro_trans_ref {}>'.format(self.lro_trans_ref)
示例#20
0
class Store(db.Model):
    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    uuid = db.Column(db.String, nullable=False, unique=True)
    created_at = db.Column(db.DateTime,
                           default=datetime.utcnow,
                           nullable=False)
    updated_at = db.Column(db.DateTime, onupdate=datetime.utcnow)

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

    def __repr__(self):
        return '<Store {}. uuid: {}>'.format(self.id, self.uuid)
示例#21
0
class Storage(db.Model):
    name = db.Column(db.String(120), unique=True, nullable=False, primary_key=True)
    milvus_addr = db.Column(db.String(120), unique=False, nullable=False)
    milvus_port = db.Column(db.Integer, unique=False, nullable=False)
    milvus_table_name = db.Column(db.String(120), unique=False, nullable=False)
    milvus_dimension = db.Column(db.Integer, unique=False, nullable=False)
    milvus_index_file_size = db.Column(db.Integer, unique=False, nullable=False)
    milvus_metric_type = db.Column(db.String(120), unique=False, nullable=False)
    s3_addr = db.Column(db.String(120), unique=False, nullable=False)
    s3_port = db.Column(db.Integer, unique=False, nullable=False)
    s3_token = db.Column(db.String(120), unique=False, nullable=False)

    def __repr__(self):
        return '<Storage %r>' % self.name
示例#22
0
class Preference(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    group_id = db.Column(db.Integer, db.ForeignKey('group.id'), nullable=False)
    first_preference = db.Column(db.String(500), index=True)
    second_preference = db.Column(db.String(500), index=True)
    third_preference = db.Column(db.String(500), index=True)
    match_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    last_updated_time = db.Column(db.DateTime,
                                  index=True,
                                  default=datetime.utcnow)
    #this is the many side, so uselist=False
    match = db.relationship("User",
                            backref=db.backref("match_preferences",
                                               lazy='dynamic'),
                            foreign_keys=[match_id],
                            uselist=False)
    user = db.relationship("User",
                           backref=db.backref("user_preferences",
                                              lazy='dynamic'),
                           foreign_keys=[user_id],
                           uselist=False)

    def __repr__(self):
        return '<Preference {}, {}>'.format(self.group_id, self.user_id)
示例#23
0
class Group(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    groupname = db.Column(db.String(120),
                          index=True,
                          unique=True,
                          nullable=False)
    rsvp_close_date = db.Column(db.Date, index=True, nullable=False)
    reveal_date = db.Column(db.Date, index=True, nullable=False)
    budget = db.Column(db.Float, index=True)
    host_join = db.Column(db.Boolean, index=True)
    last_updated_time = db.Column(db.DateTime,
                                  index=True,
                                  default=datetime.utcnow)
    host_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    preferences = db.relationship('Preference',
                                  backref='group',
                                  lazy='dynamic')
    members = db.relationship('GroupMember', backref='group', lazy='dynamic')

    def __repr__(self):
        return '<Group {}>'.format(self.groupname)

    def get_all_member_emails(self):
        current_members = self.members.all()
        current_emails = []
        for member in current_members:
            current_emails.append(member.member_email)
        if self.host_join:
            current_members.append(self.host.email)
        return current_emails

    def get_all_signup_member_emails(self):
        current_members = self.members.all()
        current_emails = []
        for member in current_members:
            if GroupMember.group_signup_status(self.id, member.member_email):
                current_emails.append(member.member_email)
        if self.host_join and GroupMember.group_signup_status(
                self.id, self.host.email):
            current_members.append(self.host.email)
        return current_emails

    def if_match_set(self):
        current_preferences = self.preferences.all()
        match_set = True
        for current_preference in current_preferences:
            if not current_preference.match:
                match_set = False
                break
        return match_set

    @staticmethod
    def check_group_member(group_name, email):
        current_group = Group.query.filter_by(groupname=group_name).first()
        current_emails = current_group.get_all_member_emails()
        if email in current_emails:
            return True
        else:
            return False
示例#24
0
class Pipeline(db.Model):
    name = db.Column(db.String(120), unique=True, nullable=False, primary_key=True)
    description = db.Column(db.String(240), unique=False, nullable=True)
    processors = db.Column(db.String(240), unique=False, nullable=False)
    encoder = db.Column(db.String(240), unique=False, nullable=False)
    input = db.Column(db.String(120), unique=False, nullable=False)
    output = db.Column(db.String(120), unique=False, nullable=False)
    dimension = db.Column(db.Integer, unique=False, nullable=False)
    index_file_size = db.Column(db.Integer, unique=False, nullable=False)
    metric_type = db.Column(db.String(120), unique=False, nullable=False)

    def __repr__(self):
        return '<Pipeline %r>' % self.name
示例#25
0
class TenantHistory(db.Model):
    __tablename__ = 'tenants_history'
    id = db.Column(db.Integer, primary_key=True)
    tenant_id = db.Column(db.String(50), db.ForeignKey('tenants.tenant_id'), nullable=False)
    update_time = db.Column(db.DateTime, default=datetime.datetime.utcnow, nullable=False)
    updated_by = db.Column(db.String(120), unique=False, nullable=False)
    updates_as_json = db.Column(db.String(10000), unique=False, nullable=False)

    @property
    def serialize(self):
        d = {
            'tenant_id': self.tenant_id,
            'update_time': str(self.update_time),
            'updated_by': self.updated_by,
            'updates': json.loads(self.updates_as_json)
        }
        return d
示例#26
0
class DIDUserModel(BaseModel):
    __tablename__ = 'did_user'
    '''
    CREATE TABLE `did_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `uname` varchar(50) DEFAULT NULL COMMENT '用户名称',
      `passwd` varchar(100) DEFAULT NULL COMMENT '密码',
      `phone` varchar(15) DEFAULT NULL COMMENT '电话号码',
      `email` varchar(50) DEFAULT NULL COMMENT '邮件地址',
      `photo` varchar(50) DEFAULT NULL COMMENT '头像照片',
      `group_id` int(11) NOT NULL COMMENT '所属组 ID',
      `status` tinyint(4) NOT NULL COMMENT '用户状态',
      `ctime` datetime DEFAULT NULL COMMENT '创建时间',
      `mtime` datetime DEFAULT NULL COMMENT '修改时间',
      `create_time_unix` int(11) DEFAULT NULL COMMENT '创建时间 UNIX',
      `modify_time_unix` int(11) DEFAULT NULL COMMENT '修改时间 UNIX',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表'
    '''
    uname = db.Column(VARCHAR(50), comment='用户名称')
    passwd = db.Column(VARCHAR(100), comment='密码')
    phone = db.Column(VARCHAR(15), comment='电话号码')
    email = db.Column(VARCHAR(50), comment='邮件地址')
    photo = db.Column(VARCHAR(50), comment='头像照片')
    group_id = db.Column(INTEGER, comment='所属组id')
    status = db.Column(TINYINT(4), nullable=False, default=1, comment='用户状态')

    @hybrid_property
    def _password(self):
        return self.passwd

    @_password.setter
    def _password(self, pwd):
        self.passwd = bcrypt.generate_password_hash(pwd)
示例#27
0
class DIDGroupModel(BaseModel):
    __tablename__ = 'did_group'
    '''
    CREATE TABLE `did_group` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `gname` varchar(50) DEFAULT NULL COMMENT '组织名称',
      `group_type` tinyint(4) NOT NULL DEFAULT '2' COMMENT '组织类型',
      `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '组织状态',
      `ctime` datetime DEFAULT NULL COMMENT '创建时间',
      `mtime` datetime DEFAULT NULL COMMENT '修改时间',
      `create_time_unix` int(11) DEFAULT NULL COMMENT '创建时间 UNIX',
      `modify_time_unix` int(11) DEFAULT NULL COMMENT '修改时间 UNIX',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='组织信息表'
    '''
    gname = db.Column(VARCHAR(50), comment='组织名称')
    group_type = db.Column(TINYINT(4), nullable=False, default=2, comment='组织类型')
    status = db.Column(TINYINT(4), nullable=False, default=1, comment='组织状态')
示例#28
0
class User(UserMixin, db.Model):
    y = db.Column(db.String(256), primary_key=True)

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

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
示例#29
0
class Message(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(250), nullable=False)
    sender_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    recipient_id = db.Column(db.Integer,
                             db.ForeignKey('user.id'),
                             nullable=False)
    is_palindrome = db.Column(db.Boolean, nullable=False)

    def to_dict(self):
        d = {
            'id': self.id,
            'body': self.body,
            'sender_id': self.sender_id,
            'recipient_id': self.recipient_id,
            'is_palindrome': self.is_palindrome
        }
        return d
class TitleRegisterData(db.Model):  # type: ignore
    title_number = db.Column(db.String(10), primary_key=True)
    register_data = db.Column(JSON)
    geometry_data = db.Column(JSON)
    official_copy_data = db.Column(JSON)
    is_deleted = db.Column(db.Boolean, default=False, nullable=False)
    last_modified = db.Column(db.DateTime, default=db.func.now(), onupdate=db.func.now(), nullable=False)
    lr_uprns = db.Column(ARRAY(db.String), default=[], nullable=True)