namespace SpaceGame.Api.Ships.AI;

public sealed partial class ShipAiService
{
    private enum SubTaskOutcome
    {
        Active,
        Completed,
        Failed,
    }

    private sealed record TradeRoutePlan(
      StationRuntime SourceStation,
      StationRuntime DestinationStation,
      string ItemId,
      float Score,
      string Summary);

    private sealed record MiningOpportunity(
      ResourceNodeRuntime Node,
      StationRuntime DropOffStation,
      float Score,
      string Summary);

    private sealed record FleetSupplyPlan(
      StationRuntime SourceStation,
      ShipRuntime TargetShip,
      string ItemId,
      float Amount,
      float Radius,
      string Summary);

    private sealed record LocalMiningBuyerCandidate(
      StationRuntime Station,
      float Score);

    private sealed record ThreatTargetCandidate(
      string EntityId,
      string SystemId,
      Vector3 Position,
      float Score);

    private sealed record PoliceContactCandidate(
      string EntityId,
      string SystemId,
      Vector3 Position,
      bool Engage,
      float Score);

    private sealed record SalvageOpportunity(
      WreckRuntime Wreck,
      float Score,
      string Summary);
}
