import { PriceDTO } from '@generated/swagger/checkout-api';
import {
  ActionType,
  Availability,
  Branch,
  CanAdd,
  FetchingAvailability,
  Item,
  PurchaseOption,
} from './purchase-options.types';

export interface PurchaseOptionsState {
  shoppingCartId: number;

  type: ActionType;

  items: Item[];

  availabilities: Availability[];

  canAddResults: CanAdd[];

  purchaseOption: PurchaseOption;

  selectedItemIds: number[];

  prices: { [itemId: number]: PriceDTO };

  defaultBranch: Branch;

  pickupBranch: Branch;

  inStoreBranch: Branch;

  customerFeatures: Record<string, string>;

  fetchingAvailabilities: Array<FetchingAvailability>;

  useRedemptionPoints: boolean;

  disabledPurchaseOptions: PurchaseOption[];
}
