/**
 * ValidateAvailabilityPort (API Port - Input)
 *
 * Defines the interface for validating container availability
 */

export interface AvailabilityInput {
  rateQuoteId: string;
  quantity: number; // Number of containers requested
}

export interface AvailabilityOutput {
  isAvailable: boolean;
  availableQuantity: number;
  requestedQuantity: number;
  rateQuoteId: string;
  validUntil: Date;
}

export interface ValidateAvailabilityPort {
  /**
   * Validate if containers are available for a rate quote
   * @param input - Availability check parameters
   * @returns Availability status
   */
  execute(input: AvailabilityInput): Promise<AvailabilityOutput>;
}
