Adds Blazor Web App standard login

This commit is contained in:
2025-09-24 21:28:15 +02:00
parent 1152bc4f7e
commit 8ec615496e
141 changed files with 62726 additions and 1354 deletions

View File

@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
namespace WatchLog.Data
{
public class Genre
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(50)]
public required string Name { get; set; }
[Required]
public required DateTime CreationTime { get; set; }
public DateTime? LastChange { get; set; }
// --- Navigation Properties ---
public virtual ICollection<LinkTableGlobalGenre> LinkTableGlobalGenres { get; set; } = new List<LinkTableGlobalGenre>();
}
}

View File

@@ -0,0 +1,45 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace WatchLog.Data
{
public class GlobalEntity
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(200)]
public required string Title { get; set; }
[MaxLength(500)]
public string? PicturePath { get; set; }
[Required]
public required DateTime CreationTime { get; set; }
public DateTime? LastChange { get; set; }
// --- Foreign Keys ---
[Required]
public required int TypeId { get; set; }
[Required]
public required string CreatorId { get; set; }
// --- Navigation Properties ---
[ForeignKey(nameof(TypeId))]
public virtual MediaType MediaType { get; set; } = null!;
[ForeignKey(nameof(CreatorId))]
public virtual ApplicationUser User { get; set; } = null!;
public virtual ICollection<LinkTableGlobalGenre> LinkTableGlobalGenres { get; set; } = new List<LinkTableGlobalGenre>();
public virtual ICollection<PrivateEntity> PrivateEntities { get; set; } = new List<PrivateEntity>();
public virtual ICollection<SharedListEntity> SharedListEntities { get; set; } = new List<SharedListEntity>();
}
}

View File

@@ -0,0 +1,24 @@
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
namespace WatchLog.Data
{
[PrimaryKey(nameof(GlobalEntityId), nameof(GenreId))]
public class LinkTableGlobalGenre
{
// --- Foreign Keys ---
[Column(Order = 0)]
public int GlobalEntityId { get; set; }
[Column(Order = 1)]
public int GenreId { get; set; }
// --- Navigation Properties ---
[ForeignKey(nameof(GlobalEntityId))]
public virtual GlobalEntity GlobalEntity { get; set; } = null!;
[ForeignKey(nameof(GenreId))]
public virtual Genre Genre { get; set; } = null!;
}
}

View File

@@ -0,0 +1,18 @@
using System.ComponentModel.DataAnnotations;
namespace WatchLog.Data
{
public class MediaType
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(50)]
public required string Name { get; set; }
// --- Navigation Property ---
public virtual ICollection<GlobalEntity> GlobalEntities { get; set; } = new List<GlobalEntity>();
}
}

View File

@@ -0,0 +1,22 @@
using System.ComponentModel.DataAnnotations;
namespace WatchLog.Data
{
public class StreamingPlatform
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(100)]
public required string Name { get; set; }
[Required]
public string? PicturePath { get; set; }
[Required]
public required DateTime CreationTime { get; set; }
public DateTime? LastChange { get; set; }
}
}