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")
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)
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)
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)
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 "" }
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")
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() }