import type { Vector3Dto } from "./contractsCommon";
import type { ShipOrderTemplateSnapshot } from "./contractsShips";

export interface ShipOrderCommandRequest {
  kind: string;
  priority: number;
  interruptCurrentPlan: boolean;
  label?: string | null;
  targetEntityId?: string | null;
  targetSystemId?: string | null;
  targetPosition?: Vector3Dto | null;
  sourceStationId?: string | null;
  destinationStationId?: string | null;
  itemId?: string | null;
  nodeId?: string | null;
  constructionSiteId?: string | null;
  moduleId?: string | null;
  waitSeconds?: number | null;
  radius?: number | null;
  maxSystemRange?: number | null;
  knownStationsOnly?: boolean | null;
}

export interface ShipDefaultBehaviorCommandRequest {
  kind: string;
  homeSystemId?: string | null;
  homeStationId?: string | null;
  areaSystemId?: string | null;
  targetEntityId?: string | null;
  itemId?: string | null;
  preferredNodeId?: string | null;
  preferredConstructionSiteId?: string | null;
  preferredModuleId?: string | null;
  targetPosition?: Vector3Dto | null;
  waitSeconds?: number | null;
  radius?: number | null;
  maxSystemRange?: number | null;
  knownStationsOnly?: boolean | null;
  patrolPoints?: Vector3Dto[] | null;
  repeatOrders?: ShipOrderTemplateSnapshot[] | null;
}
