Files
ChronoCCG/Chrono/Model/UserDeck.cs
T
6d486f49 ffaab59585 ...
2026-09-09 17:19:03 -04:00

33 lines
1.4 KiB
C#

namespace Model;
public class UserDeck
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Name { get; set; } = "";
public List<string> Cards { get; set; } = [];
public List<string> Divers { get; set; } = [];
public string? Notes { get; set; }
public string? Season { get; set; } = "Season 1";
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
public bool IsValid => Cards.Count == 40 &&
Divers.Count == 2 &&
Divers[0] != Divers[1] &&
!Cards.Contains(Divers[0]) &&
!Cards.Contains(Divers[1]);
public string ValidationMessage
{
get
{
if (Cards.Count < 40) return $"Deck needs {40 - Cards.Count} more card{(40 - Cards.Count == 1 ? "" : "s")}.";
if (Cards.Count > 40) return $"Deck has {Cards.Count - 40} too many cards.";
if (Divers.Count < 2) return $"Deck needs {2 - Divers.Count} more diver{(2 - Divers.Count == 1 ? "" : "s")}.";
if (Divers.Count > 2) return "Deck can only have 2 divers.";
if (Divers.Count == 2 && Divers[0] == Divers[1]) return "Diver cards must be unique.";
if (Divers.Any(d => Cards.Contains(d))) return "Diver cards cannot be in the main deck.";
return "Deck is valid.";
}
}
}