__init__.py 1.6 KB
from flask_sqlalchemy import sqlalchemy
from sqlalchemy import Column, Integer, Text, Time, ForeignKey
from app.models import db
from authlib.integrations.sqla_oauth2 import (
    OAuth2ClientMixin,
    OAuth2TokenMixin,
    OAuth2AuthorizationCodeMixin
)
from sqlalchemy.orm import relationship


class User (db.Model):
    '''
    用户信息表
    '''
    __tablename__ = "dmdms_user"
    id = Column(Integer, primary_key=True)
    username = Column(Text)
    password = Column(Text)
    company = Column(Text)
    position = Column(Text)
    phone = Column(Text)
    email = Column(Text)
    create_time = Column(Time)
    update_time = Column(Time)
    role = Column(Text)

    def __str__(self):
        return self.username

    def get_user_id(self):
        return self.id


class OAuth2Client(db.Model, OAuth2ClientMixin):
    __tablename__ = 'dmdms_oauth2_client'

    id = Column(Integer, primary_key=True)
    user_id = Column(
        Integer, ForeignKey('dmdms_user.id', ondelete='CASCADE'))
    user = relationship('User')


class OAuth2AuthorizationCode(db.Model, OAuth2AuthorizationCodeMixin):
    __tablename__ = 'dmdms_oauth2_code'

    id = Column(Integer, primary_key=True)
    user_id = Column(
        Integer, ForeignKey('dmdms_user.id', ondelete='CASCADE'))
    user = relationship('User')


class OAuth2Token(db.Model, OAuth2TokenMixin):
    __tablename__ = 'dmdms_oauth2_token'

    id = Column(Integer, primary_key=True)
    user_id = Column(
        Integer, ForeignKey('dmdms_user.id', ondelete='CASCADE'))
    # name = Column(Text)
    user = relationship('User')