project reorganized

This commit is contained in:
2024-04-27 22:36:16 +02:00
Unverified
parent fcca2119a5
commit 4b333878b8
233 changed files with 4916 additions and 11471 deletions

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>