fix models to match expectation

This commit is contained in:
grimhilt 2023-07-31 01:49:25 +02:00
parent f5786a446f
commit 9621e1a12f

View File

@ -3,31 +3,37 @@ from flask_login import UserMixin
from sqlalchemy.sql import func from sqlalchemy.sql import func
class PlaylistFile(db.Model): class PlaylistFile(db.Model):
id = db.Column(db.Integer, primary_key = True) __tablename__ = 'PlaylistFile'
playlist_id = db.Column(db.Integer, db.ForeignKey('playlist.id')) playlist_id = db.Column(db.Integer, db.ForeignKey('playlist.id'), primary_key=True)
# file_id = db.Column(db.Integer, db.ForeignKey('file.id')) file_id = db.Column(db.Integer, db.ForeignKey('file.id'), primary_key=True)
position = db.Column(db.Integer)
seconds = db.Column(db.Integer, default=10)
playlist = db.relationship('Playlist', back_populates='playlist_files')
file = db.relationship('File', back_populates='playlist_files')
class File(db.Model): class File(db.Model):
id = db.Column(db.Integer, primary_key = True) id = db.Column(db.Integer, primary_key = True, autoincrement=True)
name = db.Column(db.String(150)) name = db.Column(db.String(150))
type = db.Column(db.String(255)) # maximum length of mimetype type = db.Column(db.String(255)) # maximum length of mimetype
playlist_files = db.relationship('PlaylistFile', back_populates='file')
def as_dict(self): def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns} return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class Playlist(db.Model): class Playlist(db.Model):
id = db.Column(db.Integer, primary_key = True) id = db.Column(db.Integer, primary_key = True, autoincrement=True)
name = db.Column(db.String(150)) name = db.Column(db.String(150))
last_modified = db.Column(db.DateTime(timezone=True), default=func.now()) last_modified = db.Column(db.DateTime(timezone=True), default=func.now())
read_permissions = db.Column(db.Integer, default=0) read_permissions = db.Column(db.Integer, default=0)
write_permissions = db.Column(db.Integer, default=0) write_permissions = db.Column(db.Integer, default=0)
execute_permissions = db.Column(db.Integer, default=0) execute_permissions = db.Column(db.Integer, default=0)
files = db.relationship('PlaylistFile') files = db.relationship('File', secondary='PlaylistFile')
playlist_files = db.relationship('PlaylistFile', order_by='PlaylistFile.position', back_populates='playlist')
def as_dict(self): def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns} return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class User(db.Model, UserMixin): class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key = True) id = db.Column(db.Integer, primary_key = True, autoincrement=True)
login = db.Column(db.String(150)) login = db.Column(db.String(150))
password = db.Column(db.String(150)) password = db.Column(db.String(150))