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 {
const showTitle = await Title.findByPk(ids.uuid);
const [mapping] = await TitleEpisode.findOrBuild({
where: {
parent_id: showTitle.id,
show_id: showTitle.id,
season_number: episodeIdentifier.season,
episode_number: episodeIdentifier.episode,
},
defaults: {
episode_id: uuidv4,
episode_id: uuidv4(),
}
})
const [episodeTitle] = await Title.upsert({
......@@ -185,10 +185,10 @@ class MetadataLoader {
runtime: imdbResult.runtime,
}, {returning: true});
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 mapping.setEpisode(episodeTitle, {save: false});
await mapping.setShow(showTitle, {save: false});
await mapping.save();
await TitleName.destroy({
where: {
title_id: episodeTitle.id,
......@@ -475,7 +475,7 @@ class MetadataLoader {
const isShow = titleType === "tvSeries";
const fanartSource = isShow ?
`tv/${ids.tmdb}` :
`tv/${ids.tvdb}` :
`movies/${ids.tmdb}`;
const [
......
......@@ -170,7 +170,7 @@ class Backend {
indexes: [
{
fields: [
'parent_id',
'show_id',
{
attribute: 'season_number',
collate: 'C',
......@@ -186,7 +186,7 @@ class Backend {
{
using: 'BTREE',
fields: [
'parent_id',
'show_id',
{
attribute: 'air_date',
order: 'ASC',
......@@ -196,19 +196,33 @@ class Backend {
]
});
TitleEpisode.belongsTo(Title, {
as: "Parent",
as: "Show",
foreignKey: {
name: "parent_id",
name: "show_id",
allowNull: false,
}
})
});
TitleEpisode.belongsTo(Title, {
as: "Episode",
foreignKey: {
name: "episode_id",
allowNull: false,
}
});
Title.hasMany(TitleEpisode, {
as: "Parent",
as: "Show",
foreignKey: {
name: "parent_id",
name: "show_id",
allowNull: true,
}
})
});
Title.hasOne(TitleEpisode, {
as: "Episode",
foreignKey: {
name: "episode_id",
allowNull: true,
}
});
TitleGenre.init({
id: {
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