Пример #1
0
class UserBookAction(db.Model):
    __tablename__ = 'book_log'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id',
                                                  ondelete='CASCADE'))
    book_id = db.Column(db.Integer, db.ForeignKey('book.id',
                                                  ondelete='CASCADE'))
    log_name = db.Column(db.Enum(LogAction),
                         nullable=False,
                         default=LogAction.UPDATED)
    created_at = db.Column(db.TIMESTAMP,
                           server_default=func.now(),
                           default=func.now(),
                           nullable=False)
    book = relationship("Book", back_populates="users")
    user = relationship("User", back_populates="books")
Пример #2
0
class HistoryWrongPass(db.Model):
    def __init__(self, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)

    __tablename__ = 'history_wrong_password'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id',
                                                  ondelete='CASCADE'))
    created_at = db.Column(db.TIMESTAMP, default=datetime.now)
Пример #3
0
class SocialLogin(db.Model):
    def __init__(self, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)

    __tablename__ = 'social_login'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    social_id = db.Column(db.String(50), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))
    created_at = db.Column(db.TIMESTAMP, default=datetime.now)
    social_name = db.Column(db.Enum(SocialName), nullable=False)
Пример #4
0
class UserAction(db.Model):
    def __init__(self, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)

    __tablename__ = 'user_action'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    action_name = db.Column(db.String(256, convert_unicode=True),
                            nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id',
                                                  ondelete='CASCADE'))
    created_at = db.Column(db.TIMESTAMP, default=datetime.now)
Пример #5
0
class UserCategoryAction(db.Model):
    __tablename__ = 'category_log'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id', ondelete='CASCADE'))
    category_id = db.Column(db.Integer, db.ForeignKey('category.id', ondelete='CASCADE'))
    log_name = db.Column(db.Enum(LogAction), nullable=False, default=LogAction.UPDATED)
    created_at = db.Column(db.TIMESTAMP, server_default=func.now(), default=func.now(), nullable=False)
    category = relationship("Category", back_populates="users")
    user = relationship("User", back_populates="categories")

    def to_dict(self):
        from ducttapp.models import User
        return {
            'id': self.id,
            'log_name': self.log_name.value,
            'created_at': self.created_at,
            'username': db.session.query(
                User
            ).filter(
                self.user_id == User.id
            ).first().username or ""
        }
Пример #6
0
from ducttapp.models import db
from .base import TimestampMixin
from sqlalchemy.orm import relationship
from sqlalchemy import func
import enum
from datetime import datetime


category_book_table = db.Table(
    'category_book',
    db.Model.metadata,
    db.Column('category_id', db.Integer, db.ForeignKey('category.id', ondelete='CASCADE')),
    db.Column('book_id', db.Integer, db.ForeignKey('book.id', ondelete='CASCADE'))
)


class Category(db.Model, TimestampMixin):
    def __init__(self, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)

    __tablename__ = 'category'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(255, convert_unicode=True), nullable=False, unique=True)
    description = db.Column(db.Text(convert_unicode=True), nullable=True)
    is_active = db.Column(db.Boolean, default=True)
    users = relationship("UserCategoryAction", back_populates="category", cascade="all, delete-orphan")
    books = relationship(
        "Book",
        secondary=category_book_table,
        back_populates="categories")
Пример #7
0
from ducttapp.models import db
from flask_restplus import fields
from sqlalchemy.orm import relationship

user_role_table = db.Table(
    'user_role',
    db.Model.metadata,
    db.Column('user_id', db.Integer, db.ForeignKey('user.id', ondelete='CASCADE')),
    db.Column('role_id', db.Integer, db.ForeignKey('role.id', ondelete='CASCADE'))
)


class Role(db.Model):
    __tablename__ = 'role'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    role_name = db.Column(db.String(256, convert_unicode=True), nullable=True)
    users = relationship(
        "User",
        secondary=user_role_table,
        back_populates="roles")


class RoleSchema:
    role_res_schema = {
        'id': fields.Integer(),
        'role_name': fields.String()
    }