Initial VTuber Awards implementation
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
namespace Backend.Domain;
|
||||
|
||||
public sealed class AwardResult
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int SeasonId { get; set; }
|
||||
public Season Season { get; set; } = null!;
|
||||
public int CandidateId { get; set; }
|
||||
public Candidate Candidate { get; set; } = null!;
|
||||
public string CategoryName { get; set; } = string.Empty;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace Backend.Domain;
|
||||
|
||||
public sealed class Candidate
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int SeasonId { get; set; }
|
||||
public Season Season { get; set; } = null!;
|
||||
public int CategoryId { get; set; }
|
||||
public Category Category { get; set; } = null!;
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
public string ChannelSlug { get; set; } = string.Empty;
|
||||
public string Platform { get; set; } = "Twitch";
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace Backend.Domain;
|
||||
|
||||
public sealed class Category
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int SeasonId { get; set; }
|
||||
public Season Season { get; set; } = null!;
|
||||
public string GroupName { get; set; } = string.Empty;
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string Slug { get; set; } = string.Empty;
|
||||
public string Description { get; set; } = string.Empty;
|
||||
public int SortOrder { get; set; }
|
||||
public int MaxNomineesPerUser { get; set; }
|
||||
public ICollection<Candidate> Candidates { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace Backend.Domain;
|
||||
|
||||
public sealed class Nomination
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int SeasonId { get; set; }
|
||||
public Season Season { get; set; } = null!;
|
||||
public int CategoryId { get; set; }
|
||||
public Category Category { get; set; } = null!;
|
||||
public string SubmittedByTwitchId { get; set; } = string.Empty;
|
||||
public int? CandidateId { get; set; }
|
||||
public Candidate? Candidate { get; set; }
|
||||
public string? CandidateText { get; set; }
|
||||
public DateTimeOffset CreatedAt { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
namespace Backend.Domain;
|
||||
|
||||
public sealed class Season
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int Year { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public bool IsCurrent { get; set; }
|
||||
public bool IsCommunityOnly { get; set; }
|
||||
public string CurrentPhase { get; set; } = string.Empty;
|
||||
public DateOnly NominationStartsAt { get; set; }
|
||||
public DateOnly NominationEndsAt { get; set; }
|
||||
public DateOnly VotingStartsAt { get; set; }
|
||||
public DateOnly VotingEndsAt { get; set; }
|
||||
public DateOnly ReviewStartsAt { get; set; }
|
||||
public DateOnly ReviewEndsAt { get; set; }
|
||||
public DateOnly ShowDate { get; set; }
|
||||
public ICollection<Category> Categories { get; set; } = [];
|
||||
public ICollection<AwardResult> Results { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace Backend.Domain;
|
||||
|
||||
public sealed class UserSession
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public string SessionToken { get; set; } = string.Empty;
|
||||
public string TwitchUserId { get; set; } = string.Empty;
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
public string Role { get; set; } = "viewer";
|
||||
public DateTimeOffset CreatedAt { get; set; }
|
||||
public DateTimeOffset LastSeenAt { get; set; }
|
||||
public bool IsActive { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace Backend.Domain;
|
||||
|
||||
public sealed class VoteBallot
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int SeasonId { get; set; }
|
||||
public Season Season { get; set; } = null!;
|
||||
public string SubmittedByTwitchId { get; set; } = string.Empty;
|
||||
public string Status { get; set; } = "draft";
|
||||
public DateTimeOffset SubmittedAt { get; set; }
|
||||
public ICollection<VoteEntry> Entries { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace Backend.Domain;
|
||||
|
||||
public sealed class VoteEntry
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int BallotId { get; set; }
|
||||
public VoteBallot Ballot { get; set; } = null!;
|
||||
public int CategoryId { get; set; }
|
||||
public Category Category { get; set; } = null!;
|
||||
public int CandidateId { get; set; }
|
||||
public Candidate Candidate { get; set; } = null!;
|
||||
}
|
||||
Reference in New Issue
Block a user