From 9621e1a12f931dbbbd36af0a64029204e8b3f694 Mon Sep 17 00:00:00 2001 From: grimhilt Date: Mon, 31 Jul 2023 01:49:25 +0200 Subject: [PATCH] fix models to match expectation --- src/api/models.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/api/models.py b/src/api/models.py index 82405d5..0d8e649 100644 --- a/src/api/models.py +++ b/src/api/models.py @@ -3,31 +3,37 @@ from flask_login import UserMixin from sqlalchemy.sql import func class PlaylistFile(db.Model): - id = db.Column(db.Integer, primary_key = True) - playlist_id = db.Column(db.Integer, db.ForeignKey('playlist.id')) -# file_id = db.Column(db.Integer, db.ForeignKey('file.id')) + __tablename__ = 'PlaylistFile' + playlist_id = db.Column(db.Integer, db.ForeignKey('playlist.id'), primary_key=True) + 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): - id = db.Column(db.Integer, primary_key = True) + id = db.Column(db.Integer, primary_key = True, autoincrement=True) name = db.Column(db.String(150)) type = db.Column(db.String(255)) # maximum length of mimetype + playlist_files = db.relationship('PlaylistFile', back_populates='file') def as_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns} 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)) last_modified = db.Column(db.DateTime(timezone=True), default=func.now()) read_permissions = db.Column(db.Integer, default=0) write_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): return {c.name: getattr(self, c.name) for c in self.__table__.columns} 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)) password = db.Column(db.String(150))