namespace SpaceGame.Api.Economy.Contracts;

public sealed record MarketOrderSnapshot(
  string Id,
  string FactionId,
  string? StationId,
  string? ConstructionSiteId,
  string Kind,
  string ItemId,
  float Amount,
  float RemainingAmount,
  float Valuation,
  float? ReserveThreshold,
  string? PolicySetId,
  string State);

public sealed record MarketOrderDelta(
  string Id,
  string FactionId,
  string? StationId,
  string? ConstructionSiteId,
  string Kind,
  string ItemId,
  float Amount,
  float RemainingAmount,
  float Valuation,
  float? ReserveThreshold,
  string? PolicySetId,
  string State);

public sealed record PolicySetSnapshot(
  string Id,
  string OwnerKind,
  string OwnerId,
  string TradeAccessPolicy,
  string DockingAccessPolicy,
  string ConstructionAccessPolicy,
  string OperationalRangePolicy,
  string CombatEngagementPolicy,
  bool AvoidHostileSystems,
  float FleeHullRatio,
  IReadOnlyList<string> BlacklistedSystemIds);

public sealed record PolicySetDelta(
  string Id,
  string OwnerKind,
  string OwnerId,
  string TradeAccessPolicy,
  string DockingAccessPolicy,
  string ConstructionAccessPolicy,
  string OperationalRangePolicy,
  string CombatEngagementPolicy,
  bool AvoidHostileSystems,
  float FleeHullRatio,
  IReadOnlyList<string> BlacklistedSystemIds);
