Linked Series (#1230)
* Implemented the ability to link different series together through Edit Series. CSS pending. * Fixed up the css for related cards to show the relation * Working on making all tabs in edit seris modal save in one go. Taking a break. * Some fixes for Robbie to help with styling on * Linked series pill, center library * Centering library detail and related pill spacing - Library detail cards are now centered if total number of items is > 6 or if mobile. - Added ability to determine if mobile (viewport width <= 480px - Fixed related card spacing - Fixed related card pill spacing * Updating relation form spacing * Fixed a bug in card detail layout when there is no pagination, we create one in a way that all items render at once. * Only auto-close side nav on phones, not tablets * Fixed a bug where we had flipped state on sideNavCollapsed$ * Cleaned up some misleading comments * Implemented RBS back in and now if you have a relationship besides prequel/sequel, the target series will show a link back to it's parent. * Added Parentto pipe * Missed a relationship type Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
This commit is contained in:
parent
7253765f1d
commit
4206ae3e22
47 changed files with 2571 additions and 195 deletions
66
API/Entities/Enums/RelationKind.cs
Normal file
66
API/Entities/Enums/RelationKind.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
using System.ComponentModel;
|
||||
|
||||
namespace API.Entities.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// Represents a relationship between Series
|
||||
/// </summary>
|
||||
public enum RelationKind
|
||||
{
|
||||
/// <summary>
|
||||
/// Story that occurred before the original.
|
||||
/// </summary>
|
||||
[Description("Prequel")]
|
||||
Prequel = 1,
|
||||
/// <summary>
|
||||
/// Direct continuation of the story.
|
||||
/// </summary>
|
||||
[Description("Sequel")]
|
||||
Sequel = 2,
|
||||
/// <summary>
|
||||
/// Uses characters of a different series, but is not an alternate setting or story.
|
||||
/// </summary>
|
||||
[Description("Spin Off")]
|
||||
SpinOff = 3,
|
||||
/// <summary>
|
||||
/// Manga/Anime/Light Novel adaptation
|
||||
/// </summary>
|
||||
[Description("Adaptation")]
|
||||
Adaptation = 4,
|
||||
/// <summary>
|
||||
/// Takes place sometime during the parent storyline.
|
||||
/// </summary>
|
||||
[Description("Side Story")]
|
||||
SideStory = 5,
|
||||
/// <summary>
|
||||
/// When characters appear in both series, but is not a spin-off
|
||||
/// </summary>
|
||||
[Description("Character")]
|
||||
Character = 6,
|
||||
/// <summary>
|
||||
/// When the story contains another story, useful for One-Shots
|
||||
/// </summary>
|
||||
[Description("Contains")]
|
||||
Contains = 7,
|
||||
/// <summary>
|
||||
/// When nothing else fits
|
||||
/// </summary>
|
||||
[Description("Other")]
|
||||
Other = 8,
|
||||
/// <summary>
|
||||
/// Same universe/world/reality/timeline, completely different characters
|
||||
/// </summary>
|
||||
[Description("Alternative Setting")]
|
||||
AlternativeSetting = 9,
|
||||
/// <summary>
|
||||
/// Same setting, same characters, story is told differently
|
||||
/// </summary>
|
||||
[Description("Alternative Version")]
|
||||
AlternativeVersion = 10,
|
||||
/// <summary>
|
||||
/// Doujinshi or Fan work
|
||||
/// </summary>
|
||||
[Description("Doujinshi")]
|
||||
Doujinshi = 11
|
||||
|
||||
}
|
||||
25
API/Entities/Metadata/SeriesRelation.cs
Normal file
25
API/Entities/Metadata/SeriesRelation.cs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using API.Entities.Enums;
|
||||
|
||||
namespace API.Entities.Metadata;
|
||||
|
||||
/// <summary>
|
||||
/// A relation flows between one series and another.
|
||||
/// Series ---kind---> target
|
||||
/// </summary>
|
||||
public class SeriesRelation
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public RelationKind RelationKind { get; set; }
|
||||
|
||||
public virtual Series TargetSeries { get; set; }
|
||||
/// <summary>
|
||||
/// A is Sequel to B. In this example, TargetSeries is A. B will hold the foreign key.
|
||||
/// </summary>
|
||||
public int TargetSeriesId { get; set; }
|
||||
|
||||
// Relationships
|
||||
public virtual Series Series { get; set; }
|
||||
public int SeriesId { get; set; }
|
||||
}
|
||||
|
|
@ -66,9 +66,18 @@ public class Series : IEntityDate
|
|||
public DateTime LastChapterAdded { get; set; }
|
||||
|
||||
public SeriesMetadata Metadata { get; set; }
|
||||
|
||||
public ICollection<AppUserRating> Ratings { get; set; } = new List<AppUserRating>();
|
||||
public ICollection<AppUserProgress> Progress { get; set; } = new List<AppUserProgress>();
|
||||
|
||||
/// <summary>
|
||||
/// Relations to other Series, like Sequels, Prequels, etc
|
||||
/// </summary>
|
||||
/// <remarks>1 to Many relationship</remarks>
|
||||
public virtual ICollection<SeriesRelation> Relations { get; set; } = new List<SeriesRelation>();
|
||||
public virtual ICollection<SeriesRelation> RelationOf { get; set; } = new List<SeriesRelation>();
|
||||
|
||||
|
||||
// Relationships
|
||||
public List<Volume> Volumes { get; set; }
|
||||
public Library Library { get; set; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue