Initial commit

This commit is contained in:
2026-03-14 00:32:26 +01:00
commit 70a35f3985
109 changed files with 62554 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
namespace RolemasterDb.App.Domain;
public sealed class ArmorType
{
public int Id { get; set; }
public string Code { get; set; } = string.Empty;
public string Label { get; set; } = string.Empty;
public int SortOrder { get; set; }
public List<AttackResult> AttackResults { get; set; } = [];
}

View File

@@ -0,0 +1,17 @@
namespace RolemasterDb.App.Domain;
public sealed class AttackResult
{
public int Id { get; set; }
public int AttackTableId { get; set; }
public int ArmorTypeId { get; set; }
public int AttackRollBandId { get; set; }
public int Hits { get; set; }
public string? CriticalType { get; set; }
public string? CriticalSeverity { get; set; }
public string RawNotation { get; set; } = string.Empty;
public string? Notes { get; set; }
public AttackTable AttackTable { get; set; } = null!;
public ArmorType ArmorType { get; set; } = null!;
public AttackRollBand AttackRollBand { get; set; } = null!;
}

View File

@@ -0,0 +1,13 @@
namespace RolemasterDb.App.Domain;
public sealed class AttackRollBand
{
public int Id { get; set; }
public int AttackTableId { get; set; }
public string Label { get; set; } = string.Empty;
public int MinRoll { get; set; }
public int? MaxRoll { get; set; }
public int SortOrder { get; set; }
public AttackTable AttackTable { get; set; } = null!;
public List<AttackResult> Results { get; set; } = [];
}

View File

@@ -0,0 +1,12 @@
namespace RolemasterDb.App.Domain;
public sealed class AttackTable
{
public int Id { get; set; }
public string Slug { get; set; } = string.Empty;
public string DisplayName { get; set; } = string.Empty;
public string AttackKind { get; set; } = string.Empty;
public string? Notes { get; set; }
public List<AttackRollBand> RollBands { get; set; } = [];
public List<AttackResult> Results { get; set; } = [];
}

View File

@@ -0,0 +1,13 @@
namespace RolemasterDb.App.Domain;
public sealed class CriticalColumn
{
public int Id { get; set; }
public int CriticalTableId { get; set; }
public string ColumnKey { get; set; } = string.Empty;
public string Label { get; set; } = string.Empty;
public string Role { get; set; } = "severity";
public int SortOrder { get; set; }
public CriticalTable CriticalTable { get; set; } = null!;
public List<CriticalResult> Results { get; set; } = [];
}

View File

@@ -0,0 +1,12 @@
namespace RolemasterDb.App.Domain;
public sealed class CriticalGroup
{
public int Id { get; set; }
public int CriticalTableId { get; set; }
public string GroupKey { get; set; } = string.Empty;
public string Label { get; set; } = string.Empty;
public int SortOrder { get; set; }
public CriticalTable CriticalTable { get; set; } = null!;
public List<CriticalResult> Results { get; set; } = [];
}

View File

@@ -0,0 +1,19 @@
namespace RolemasterDb.App.Domain;
public sealed class CriticalResult
{
public int Id { get; set; }
public int CriticalTableId { get; set; }
public int? CriticalGroupId { get; set; }
public int CriticalColumnId { get; set; }
public int CriticalRollBandId { get; set; }
public string RawCellText { get; set; } = string.Empty;
public string DescriptionText { get; set; } = string.Empty;
public string? RawAffixText { get; set; }
public string ParsedJson { get; set; } = "{}";
public string ParseStatus { get; set; } = "verified";
public CriticalTable CriticalTable { get; set; } = null!;
public CriticalGroup? CriticalGroup { get; set; }
public CriticalColumn CriticalColumn { get; set; } = null!;
public CriticalRollBand CriticalRollBand { get; set; } = null!;
}

View File

@@ -0,0 +1,13 @@
namespace RolemasterDb.App.Domain;
public sealed class CriticalRollBand
{
public int Id { get; set; }
public int CriticalTableId { get; set; }
public string Label { get; set; } = string.Empty;
public int MinRoll { get; set; }
public int? MaxRoll { get; set; }
public int SortOrder { get; set; }
public CriticalTable CriticalTable { get; set; } = null!;
public List<CriticalResult> Results { get; set; } = [];
}

View File

@@ -0,0 +1,15 @@
namespace RolemasterDb.App.Domain;
public sealed class CriticalTable
{
public int Id { get; set; }
public string Slug { get; set; } = string.Empty;
public string DisplayName { get; set; } = string.Empty;
public string Family { get; set; } = "standard";
public string SourceDocument { get; set; } = string.Empty;
public string? Notes { get; set; }
public List<CriticalGroup> Groups { get; set; } = [];
public List<CriticalColumn> Columns { get; set; } = [];
public List<CriticalRollBand> RollBands { get; set; } = [];
public List<CriticalResult> Results { get; set; } = [];
}