import { ShoppingCartItem } from './shopping-cart-item';

/**
 * Analysis result for the types of order options present in shopping cart items.
 *
 * @remarks
 * Used during checkout completion to determine:
 * - Required payment types (Bar vs Rechnung)
 * - Need for payer information
 * - Destination update requirements
 */
export interface OrderOptionsAnalysis {
  /**
   * At least one item has orderType === 'Rücklage' (Take Away)
   */
  hasTakeAway: boolean;

  /**
   * At least one item has orderType === 'Abholung' (Pick Up)
   */
  hasPickUp: boolean;

  /**
   * At least one item has orderType === 'Download'
   */
  hasDownload: boolean;

  /**
   * At least one item has orderType === 'Versand' (Delivery)
   */
  hasDelivery: boolean;

  /**
   * At least one item has orderType === 'DIG-Versand' (Digital Delivery)
   */
  hasDigDelivery: boolean;

  /**
   * At least one item has orderType === 'B2B-Versand' (B2B Delivery)
   */
  hasB2BDelivery: boolean;

  /**
   * ShoppingCartItems
   */
  items: Array<ShoppingCartItem>;
}
