refactor: shoved in what i wanted to shove

This commit is contained in:
2025-09-30 18:41:38 +03:00
parent 8c0809d620
commit fc042d126a
64 changed files with 960 additions and 219 deletions

View File

@@ -1,13 +0,0 @@
namespace LctMonolith.Models;
public class Artifact
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; } = null!;
public string? Description { get; set; }
public string? ImageUrl { get; set; }
public ArtifactRarity Rarity { get; set; }
public ICollection<UserArtifact> Users { get; set; } = new List<UserArtifact>();
public ICollection<MissionArtifactReward> MissionRewards { get; set; } = new List<MissionArtifactReward>();
}

View File

@@ -1,3 +0,0 @@
namespace LctMonolith.Models;
public enum ArtifactRarity { Common = 0, Rare = 1, Epic = 2, Legendary = 3 }

View File

@@ -1,11 +0,0 @@
namespace LctMonolith.Models;
public class Competency
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; } = null!;
public string? Description { get; set; }
public ICollection<UserCompetency> UserCompetencies { get; set; } = new List<UserCompetency>();
public ICollection<MissionCompetencyReward> MissionRewards { get; set; } = new List<MissionCompetencyReward>();
public ICollection<RankRequiredCompetency> RankRequirements { get; set; } = new List<RankRequiredCompetency>();
}

View File

