Пример #1
0
class Tags(model):
    query = db_session.query_property()

    __tablename__ = 'tags'

    id = Column('tag_id', UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, unique=True, nullable=False)

    name = Column(String(200), unique=True, nullable=False)
    description = Column(String(2000), nullable=True)

    created_on = Column(DateTime, server_default=func.now())
    updated_on = Column(DateTime, server_default=func.now(), server_onupdate=func.now())

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

    def to_json(self):
        return dict(name=self.name, description=self.description)

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)
Пример #2
0
class Agreements(model):
    query = db_session.query_property()

    __tablename__ = 'agreements'

    id = Column('agreement_id',
                UUID(as_uuid=True),
                primary_key=True,
                default=uuid.uuid4,
                unique=True,
                nullable=False)

    title = Column(String(200), nullable=False)
    description = Column(String(64000), nullable=True)
    body = Column(String(), nullable=True)
    valid_from = Column(DateTime)
    valid_to = Column(DateTime)
    is_active = Column(Boolean, default=False)
    is_required = Column(Boolean, default=False)
    created_on = Column(DateTime, server_default=func.now())
    updated_on = Column(DateTime,
                        server_default=func.now(),
                        server_onupdate=func.now())

    def __init__(self, title: str):
        self.title = title

    def to_json(self):
        return dict(name=self.description)

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)
Пример #3
0
class Keywords(model):
    query = db_session.query_property()

    __tablename__ = 'keywords'

    id = Column('keyword_id',
                UUID(as_uuid=True),
                primary_key=True,
                default=uuid.uuid4,
                unique=True,
                nullable=False)

    name = Column(String(200), nullable=False)

    created_on = Column(DateTime, server_default=func.now())
    updated_on = Column(DateTime,
                        server_default=func.now(),
                        server_onupdate=func.now())

    course_id = Column(UUID(as_uuid=True),
                       ForeignKey('courses.course_id'),
                       nullable=False)
    course = relationship('Courses', backref='keywords', lazy=True)

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

    def to_json(self):
        return dict(name=self.name)

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)
Пример #4
0
class Platforms(model):
    query = db_session.query_property()

    __tablename__ = 'platforms'

    id = Column('platform_id',
                UUID(as_uuid=True),
                primary_key=True,
                default=uuid.uuid4,
                unique=True,
                nullable=False)

    name = Column(String(200), unique=True, nullable=False)
    created_on = Column(DateTime, server_default=func.now())
    updated_on = Column(DateTime,
                        server_default=func.now(),
                        server_onupdate=func.now())

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

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)
Пример #5
0
class Ratings(model):
    query = db_session.query_property()

    __tablename__ = 'ratings'

    id = Column('rating_id', UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, unique=True, nullable=False)

    points = Column(Integer, nullable=False)
    created_on = Column(DateTime, server_default=func.now())
    updated_on = Column(DateTime, server_default=func.now(), server_onupdate=func.now())

    course_id = Column(UUID(as_uuid=True), ForeignKey('courses.course_id'), nullable=False)
    course = relationship('Courses', backref='ratings', lazy=True)

    user_id = Column(UUID(as_uuid=True), ForeignKey('users.user_id'), nullable=False)
    user = relationship('Users', backref="ratings", lazy=True)

    def __init__(self, user: Users, course: Courses, points: int):
        self.user = user
        self.course = course
        self.points = points

    def to_json(self):
        return dict(name=self.points)

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)
Пример #6
0
class UserEvents(model):
    query = db_session.query_property()

    __tablename__ = 'user_events'
    id = Column('user_event_id',
                UUID(as_uuid=True),
                primary_key=True,
                default=uuid.uuid4,
                unique=True,
                nullable=False)

    log = Column(String(512), unique=False, nullable=False)
    meta = Column(JSON, nullable=True)
    created_on = Column(DateTime, server_default=func.now())

    user_id = Column(UUID(as_uuid=True),
                     ForeignKey('users.user_id'),
                     nullable=False)
    user = relationship('Users', backref="user_events", lazy=True)

    def __init__(self, user: Users, log: str, meta=None):
        if meta is None:
            meta = {}
        self.user = user
        self.log = log
        self.meta = meta

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)
Пример #7
0
class CoursesHasTags(model):
    query = db_session.query_property()

    __tablename__ = 'courses_tags'

    id = Column('courses_tags_id',
                UUID(as_uuid=True),
                primary_key=True,
                default=uuid.uuid4,
                unique=True,
                nullable=False)
    tag_id = Column(UUID(as_uuid=True),
                    ForeignKey('tags.tag_id'),
                    unique=False)
    course_id = Column(UUID(as_uuid=True),
                       ForeignKey('courses.course_id'),
                       unique=False)

    created_on = Column(DateTime, server_default=func.now())
    updated_on = Column(DateTime,
                        server_default=func.now(),
                        server_onupdate=func.now())

    course = relationship("Courses", backref="tags_courses_tags")
    tag = relationship("Tags", backref="courses_courses_tags")
