[Feature] Links to related scenes
Is your feature request related to a problem? Please describe. There are times when studios will release multiple versions of the same scene (Dry/Wet versions), or release compilations of multiple scenes. This would ideally be present in the Stash client as well but it makes sense to be introduced to Stash-box first.
Describe the solution you'd like It would be beneficial to be able to link the scenes. A compilation can link to all the scenes included. Scenes could possibly be linked to any compilation they're apart of. Different versions could be linked to each other. Scenes as part of a series (or movie) could be linked to each other.
This would be a many-to-many relationship with a connection type. Types could be, "Includes", "Included in", "Alternate version", "Re-release", "Re-release of", "Remaster", "Remaster of", etc.
The page for this would be a new tab that looks like the URLs one where you can select the connection type and then the scene in the field.
Additional context This request is semi-related to #663 but aims to link alternate versions of the same scene as opposed to re-releases, however, this could also be used for that purpose.
I proposed a DB Schema for this in #663 with a more complex design that would also address sub-clips with time-ranges and multi-clip scenes based StashApp File Design Draft: https://github.com/stashapp/stash/discussions/1958
Here's a simplified schema without the sub-clips, very stright-forward Joint Table implementing many-to-many relation between scenes:
And source PlantUML code
@startuml
class Scene
class SceneRelations{
relationType: string
}
Scene "1" <-- "1" SceneRelations: scene
Scene "1" --> "1" SceneRelations: scene
@enduml
It can be easily pre-populated based on existing StashDB by checking hash-matches between scenes.
Approval workflow and user interface would be the bulk of the work on this feature