@@ -1,7 +1,6 @@
using System.Diagnostics;
using Microsoft.AspNetCore.Identity;
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public class AppUser : IdentityUser<Guid>
{

View File

@@ -0,0 +1,9 @@
namespace LctMonolith.Models.Database;
public class AuditableEntity
{
public DateTimeOffset CreatedOn { get; set; }
public string CreatedBy { get; set; } = string.Empty;
public DateTimeOffset UpdatedOn { get; set; }
public string UpdatedBy { get; set; } = string.Empty;
}

View File

@@ -0,0 +1,16 @@
namespace LctMonolith.Models.Database;
public class Dialogue
{
public Guid Id { get; set; }
public Guid MissionId { get; set; }
public required Mission Mission { get; set; }
public Guid InitialDialogueMessageId { get; set; }
public Dialogue? InitialDialogueMessage { get; set; }
public Guid InterimDialogueMessageId { get; set; }
public Dialogue? InterimDialogueMessage { get; set; }
public Guid EndDialogueMessageId { get; set; }
public Dialogue? EndDialogueMessage { get; set; }
}

View File

@@ -0,0 +1,27 @@
using LctMonolith.Models.Enums;
namespace LctMonolith.Models.Database;
public class DialogueMessage
{
public Guid Id { get; set; }
public Character CharacterLeft { get; set; } = Character.None;
public Character CharacterRight { get; set; } = Character.None;
public CharacterAnimation CharacterLeftAnim { get; set; } = CharacterAnimation.Neutral;
public CharacterAnimation CharacterRightAnim { get; set; } = CharacterAnimation.Neutral;
public string CharacterLeftMessage { get; set; } = string.Empty;
public string CharacterRightMessage { get; set; } = string.Empty;
public MessageStyle CharacterLeftMessageStyle { get; set; } = MessageStyle.Normal;
public MessageStyle CharacterRightMessageStyle { get; set; } = MessageStyle.Normal;
public bool AllowMessageAi { get; set; }
public string MessageAiButtonText { get; set; } = string.Empty;
public Guid InitialDialogueId { get; set; }
public Dialogue? InitialDialogue { get; set; }
public Guid InterimDialogueId { get; set; }
public Dialogue? InterimDialogue { get; set; }
public Guid EndDialogueId { get; set; }
public Dialogue? EndDialogue { get; set; }
public ICollection<DialogueMessageResponseOption> DialogueMessageResponseOptions = new List<DialogueMessageResponseOption>();
}

View File

@@ -0,0 +1,16 @@
using LctMonolith.Models.Enums;
namespace LctMonolith.Models.Database;
public class DialogueMessageResponseOption
{
public Guid Id { get; set; }
public string Message { get; set; } = "...";
public MessageStyle MessageStyle { get; set; } = MessageStyle.Normal;
public int z { get; set; }
public Guid ParentDialogueMessageId { get; set; }
public required DialogueMessage ParentDialogueMessage { get; set; }
public Guid DestinationDialogueMessageId { get; set; }
public DialogueMessage? DestinationDialogueMessage { get; set; }
}

View File

@@ -1,4 +1,4 @@
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public class EventLog
{

View File

@@ -0,0 +1,24 @@
namespace LctMonolith.Models.Database;
public class Mission
{
public Guid Id { get; set; }
public string Title { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public MissionCategory? MissionCategory { get; set; }
public long MissionCategoryId { get; set; }
public Mission? ParentMission { get; set; }
public long ParentMissionId { get; set; }
public int ExpReward { get; set; }
public int ManaReward { get; set; }
public Guid DialogueId { get; set; }
public Dialogue? Dialogue { get; set; }
public ICollection<Mission> ChildMissions { get; set; } = new List<Mission>();
public ICollection<PlayerMission> PlayerMissions { get; set; } = new List<PlayerMission>();
public ICollection<MissionItemReward> MissionItemRewards { get; set; } = new List<MissionItemReward>();
public ICollection<MissionSkillReward> MissionSkillRewards { get; set; } = new List<MissionSkillReward>();
public ICollection<MissionRankRule> MissionRankRules { get; set; } = new List<MissionRankRule>();
public ICollection<RankMissionRule> RankMissionRules { get; set; } = new List<RankMissionRule>();
}

View File

@@ -0,0 +1,9 @@
namespace LctMonolith.Models.Database;
public class MissionCategory
{
public Guid Id { get; set; }
public string Title { get; set; } = string.Empty;
public ICollection<Mission> Missions { get; set; } = new List<Mission>();
}

View File

@@ -0,0 +1,9 @@
namespace LctMonolith.Models.Database;
public class MissionItemReward
{
public Guid Id { get; set; }
public Guid ItemId { get; set; }
public Guid MissionId { get; set; }
public required Mission Mission { get; set; }
}

View File

@@ -1,9 +1,10 @@
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public class RankRequiredMission
public class MissionRankRule
{
public Guid RankId { get; set; }
public Rank Rank { get; set; } = null!;
public Guid Id { get; set; }
public Guid MissionId { get; set; }
public Mission Mission { get; set; } = null!;
public Guid RankId { get; set; }
public Rank Rank { get; set; } = null!;
}

View File

@@ -0,0 +1,11 @@
namespace LctMonolith.Models.Database;
public class MissionSkillReward
{
public Guid Id { get; set; }
public Guid MissionId { get; set; }
public Mission Mission { get; set; } = null!;
public long SkillId { get; set; }
public Skill Skill { get; set; } = null!;
public int Value { get; set; }
}

View File

@@ -1,4 +1,4 @@
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public class Notification
{

View File

@@ -0,0 +1,13 @@
namespace LctMonolith.Models.Database;
public class Player
{
public Guid Id { get; set; }
public Guid UserId { get; set; }
public Rank? Rank { get; set; }
public Guid RankId {get; set; }
public int Experience { get; set; }
public ICollection<PlayerMission> PlayerMissions { get; set; } = new List<PlayerMission>();
public ICollection<PlayerSkill> PlayerSkills { get; set; } = new List<PlayerSkill>();
}

View File

@@ -0,0 +1,13 @@
namespace LctMonolith.Models.Database;
public class PlayerMission
{
public Guid Id { get; set; }
public Guid PlayerId { get; set; }
public required Player Player { get; set; }
public Guid MissionId { get; set; }
public required Mission Mission { get; set; }
public DateTime? Started { get; set; }
public DateTime? Completed { get; set; }
public DateTime? RewardsRedeemed { get; set; }
}

View File

@@ -0,0 +1,11 @@
namespace LctMonolith.Models.Database;
public class PlayerSkill
{
public Guid Id { get; set; }
public Guid PlayerId { get; set; }
public Player Player { get; set; } = null!;
public Guid SkillId { get; set; }
public Skill Skill { get; set; } = null!;
public int Score { get; set; }
}

View File

@@ -0,0 +1,13 @@
namespace LctMonolith.Models.Database;
public class Rank
{
public Guid Id { get; set; }
public string Title { get; set; } = string.Empty;
public int ExpNeeded { get; set; }
public ICollection<Player> Players { get; set; } = new List<Player>();
public ICollection<MissionRankRule> MissionRankRules { get; set; } = new List<MissionRankRule>();
public ICollection<RankMissionRule> RankMissionRules { get; set; } = new List<RankMissionRule>();
public ICollection<RankSkillRule> RankSkillRules { get; set; } = new List<RankSkillRule>();
}

View File

@@ -0,0 +1,10 @@
namespace LctMonolith.Models.Database;
public class RankMissionRule
{
public Guid Id { get; set; }
public Guid RankId { get; set; }
public Rank Rank { get; set; } = null!;
public Guid MissionId { get; set; }
public Mission Mission { get; set; } = null!;
}

View File

@@ -0,0 +1,11 @@
namespace LctMonolith.Models.Database;
public class RankSkillRule
{
public Guid Id { get; set; }
public Guid RankId { get; set; }
public Rank Rank { get; set; } = null!;
public Guid SkillId { get; set; }
public Skill Skill { get; set; } = null!;
public int Min { get; set; }
}

View File

@@ -1,4 +1,4 @@
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public class RefreshToken
{

View File

@@ -0,0 +1,10 @@
namespace LctMonolith.Models.Database;
public class Skill
{
public Guid Id { get; set; }
public string Title { get; set; } = string.Empty;
public ICollection<MissionSkillReward> MissionSkillRewards { get; set; } = new List<MissionSkillReward>();
public ICollection<RankSkillRule> RankSkillRules { get; set; } = new List<RankSkillRule>();
public ICollection<PlayerSkill> PlayerSkills { get; set; } = new List<PlayerSkill>();
}

View File

@@ -1,4 +1,4 @@
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public class StoreItem
{

View File

@@ -1,4 +1,4 @@
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public class Transaction
{

View File

@@ -1,3 +1,3 @@
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public enum TransactionType { Purchase = 0, Return = 1, Sale = 2 }

View File

@@ -1,4 +1,4 @@
namespace LctMonolith.Models;
namespace LctMonolith.Models.Database;
public class UserInventoryItem
{

View File

@@ -0,0 +1,11 @@
namespace LctMonolith.Models.Enums;
public enum Character
{
None,
Assistant,
Pilot,
Janitor,
Administrator,
Mechanic
}

View File

@@ -0,0 +1,18 @@
namespace LctMonolith.Models.Enums;
public enum CharacterAnimation
{
Neutral,
Happy,
Laughter,
Mock,
Sad,
Crying,
Annoyed,
Angry,
Threats,
Wave,
Silhouette,
Scared,
Embarassed
}

View File

@@ -0,0 +1,9 @@
namespace LctMonolith.Models.Enums;
public enum MessageStyle
{
Normal,
Loud,
Think,
Action
}

View File

@@ -1,19 +0,0 @@
namespace LctMonolith.Models;
public class Mission
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Title { get; set; } = null!;
public string? Description { get; set; }
public string? Branch { get; set; }
public MissionCategory Category { get; set; }
public Guid? MinRankId { get; set; }
public Rank? MinRank { get; set; }
public int ExperienceReward { get; set; }
public int ManaReward { get; set; }
public bool IsActive { get; set; } = true;
public ICollection<MissionCompetencyReward> CompetencyRewards { get; set; } = new List<MissionCompetencyReward>();
public ICollection<MissionArtifactReward> ArtifactRewards { get; set; } = new List<MissionArtifactReward>();
public ICollection<UserMission> UserMissions { get; set; } = new List<UserMission>();
public ICollection<RankRequiredMission> RanksRequiring { get; set; } = new List<RankRequiredMission>();
}

View File

@@ -1,9 +0,0 @@
namespace LctMonolith.Models;
public class MissionArtifactReward
{
public Guid MissionId { get; set; }
public Mission Mission { get; set; } = null!;
public Guid ArtifactId { get; set; }
public Artifact Artifact { get; set; } = null!;
}

View File

@@ -1,3 +0,0 @@
namespace LctMonolith.Models;
public enum MissionCategory { Quest = 0, Recruiting = 1, Lecture = 2, Simulator = 3 }

View File

@@ -1,11 +0,0 @@
namespace LctMonolith.Models;
public class MissionCompetencyReward
{
public Guid MissionId { get; set; }
public Mission Mission { get; set; } = null!;
public Guid CompetencyId { get; set; }
public Competency Competency { get; set; } = null!;
public int LevelDelta { get; set; }
public int ProgressPointsDelta { get; set; }
}

View File

@@ -1,11 +0,0 @@
namespace LctMonolith.Models;
public enum MissionStatus
{
Locked = 0,
Available = 1,
InProgress = 2,
Submitted = 3,
Completed = 4,
Rejected = 5
}

View File

@@ -1,12 +0,0 @@
namespace LctMonolith.Models;
public class Rank
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; } = null!;
public int Order { get; set; }
public int RequiredExperience { get; set; }
public ICollection<RankRequiredMission> RequiredMissions { get; set; } = new List<RankRequiredMission>();
public ICollection<RankRequiredCompetency> RequiredCompetencies { get; set; } = new List<RankRequiredCompetency>();
public ICollection<AppUser> Users { get; set; } = new List<AppUser>();
}

View File

@@ -1,10 +0,0 @@
namespace LctMonolith.Models;
public class RankRequiredCompetency
{
public Guid RankId { get; set; }
public Rank Rank { get; set; } = null!;
public Guid CompetencyId { get; set; }
public Competency Competency { get; set; } = null!;
public int MinLevel { get; set; }
}

View File

@@ -1,10 +0,0 @@
namespace LctMonolith.Models;
public class UserArtifact
{
public Guid UserId { get; set; }
public AppUser User { get; set; } = null!;
public Guid ArtifactId { get; set; }
public Artifact Artifact { get; set; } = null!;
public DateTime ObtainedAt { get; set; } = DateTime.UtcNow;
}

View File

@@ -1,11 +0,0 @@
namespace LctMonolith.Models;
public class UserCompetency
{
public Guid UserId { get; set; }
public AppUser User { get; set; } = null!;
public Guid CompetencyId { get; set; }
public Competency Competency { get; set; } = null!;
public int Level { get; set; }
public int ProgressPoints { get; set; }
}

View File

@@ -1,12 +0,0 @@
namespace LctMonolith.Models;
public class UserMission
{
public Guid UserId { get; set; }
public AppUser User { get; set; } = null!;
public Guid MissionId { get; set; }
public Mission Mission { get; set; } = null!;
public MissionStatus Status { get; set; } = MissionStatus.Available;
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
public string? SubmissionData { get; set; }
}