from sqlalchemy import Column, DECIMAL, DateTime, Integer, String, Text
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()  # Создаем экземпляр SQLAlchemy

class Author(db.Model):
    __tablename__ = 'author'

    id = Column(Integer, primary_key=True)
    name = Column(String(150))

class Books(db.Model):
    __tablename__ = 'books'

    authorId = Column(Integer, nullable=False)
    ganreId = Column(Integer, nullable=False)
    year = Column(Integer, nullable=False)
    readerId = Column(Integer, nullable=False)
    publishId = Column(Integer, nullable=False)
    status = Column(Integer, nullable=False)
    id = Column(Integer, primary_key=True)
    name = Column(String(255))
    description = Column(Text)
    source = Column(Text)
    playlist = Column(Text)
    time = Column(String(50))
    img = Column(Text)
    cycleId = Column(Integer)
    orderId = Column(Integer)
    torrent = Column(String(255))

class CycleBook(db.Model):
    __tablename__ = 'cycleBook'

    authorId = Column(Integer, nullable=False)
    id = Column(Integer, primary_key=True)
    name = Column(String(150))


class Files(db.Model):
    __tablename__ = 'files'

    source = Column(Text, nullable=False)
    status = Column(Integer, nullable=False)
    bookid = Column(Integer, nullable=False)
    fileNum = Column(Integer, nullable=False)
    id = Column(Integer, primary_key=True)
    name = Column(String(150))
    numOrder = Column(Integer)


class Ganre(db.Model):
    __tablename__ = 'ganre'

    id = Column(Integer, primary_key=True)
    name = Column(String(150))


class LastPlay(db.Model):
    __bind_key__ = 'users'
    __tablename__ = 'lastPlay'

    userId = Column(Integer, nullable=False)
    bookid = Column(Integer, nullable=False)
    filenum = Column(Integer, nullable=False)
    id = Column(Integer, primary_key=True)
    time = Column(DECIMAL(5, 18))
    lastupdate = Column(DateTime)


class Publish(db.Model):
    __tablename__ = 'publish'

    id = Column(Integer, primary_key=True)
    name = Column(String(150))


class Reader(db.Model):
    __tablename__ = 'reader'

    id = Column(Integer, primary_key=True)
    name = Column(String(150))

class Users(db.Model):
    __bind_key__ = 'users'
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    login = Column(String(50))
    password = Column(String(50))
    email = Column(String(50))
    lastbookId = Column(Integer)
    hash = Column(String(255))
