Smart Filters & Dashboard Customization (#2282)
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
This commit is contained in:
parent
3d501c9532
commit
84f85b4f24
92 changed files with 7149 additions and 555 deletions
|
@ -67,6 +67,15 @@ public class AppUser : IdentityUser<int>, IHasConcurrencyToken
|
|||
/// A list of Series the user doesn't want scrobbling for
|
||||
/// </summary>
|
||||
public ICollection<ScrobbleHold> ScrobbleHolds { get; set; } = null!;
|
||||
/// <summary>
|
||||
/// A collection of user Smart Filters for their account
|
||||
/// </summary>
|
||||
public ICollection<AppUserSmartFilter> SmartFilters { get; set; } = null!;
|
||||
|
||||
/// <summary>
|
||||
/// An ordered list of Streams (pre-configured) or Smart Filters that makes up the User's Dashboard
|
||||
/// </summary>
|
||||
public IList<AppUserDashboardStream> DashboardStreams { get; set; } = null!;
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
|
|
29
API/Entities/AppUserDashboardStream.cs
Normal file
29
API/Entities/AppUserDashboardStream.cs
Normal file
|
@ -0,0 +1,29 @@
|
|||
using API.Entities.Enums;
|
||||
|
||||
|
||||
namespace API.Entities;
|
||||
|
||||
public class AppUserDashboardStream
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
/// <summary>
|
||||
/// Is System Provided
|
||||
/// </summary>
|
||||
public bool IsProvided { get; set; }
|
||||
/// <summary>
|
||||
/// Sort Order on the Dashboard
|
||||
/// </summary>
|
||||
public int Order { get; set; }
|
||||
/// <summary>
|
||||
/// For system provided
|
||||
/// </summary>
|
||||
public DashboardStreamType StreamType { get; set; }
|
||||
public bool Visible { get; set; }
|
||||
/// <summary>
|
||||
/// If Not IsProvided, the appropriate smart filter
|
||||
/// </summary>
|
||||
public AppUserSmartFilter? SmartFilter { get; set; }
|
||||
public int AppUserId { get; set; }
|
||||
public AppUser AppUser { get; set; }
|
||||
}
|
19
API/Entities/AppUserSmartFilter.cs
Normal file
19
API/Entities/AppUserSmartFilter.cs
Normal file
|
@ -0,0 +1,19 @@
|
|||
using API.DTOs.Filtering.v2;
|
||||
|
||||
namespace API.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// Represents a Saved user Filter
|
||||
/// </summary>
|
||||
public class AppUserSmartFilter
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
/// <summary>
|
||||
/// This is the Filter url encoded. It is decoded and reconstructed into a <see cref="FilterV2Dto"/>
|
||||
/// </summary>
|
||||
public required string Filter { get; set; }
|
||||
|
||||
public int AppUserId { get; set; }
|
||||
public AppUser AppUser { get; set; }
|
||||
}
|
14
API/Entities/Enums/DashboardStreamType.cs
Normal file
14
API/Entities/Enums/DashboardStreamType.cs
Normal file
|
@ -0,0 +1,14 @@
|
|||
namespace API.Entities.Enums;
|
||||
|
||||
public enum DashboardStreamType
|
||||
{
|
||||
OnDeck = 1,
|
||||
RecentlyUpdated = 2,
|
||||
NewlyAdded = 3,
|
||||
SmartFilter = 4,
|
||||
/// <summary>
|
||||
/// More In Genre
|
||||
/// </summary>
|
||||
MoreInGenre = 5
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue