dataModel->registerDataType(new ColumnType);
dataModel->registerDataType(new AnimeType);
dataModel->registerDataType(new EpisodeType);
+ dataModel->registerDataType(new EpisodeFileType);
dataModel->registerDataType(new FileType);
dataModel->registerDataType(new FileLocationType);
dataModel->registerDataType(new AnimeTitleType);
dataModel->registerTypeRelation(new ForeignKeyRelation("anime", "file", "aid"));
dataModel->registerTypeRelation(new ForeignKeyRelation("file", "anime", "aid"));
dataModel->registerTypeRelation(new ForeignKeyRelation("episode", "file", "eid"));
+ dataModel->registerTypeRelation(new ForeignKeyRelation("episode", "episode_file", "eid", "meid"));
dataModel->registerTypeRelation(new ForeignKeyRelation("file", "episode", "eid"));
dataModel->registerTypeRelation(new ForeignKeyRelation("file", "file_location", "fid"));
+ dataModel->registerTypeRelation(new ForeignKeyRelation("episode_file", "file_location", "fid"));
dynamicModelFilterModel = new DynamicModelFilterModel(this);
Database::readFileData(query, data.fileData, 1);
}
+QString EpisodeFileType::tableName() const
+{
+ return "episode_file";
+}
+
// =============================================================================================================
QString FileLocationType::tableName() const
static void fillFileData(FileData &data, const SqlResultIteratorInterface &query);
};
+class LOCALMYLISTSHARED_EXPORT EpisodeFileType : public FileType
+{
+ Q_OBJECT
+ QString tableName() const override;
+};
+
// =============================================================================================================
class LOCALMYLISTSHARED_EXPORT FileLocationType : public DataType
JOIN quality q ON q.quality = f.quality
JOIN file_location fl ON fl.fid = f.fid;
+CREATE OR REPLACE VIEW episode_file AS
+ SELECT f.eid AS meid, f.* FROM file f
+ UNION
+ SELECT fer.eid AS meid, f.* FROM file f
+ JOIN file_episode_rel fer ON f.fid = fer.fid;
+
CREATE OR REPLACE RULE anime_update_rename_rule AS
ON UPDATE TO anime
WHERE old.aid = new.aid