Refactoring, database structure changed
This commit is contained in:
47
WatchIt.Database/Model/Media/Medium.cs
Normal file
47
WatchIt.Database/Model/Media/Medium.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using WatchIt.Database.Model.Genres;
|
||||
using WatchIt.Database.Model.Photos;
|
||||
using WatchIt.Database.Model.Roles;
|
||||
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public abstract class Medium
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long Id { get; set; }
|
||||
public MediumType Type { get; set; }
|
||||
public string Title { get; set; } = default!;
|
||||
public string? OriginalTitle { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public short? Duration { get; set; }
|
||||
public DateOnly? ReleaseDate { get; set; }
|
||||
public uint Version { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
// Genres
|
||||
public virtual IEnumerable<MediumGenre> GenresRelationshipObjects { get; set; } = new List<MediumGenre>();
|
||||
public virtual IEnumerable<Genre> Genres { get; set; } = new List<Genre>();
|
||||
|
||||
// Picture
|
||||
public virtual MediumPicture? Picture { get; set; }
|
||||
|
||||
// Photos
|
||||
public virtual IEnumerable<Photo> Photos { get; set; } = new List<Photo>();
|
||||
|
||||
// View counts
|
||||
public virtual IEnumerable<MediumViewCount> ViewCounts { get; set; } = new List<MediumViewCount>();
|
||||
|
||||
// Ratings
|
||||
public virtual IEnumerable<MediumRating> Ratings { get; set; } = new List<MediumRating>();
|
||||
public virtual IEnumerable<Accounts.Account> RatedBy { get; set; } = new List<Accounts.Account>();
|
||||
|
||||
// Roles
|
||||
public virtual IEnumerable<Role> Roles { get; set; } = new List<Role>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
26
WatchIt.Database/Model/Media/MediumGenre.cs
Normal file
26
WatchIt.Database/Model/Media/MediumGenre.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using WatchIt.Database.Model.Genres;
|
||||
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediumGenre
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long MediumId { get; set; }
|
||||
public short GenreId { get; set; }
|
||||
public uint Version { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
// Medium
|
||||
public virtual Medium Medium { get; set; } = default!;
|
||||
|
||||
// Genre
|
||||
public virtual Genre Genre { get; set; } = default!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
10
WatchIt.Database/Model/Media/MediumMovie.cs
Normal file
10
WatchIt.Database/Model/Media/MediumMovie.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediumMovie : Medium
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public decimal? Budget { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
22
WatchIt.Database/Model/Media/MediumPicture.cs
Normal file
22
WatchIt.Database/Model/Media/MediumPicture.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediumPicture : IImageEntity
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long MediumId { get; set; }
|
||||
public byte[] Image { get; set; } = default!;
|
||||
public string MimeType { get; set; } = default!;
|
||||
public DateTimeOffset UploadDate { get; set; }
|
||||
public uint Version { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Medium Medium { get; set; } = default!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
26
WatchIt.Database/Model/Media/MediumRating.cs
Normal file
26
WatchIt.Database/Model/Media/MediumRating.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediumRating : IRatingEntity
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long AccountId { get; set; }
|
||||
public long MediumId { get; set; }
|
||||
public byte Rating { get; set; }
|
||||
public DateTime Date { get; set; }
|
||||
public uint Version { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
// Account
|
||||
public virtual Accounts.Account Account { get; set; } = default!;
|
||||
|
||||
// Medium
|
||||
public virtual Medium Medium { get; set; } = default!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
10
WatchIt.Database/Model/Media/MediumSeries.cs
Normal file
10
WatchIt.Database/Model/Media/MediumSeries.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediumSeries : Medium
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public bool HasEnded { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
7
WatchIt.Database/Model/Media/MediumType.cs
Normal file
7
WatchIt.Database/Model/Media/MediumType.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public enum MediumType : byte
|
||||
{
|
||||
Movie = 0,
|
||||
Series = 1,
|
||||
}
|
||||
23
WatchIt.Database/Model/Media/MediumViewCount.cs
Normal file
23
WatchIt.Database/Model/Media/MediumViewCount.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using WatchIt.Database.Model.Media;
|
||||
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediumViewCount : IViewCountEntity
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long MediumId { get; set; }
|
||||
public DateOnly Date { get; set; }
|
||||
public long ViewCount { get; set; }
|
||||
public uint Version { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Medium Medium { get; set; } = default!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user