Пример #8
0
class Releases(model):
    query = db_session.query_property()

    __tablename__ = 'releases'

    id = Column('release_id',
                UUID(as_uuid=True),
                primary_key=True,
                default=uuid.uuid4,
                unique=True,
                nullable=False)

    name = Column(String(200), nullable=False)
    description = Column(String(2000), nullable=False)
    created_on = Column(DateTime, server_default=func.now())
    updated_on = Column(DateTime,
                        server_default=func.now(),
                        server_onupdate=func.now())

    course_id = Column(UUID(as_uuid=True),
                       ForeignKey('courses.course_id'),
                       nullable=False)
    course = relationship('Courses', backref='releases', lazy=True)

    release_type_id = Column(UUID(as_uuid=True),
                             ForeignKey('release_types.release_type_id'),
                             nullable=False)
    release_type = relationship("ReleaseTypes",
                                backref=backref("release", lazy="dynamic"))

    def __init__(self, name: str, description: str,
                 release_type: ReleaseTypes):
        self.name = name
        self.description = description
        self.release_type = release_type

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)
Пример #9
0
class Users(model):
    query = db_session.query_property()

    __tablename__ = 'users'

    id = Column('user_id',
                UUID(as_uuid=True),
                primary_key=True,
                default=uuid.uuid4,
                unique=True,
                nullable=False)
    public_id = Column('public_id',
                       UUID(as_uuid=True),
                       default=uuid.uuid4,
                       unique=True,
                       nullable=False)

    email = Column(String(200), unique=True, nullable=False)
    name = Column(String(200), unique=True, nullable=False)
    password = Column(String(100))

    first_name = Column(String(200))
    last_name = Column(String(200))

    created_on = Column(DateTime, server_default=func.now())

    confirmed = Column(Boolean, nullable=False, default=False)
    confirmed_on = Column(DateTime, nullable=True)

    agreements = relationship("Agreements", secondary="user_agreements")

    def __init__(self, email, name, password):
        self.email = email
        self.name = name
        self.password = sha256_crypt.encrypt(password)

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)
Пример #10
0
class Courses(model):
    query = db_session.query_property()

    __tablename__ = 'courses'

    id = Column('course_id',
                UUID(as_uuid=True),
                primary_key=True,
                default=uuid.uuid4,
                unique=True,
                nullable=False)

    name = Column(String(200), nullable=False)
    created_on = Column(DateTime, server_default=func.now())
    updated_on = Column(DateTime,
                        server_default=func.now(),
                        server_onupdate=func.now())

    platform_id = Column(UUID(as_uuid=True),
                         ForeignKey('platforms.platform_id'),
                         nullable=False)
    platform = relationship("Platforms",
                            backref=backref("courses", lazy="dynamic"))

    publisher_id = Column(UUID(as_uuid=True),
                          ForeignKey('publishers.publisher_id'),
                          nullable=False)
    publisher = relationship("Publishers",
                             backref=backref("courses", lazy="dynamic"))

    tags = relationship("Tags", secondary="courses_tags")

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

    def __eq__(self, other):
        return type(self) is type(other) and self.id == other.id

    def __ne__(self, other):
        return not self.__eq__(other)