Skip to content
Snippets Groups Projects
Verified Commit c7c9eaf7 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Clean up relationships

parent 91b3a7d2
No related branches found
No related tags found
No related merge requests found
...@@ -168,12 +168,12 @@ class MetadataLoader { ...@@ -168,12 +168,12 @@ class MetadataLoader {
const showTitle = await Title.findByPk(ids.uuid); const showTitle = await Title.findByPk(ids.uuid);
const [mapping] = await TitleEpisode.findOrBuild({ const [mapping] = await TitleEpisode.findOrBuild({
where: { where: {
parent_id: showTitle.id, show_id: showTitle.id,
season_number: episodeIdentifier.season, season_number: episodeIdentifier.season,
episode_number: episodeIdentifier.episode, episode_number: episodeIdentifier.episode,
}, },
defaults: { defaults: {
episode_id: uuidv4, episode_id: uuidv4(),
} }
}) })
const [episodeTitle] = await Title.upsert({ const [episodeTitle] = await Title.upsert({
...@@ -185,10 +185,10 @@ class MetadataLoader { ...@@ -185,10 +185,10 @@ class MetadataLoader {
runtime: imdbResult.runtime, runtime: imdbResult.runtime,
}, {returning: true}); }, {returning: true});
mapping.air_date = tmdbResult.air_date; mapping.air_date = tmdbResult.air_date;
await mapping.setParent(showTitle, {save: false});
await mapping.save();
await episodeTitle.setParent(mapping, { save: false});
await episodeTitle.save(); await episodeTitle.save();
await mapping.setEpisode(episodeTitle, {save: false});
await mapping.setShow(showTitle, {save: false});
await mapping.save();
await TitleName.destroy({ await TitleName.destroy({
where: { where: {
title_id: episodeTitle.id, title_id: episodeTitle.id,
...@@ -475,7 +475,7 @@ class MetadataLoader { ...@@ -475,7 +475,7 @@ class MetadataLoader {
const isShow = titleType === "tvSeries"; const isShow = titleType === "tvSeries";
const fanartSource = isShow ? const fanartSource = isShow ?
`tv/${ids.tmdb}` : `tv/${ids.tvdb}` :
`movies/${ids.tmdb}`; `movies/${ids.tmdb}`;
const [ const [
......
...@@ -170,7 +170,7 @@ class Backend { ...@@ -170,7 +170,7 @@ class Backend {
indexes: [ indexes: [
{ {
fields: [ fields: [
'parent_id', 'show_id',
{ {
attribute: 'season_number', attribute: 'season_number',
collate: 'C', collate: 'C',
...@@ -186,7 +186,7 @@ class Backend { ...@@ -186,7 +186,7 @@ class Backend {
{ {
using: 'BTREE', using: 'BTREE',
fields: [ fields: [
'parent_id', 'show_id',
{ {
attribute: 'air_date', attribute: 'air_date',
order: 'ASC', order: 'ASC',
...@@ -196,19 +196,33 @@ class Backend { ...@@ -196,19 +196,33 @@ class Backend {
] ]
}); });
TitleEpisode.belongsTo(Title, { TitleEpisode.belongsTo(Title, {
as: "Parent", as: "Show",
foreignKey: { foreignKey: {
name: "parent_id", name: "show_id",
allowNull: false, allowNull: false,
} }
}) });
TitleEpisode.belongsTo(Title, {
as: "Episode",
foreignKey: {
name: "episode_id",
allowNull: false,
}
});
Title.hasMany(TitleEpisode, { Title.hasMany(TitleEpisode, {
as: "Parent", as: "Show",
foreignKey: { foreignKey: {
name: "parent_id", name: "show_id",
allowNull: true, allowNull: true,
} }
}) });
Title.hasOne(TitleEpisode, {
as: "Episode",
foreignKey: {
name: "episode_id",
allowNull: true,
}
});
TitleGenre.init({ TitleGenre.init({
id: { id: {
type: sequelize.DataTypes.UUID, type: sequelize.DataTypes.UUID,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment