/ GUNRPG.Application / Dtos / OperatorStateDto.cs
OperatorStateDto.cs
 1  using GUNRPG.Core.Combat;
 2  using GUNRPG.Core.Intents;
 3  using GUNRPG.Core.Operators;
 4  
 5  namespace GUNRPG.Application.Dtos;
 6  
 7  /// <summary>
 8  /// DTO representing operator aggregate state (for UI display).
 9  /// This differs from player state in combat sessions.
10  /// </summary>
11  public sealed class OperatorStateDto
12  {
13      public Guid Id { get; init; }
14      public string Name { get; init; } = string.Empty;
15      public long TotalXp { get; init; }
16      public float CurrentHealth { get; init; }
17      public float MaxHealth { get; init; }
18      public string EquippedWeaponName { get; init; } = string.Empty;
19      public List<string> UnlockedPerks { get; init; } = new();
20      public int ExfilStreak { get; init; }
21      public bool IsDead { get; init; }
22      public OperatorMode CurrentMode { get; init; }
23      public DateTimeOffset? InfilStartTime { get; init; }
24      public Guid? InfilSessionId { get; init; }
25      public Guid? ActiveCombatSessionId { get; init; }
26      public CombatSessionDto? ActiveCombatSession { get; init; }
27      public string LockedLoadout { get; init; } = string.Empty;
28      public PetStateDto? Pet { get; init; }
29  }