project reorganized
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
using WatchIt.Database.Model.Common;
|
||||
using WatchIt.Database.Model.Media;
|
||||
using WatchIt.Database.Model.Rating;
|
||||
|
||||
namespace WatchIt.Database.Model.Account;
|
||||
|
||||
public class Account
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long Id { get; set; }
|
||||
public required string Username { get; set; }
|
||||
public required string Email { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public short? GenderId { get; set; }
|
||||
public Guid? ProfilePictureId { get; set; }
|
||||
public Guid? BackgroundPictureId { get; set; }
|
||||
public required byte[] Password { get; set; }
|
||||
public required string LeftSalt { get; set; }
|
||||
public required string RightSalt { get; set; }
|
||||
public bool IsAdmin { get; set; } = false;
|
||||
public DateTime CreationDate { get; set; }
|
||||
public DateTime LastActive { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Gender? Gender { get; set; }
|
||||
public virtual AccountProfilePicture? ProfilePicture { get; set; }
|
||||
public virtual MediaPhotoImage? BackgroundPicture { get; set; }
|
||||
|
||||
public virtual IEnumerable<RatingMedia> RatingMedia { get; set; } = new List<RatingMedia>();
|
||||
public virtual IEnumerable<RatingPersonActorRole> RatingPersonActorRole { get; set; } = new List<RatingPersonActorRole>();
|
||||
public virtual IEnumerable<RatingPersonCreatorRole> RatingPersonCreatorRole { get; set; } = new List<RatingPersonCreatorRole>();
|
||||
public virtual IEnumerable<RatingMediaSeriesSeason> RatingMediaSeriesSeason { get; set; } = new List<RatingMediaSeriesSeason>();
|
||||
public virtual IEnumerable<RatingMediaSeriesEpisode> RatingMediaSeriesEpisode { get; set; } = new List<RatingMediaSeriesEpisode>();
|
||||
|
||||
public virtual IEnumerable<AccountRefreshToken> AccountRefreshTokens { get; set; } = new List<AccountRefreshToken>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace WatchIt.Database.Model.Account;
|
||||
|
||||
public class AccountProfilePicture
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required byte[] Image { get; set; }
|
||||
public required string MimeType { get; set; }
|
||||
public DateTime UploadDate { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Account Account { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace WatchIt.Database.Model.Account;
|
||||
|
||||
public class AccountRefreshToken
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required long AccountId { get; set; }
|
||||
public required DateTime ExpirationDate { get; set; }
|
||||
public required bool IsExtendable { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Account Account { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using WatchIt.Database.Model.Media;
|
||||
|
||||
namespace WatchIt.Database.Model.Common;
|
||||
|
||||
public class Country
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public short Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public bool IsHistorical { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual IEnumerable<MediaProductionCountry> MediaProductionCountries { get; set; } = new List<MediaProductionCountry>();
|
||||
public virtual IEnumerable<Media.Media> MediaProduction { get; set; } = new List<Media.Media>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace WatchIt.Database.Model.Common;
|
||||
|
||||
public class Gender
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public short Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using WatchIt.Database.Model.Media;
|
||||
|
||||
namespace WatchIt.Database.Model.Common;
|
||||
|
||||
public class Genre
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public short Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual IEnumerable<MediaGenre> MediaGenres { get; set; } = new List<MediaGenre>();
|
||||
public virtual IEnumerable<Media.Media> Media { get; set; } = new List<Media.Media>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using WatchIt.Database.Model.Common;
|
||||
using WatchIt.Database.Model.Person;
|
||||
using WatchIt.Database.Model.Rating;
|
||||
using WatchIt.Database.Model.ViewCount;
|
||||
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class Media
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long Id { get; set; }
|
||||
public required string Title { get; set; }
|
||||
public string? OriginalTitle { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public DateOnly? ReleaseDate { get; set; }
|
||||
public short? Length { get; set; }
|
||||
public Guid? MediaPosterImageId { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual MediaPosterImage? MediaPosterImage { get; set; }
|
||||
|
||||
public virtual IEnumerable<MediaPhotoImage> MediaPhotoImages { get; set; } = new List<MediaPhotoImage>();
|
||||
|
||||
public virtual IEnumerable<MediaGenre> MediaGenres { get; set; } = new List<MediaGenre>();
|
||||
public virtual IEnumerable<Genre> Genres { get; set; } = new List<Genre>();
|
||||
|
||||
public virtual IEnumerable<MediaProductionCountry> MediaProductionCountries { get; set; } = new List<MediaProductionCountry>();
|
||||
public virtual IEnumerable<Country> ProductionCountries { get; set; } = new List<Country>();
|
||||
|
||||
public virtual IEnumerable<PersonActorRole> PersonActorRoles { get; set; } = new List<PersonActorRole>();
|
||||
|
||||
public virtual IEnumerable<PersonCreatorRole> PersonCreatorRoles { get; set; } = new List<PersonCreatorRole>();
|
||||
|
||||
public virtual IEnumerable<RatingMedia> RatingMedia { get; set; } = new List<RatingMedia>();
|
||||
|
||||
public virtual IEnumerable<ViewCountMedia> ViewCountsMedia { get; set; } = new List<ViewCountMedia>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using WatchIt.Database.Model.Common;
|
||||
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediaGenre
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public required long MediaId { get; set; }
|
||||
public required short GenreId { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Media Media { get; set; } = null!;
|
||||
public virtual Genre Genre { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediaMovie
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long Id { get; set; }
|
||||
public decimal? Budget { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Media Media { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediaPhotoImage
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required long MediaId { get; set; }
|
||||
public required byte[] Image { get; set; }
|
||||
public required string MimeType { get; set; }
|
||||
public DateTime UploadDate { get; set; }
|
||||
public bool IsMediaBackground { get; set; }
|
||||
public bool IsUniversalBackground { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Media Media { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediaPosterImage
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required byte[] Image { get; set; }
|
||||
public required string MimeType { get; set; }
|
||||
public required DateTime UploadDate { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Media Media { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using WatchIt.Database.Model.Common;
|
||||
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediaProductionCountry
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public required long MediaId { get; set; }
|
||||
public required short CountryId { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Media Media { get; set; } = null!;
|
||||
public virtual Country Country { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediaSeries
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public required long Id { get; set; }
|
||||
public bool HasEnded { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Media Media { get; set; } = null!;
|
||||
public virtual IEnumerable<MediaSeriesSeason> MediaSeriesSeasons { get; set; } = new List<MediaSeriesSeason>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using WatchIt.Database.Model.Rating;
|
||||
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediaSeriesEpisode
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required Guid MediaSeriesSeasonId { get; set; }
|
||||
public required short Number { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public bool IsSpecial { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual MediaSeriesSeason MediaSeriesSeason { get; set; } = null!;
|
||||
public virtual IEnumerable<RatingMediaSeriesEpisode> RatingMediaSeriesEpisode { get; set; } = new List<RatingMediaSeriesEpisode>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using WatchIt.Database.Model.Rating;
|
||||
|
||||
namespace WatchIt.Database.Model.Media;
|
||||
|
||||
public class MediaSeriesSeason
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required long MediaSeriesId { get; set; }
|
||||
public required short Number { get; set; }
|
||||
public string? Name { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual MediaSeries MediaSeries { get; set; } = null!;
|
||||
public virtual IEnumerable<MediaSeriesEpisode> MediaSeriesEpisodes { get; set; } = new List<MediaSeriesEpisode>();
|
||||
public virtual IEnumerable<RatingMediaSeriesSeason> RatingMediaSeriesSeason { get; set; } = new List<RatingMediaSeriesSeason>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using WatchIt.Database.Model.Common;
|
||||
using WatchIt.Database.Model.ViewCount;
|
||||
|
||||
namespace WatchIt.Database.Model.Person;
|
||||
|
||||
public class Person
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public long Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public string? FullName { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public DateOnly? BirthDate { get; set; }
|
||||
public DateOnly? DeathDate { get; set; }
|
||||
public short? GenderId { get; set; }
|
||||
public Guid? PersonPhotoId { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Gender? Gender { get; set; }
|
||||
public virtual PersonPhotoImage? PersonPhoto { get; set; }
|
||||
public virtual IEnumerable<PersonActorRole> PersonActorRoles { get; set; } = new List<PersonActorRole>();
|
||||
public virtual IEnumerable<PersonCreatorRole> PersonCreatorRoles { get; set; } = new List<PersonCreatorRole>();
|
||||
public virtual IEnumerable<ViewCountPerson> ViewCountsPerson { get; set; } = new List<ViewCountPerson>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using WatchIt.Database.Model.Rating;
|
||||
|
||||
namespace WatchIt.Database.Model.Person;
|
||||
|
||||
public class PersonActorRole
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required long PersonId { get; set; }
|
||||
public required long MediaId { get; set; }
|
||||
public required short PersonActorRoleTypeId { get; set; }
|
||||
public required string RoleName { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Person Person { get; set; } = null!;
|
||||
public virtual Media.Media Media { get; set; } = null!;
|
||||
public virtual PersonActorRoleType PersonActorRoleType { get; set; } = null!;
|
||||
|
||||
public virtual IEnumerable<RatingPersonActorRole> RatingPersonActorRole { get; set; } = new List<RatingPersonActorRole>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace WatchIt.Database.Model.Person;
|
||||
|
||||
public class PersonActorRoleType
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public short Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
using WatchIt.Database.Model.Rating;
|
||||
|
||||
namespace WatchIt.Database.Model.Person;
|
||||
|
||||
public class PersonCreatorRole
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required long PersonId { get; set; }
|
||||
public required long MediaId { get; set; }
|
||||
public required short PersonCreatorRoleTypeId { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Person Person { get; set; } = null!;
|
||||
public virtual Media.Media Media { get; set; } = null!;
|
||||
public virtual PersonCreatorRoleType PersonCreatorRoleType { get; set; } = null!;
|
||||
public virtual IEnumerable<RatingPersonCreatorRole> RatingPersonCreatorRole { get; set; } = new List<RatingPersonCreatorRole>();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace WatchIt.Database.Model.Person;
|
||||
|
||||
public class PersonCreatorRoleType
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public short Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace WatchIt.Database.Model.Person;
|
||||
|
||||
public class PersonPhotoImage
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required byte[] Image { get; set; }
|
||||
public required string MimeType { get; set; }
|
||||
public DateTime UploadDate { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Person Person { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace WatchIt.Database.Model.Rating;
|
||||
|
||||
public class RatingMedia
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required long MediaId { get; set; }
|
||||
public required long AccountId { get; set; }
|
||||
public required short Rating { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Model.Media.Media Media { get; set; } = null!;
|
||||
public virtual Model.Account.Account Account { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using WatchIt.Database.Model.Media;
|
||||
|
||||
namespace WatchIt.Database.Model.Rating;
|
||||
|
||||
public class RatingMediaSeriesEpisode
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required Guid MediaSeriesEpisodeId { get; set; }
|
||||
public required long AccountId { get; set; }
|
||||
public required short Rating { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual MediaSeriesEpisode MediaSeriesEpisode { get; set; } = null!;
|
||||
public virtual Account.Account Account { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using WatchIt.Database.Model.Media;
|
||||
|
||||
namespace WatchIt.Database.Model.Rating;
|
||||
|
||||
public class RatingMediaSeriesSeason
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required Guid MediaSeriesSeasonId { get; set; }
|
||||
public required long AccountId { get; set; }
|
||||
public required short Rating { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual MediaSeriesSeason MediaSeriesSeason { get; set; } = null!;
|
||||
public virtual Account.Account Account { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using WatchIt.Database.Model.Person;
|
||||
|
||||
namespace WatchIt.Database.Model.Rating;
|
||||
|
||||
public class RatingPersonActorRole
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required Guid PersonActorRoleId { get; set; }
|
||||
public required long AccountId { get; set; }
|
||||
public required short Rating { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual PersonActorRole PersonActorRole { get; set; } = null!;
|
||||
public virtual Account.Account Account { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using WatchIt.Database.Model.Person;
|
||||
|
||||
namespace WatchIt.Database.Model.Rating;
|
||||
|
||||
public class RatingPersonCreatorRole
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required Guid PersonCreatorRoleId { get; set; }
|
||||
public required long AccountId { get; set; }
|
||||
public required short Rating { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual PersonCreatorRole PersonCreatorRole { get; set; } = null!;
|
||||
public virtual Account.Account Account { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace WatchIt.Database.Model.ViewCount;
|
||||
|
||||
public class ViewCountMedia
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required long MediaId { get; set; }
|
||||
public DateOnly Date { get; set; }
|
||||
public long ViewCount { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Media.Media Media { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace WatchIt.Database.Model.ViewCount;
|
||||
|
||||
public class ViewCountPerson
|
||||
{
|
||||
#region PROPERTIES
|
||||
|
||||
public Guid Id { get; set; }
|
||||
public required long PersonId { get; set; }
|
||||
public DateOnly Date { get; set; }
|
||||
public long ViewCount { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region NAVIGATION
|
||||
|
||||
public virtual Person.Person Person { get; set; } = null!;
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user