|
|
@ -1,24 +1,58 @@ |
|
|
|
from app import db |
|
|
|
from marshmallow import Schema, fields, ValidationError, pre_load |
|
|
|
import datetime |
|
|
|
from sqlalchemy import Column, Integer, DateTime |
|
|
|
import flask_whooshalchemyplus |
|
|
|
|
|
|
|
|
|
|
|
authors = db.Table('books_authors', |
|
|
|
db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True), |
|
|
|
db.Column('author_id', db.Integer, db.ForeignKey('authors.id'), primary_key=True) |
|
|
|
from app import db |
|
|
|
from marshmallow import Schema, ValidationError, fields |
|
|
|
from sqlalchemy import Column, DateTime |
|
|
|
|
|
|
|
|
|
|
|
authors = db.Table( |
|
|
|
'books_authors', |
|
|
|
db.Column( |
|
|
|
'book_id', |
|
|
|
db.Integer, |
|
|
|
db.ForeignKey('books.id'), |
|
|
|
primary_key=True |
|
|
|
), |
|
|
|
db.Column( |
|
|
|
'author_id', |
|
|
|
db.Integer, |
|
|
|
db.ForeignKey('authors.id'), |
|
|
|
primary_key=True |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
stacks = db.Table('books_stacks', |
|
|
|
db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True), |
|
|
|
db.Column('stack_id', db.Integer, db.ForeignKey('stacks.id'), primary_key=True) |
|
|
|
stacks = db.Table( |
|
|
|
'books_stacks', |
|
|
|
db.Column( |
|
|
|
'book_id', |
|
|
|
db.Integer, |
|
|
|
db.ForeignKey('books.id'), |
|
|
|
primary_key=True |
|
|
|
), |
|
|
|
db.Column( |
|
|
|
'stack_id', |
|
|
|
db.Integer, |
|
|
|
db.ForeignKey('stacks.id'), |
|
|
|
primary_key=True |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
instances = db.Table('books_instances', |
|
|
|
db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True), |
|
|
|
db.Column('instance_id', db.Integer, db.ForeignKey('instances.id'), primary_key=True) |
|
|
|
instances = db.Table( |
|
|
|
'books_instances', |
|
|
|
db.Column( |
|
|
|
'book_id', |
|
|
|
db.Integer, |
|
|
|
db.ForeignKey('books.id'), |
|
|
|
primary_key=True |
|
|
|
), |
|
|
|
db.Column( |
|
|
|
'instance_id', |
|
|
|
db.Integer, |
|
|
|
db.ForeignKey('instances.id'), |
|
|
|
primary_key=True |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
class Book(db.Model): |
|
|
|
__tablename__ = 'books' |
|
|
@ -33,12 +67,22 @@ class Book(db.Model): |
|
|
|
description = db.Column(db.String(2500)) |
|
|
|
html = db.Column(db.String(255)) |
|
|
|
downloads = db.Column(db.Numeric(100, 0)) |
|
|
|
authors = db.relationship('Author', secondary=authors,cascade="delete", lazy='subquery', |
|
|
|
backref=db.backref('books', lazy=True),passive_deletes=True) |
|
|
|
stacks = db.relationship('Stack', secondary=stacks, lazy='subquery', |
|
|
|
backref=db.backref('books', lazy=True)) |
|
|
|
instances = db.relationship('Instance', secondary=instances, lazy='subquery', |
|
|
|
backref=db.backref('books', lazy=True)) |
|
|
|
authors = db.relationship( |
|
|
|
'Author', |
|
|
|
secondary=authors, |
|
|
|
cascade="delete", |
|
|
|
lazy='subquery', |
|
|
|
backref=db.backref('books', lazy=True), |
|
|
|
passive_deletes=True |
|
|
|
) |
|
|
|
stacks = db.relationship( |
|
|
|
'Stack', secondary=stacks, lazy='subquery', |
|
|
|
backref=db.backref('books', lazy=True) |
|
|
|
) |
|
|
|
instances = db.relationship( |
|
|
|
'Instance', secondary=instances, lazy='subquery', |
|
|
|
backref=db.backref('books', lazy=True) |
|
|
|
) |
|
|
|
scapeX = db.Column(db.Numeric(10, 2)) |
|
|
|
scapeY = db.Column(db.Numeric(10, 2)) |
|
|
|
message = db.Column(db.String(1000)) |
|
|
@ -47,8 +91,9 @@ class Book(db.Model): |
|
|
|
gender = db.Column(db.Numeric()) |
|
|
|
who = db.Column(db.String(255)) |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, title, file, cover, fileformat, category, year_published, message, sameness, diversity, gender, who): |
|
|
|
def __init__(self, title, file, cover, fileformat, |
|
|
|
category, year_published, message, |
|
|
|
sameness, diversity, gender, who): |
|
|
|
self.title = title |
|
|
|
self.file = file |
|
|
|
self.cover = cover |
|
|
@ -64,7 +109,6 @@ class Book(db.Model): |
|
|
|
self.gender = gender |
|
|
|
self.who = who |
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self): |
|
|
|
return '<Title %r>' % self.title |
|
|
|
|
|
|
@ -81,6 +125,7 @@ class Author(db.Model): |
|
|
|
def __init__(self, author_name): |
|
|
|
self.author_name = author_name |
|
|
|
|
|
|
|
|
|
|
|
class Instance(db.Model): |
|
|
|
__tablename__ = 'instances' |
|
|
|
|
|
|
@ -106,6 +151,7 @@ class UserIns(db.Model): |
|
|
|
self.title = title |
|
|
|
self.info = info |
|
|
|
|
|
|
|
|
|
|
|
class Chat(db.Model): |
|
|
|
__tablename__ = 'chat' |
|
|
|
|
|
|
@ -117,14 +163,15 @@ class Chat(db.Model): |
|
|
|
self.message = message |
|
|
|
self.time = datetime.datetime.now() |
|
|
|
|
|
|
|
|
|
|
|
class Stack(db.Model): |
|
|
|
__tablename__ = 'stacks' |
|
|
|
|
|
|
|
id = db.Column(db.Integer, primary_key=True) |
|
|
|
stack_name = db.Column(db.String(50)) |
|
|
|
stack_description = db.Column(db.String(1000)) |
|
|
|
stack_author = db.Column(db.String(255)) |
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, stack_name, stack_description, stack_author): |
|
|
|
self.stack_name = stack_name |
|
|
|
self.stack_description = stack_description |
|
|
@ -149,16 +196,19 @@ class AuthorSchema(Schema): |
|
|
|
id = fields.Int(dump_only=True) |
|
|
|
author_name = fields.Str() |
|
|
|
|
|
|
|
|
|
|
|
class StackSchema(Schema): |
|
|
|
id = fields.Int(dump_only=True) |
|
|
|
stack_name = fields.Str() |
|
|
|
stack_description = fields.Str() |
|
|
|
|
|
|
|
|
|
|
|
class ChatSchema(Schema): |
|
|
|
id = fields.Int(dump_only=True) |
|
|
|
message = fields.Str() |
|
|
|
time = fields.DateTime() |
|
|
|
|
|
|
|
|
|
|
|
class BookSchema(Schema): |
|
|
|
id = fields.Int(dump_only=True) |
|
|
|
title = fields.Str() |
|
|
|