class Book(db.Model, CRUDMixin): __searchable__ = ['book'] id = db.Column(db.Integer, primary_key=True) book = db.Column(db.String(30)) type = db.Column(db.String(30)) description = db.Column(db.String(180)) price = db.Column(db.String(30)) image = db.Column(db.LargeBinary) authors = db.relationship('Author', secondary='association', back_populates='books') def __repr__(self): return '%r' % self.book
class OrderList(db.Model): tid = db.Column(db.Integer,primary_key=True) book_ISBN = db.Column(db.String(100),db.ForeignKey('books.bid')) quantity = db.Column(db.Integer,nullable=False) user_id=db.Column(db.Integer,db.ForeignKey('user.id')) total_price = db.Column(db.Integer,nullable=False) selling_date = db.Column(db.DateTime, nullable = False)
class Role(db.Model, CRUDMixin): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(30), unique = True) users = db.relationship('User', backref='role', lazy='dynamic') def __repr__(self): return '<Role %r>' % self.name
class User(UserMixin, db.Model): __table_args__ = ( db.UniqueConstraint('email', 'id', name='unique_component_commit'), ) id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(255), nullable=False) email = db.Column(db.String(100), nullable=False) password = db.Column(db.String(255), nullable=False) location = db.Column(db.String(255), nullable=False) age = db.Column(db.String(255)) #user_rating = db.relationship('Ratings',backref="user_id",uselist=False) def get_id(self): return str(self.id) def __repr__(self): return f"User('{self.id}','{self.name}','{self.email}')"
class Ratings(db.Model): rid = db.Column(db.Integer,primary_key=True) rating = db.Column(db.Integer,default=0) user_id = db.Column(db.Integer,db.ForeignKey('user.id')) book_id = db.Column(db.String(100),db.ForeignKey('books.ISBN')) def __repr__(self): return f"Ratings('{self.book_id}','{self.user_id}','{self.rating}')"
class Author(db.Model, CRUDMixin): __searchable__ = ['name'] id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(30), unique = True) books = db.relationship('Book', secondary='association', back_populates='authors') def __repr__(self): return '%r' % self.name
class Book(db.Model): """docstring for Book""" __tablename__ = 'books' id = db.Column(db.Integer, primary_key=True) book_name = db.Column(db.String(100), nullable=False) book_price = db.Column(db.Float, nullable=False) book_num = db.Column(db.BigInteger, nullable=False) def __repr__(self): return f"""book_name: {self.book_name},
class Books(db.Model): bid = db.Column(db.Integer,primary_key=True) ISBN = db.Column(db.String(50),nullable=False) title = db.Column(db.String(255),nullable=False) author = db.Column(db.String(100),nullable=False) publisher = db.Column(db.String(100),nullable=False) book_cost = db.Column(db.String(100),nullable=False) pubDate = db.Column(db.String(20),nullable=False,default="2001") bookImage = db.Column(db.String(500),nullable=False) #book_rating = db.relationship('Ratings',backref="book_id",uselist=False) def __repr__(self): return f"Books('{self.ISBN}','{self.title}','{self.bookImage}','{self.book_cost}')"
class User(db.Model, UserMixin, CRUDMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(30), unique = False, index = True) email = db.Column(db.String(100), unique = True) password_hash = db.Column(db.String(128)) role_id = db.Column(db.Integer, db.ForeignKey('role.id')) number = db.Column(db.String(30)) def __init__(self, username, email, password, number): self.username = username self.email = email self.password = password self.number = number if self.email == admin_email: self.role_id = admin_permission else: self.role_id = user_permission def __repr__(self): return '<User %r>' % self.username def is_administrator(self): if self.role_id == admin_permission: return True @property def password(self): raise AttributeError('password is not a readable attribute') @password.setter def password(self, password): self.password_hash = generate_password_hash(password) def verify_password(self, password): return check_password_hash(self.password_hash, password)
class Order(db.Model, CRUDMixin): id = db.Column(db.Integer, primary_key=True) user = db.Column(db.String(30)) book = db.Column(db.String(128)) email = db.Column(db.String(30)) number = db.Column(db.String(30), unique=True) price = db.Column(db.String(30)) status = db.Column(db.String(30)) def __repr__(self): return 'Заказ %r' % self.id
class Contact(db.Model): cid = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) email = db.Column(db.String(80), nullable=False) contact = db.Column(db.String(12), nullable=False) message = db.Column(db.String(120), nullable=False)
class Association(db.Model, CRUDMixin): books = db.Column(db.String(30), db.ForeignKey('book.id', ondelete='cascade'), primary_key=True) authors = db.Column(db.String(30), db.ForeignKey('author.id', ondelete='cascade'), primary_key=True)