import { BaseResponse } from "../baseTypes";

type Program = "INBOUND" | "COMMINGLING";
type IneligibilityReasonList =
  | "FBA_INB_0004"
  | "FBA_INB_0006"
  | "FBA_INB_0007"
  | "FBA_INB_0008"
  | "FBA_INB_0009"
  | "FBA_INB_0010"
  | "FBA_INB_0011"
  | "FBA_INB_0012"
  | "FBA_INB_0013"
  | "FBA_INB_0014"
  | "FBA_INB_0015"
  | "FBA_INB_0016"
  | "FBA_INB_0017"
  | "FBA_INB_0018"
  | "FBA_INB_0019"
  | "FBA_INB_0034"
  | "FBA_INB_0035"
  | "FBA_INB_0036"
  | "FBA_INB_0037"
  | "FBA_INB_0038"
  | "FBA_INB_0050"
  | "FBA_INB_0051"
  | "FBA_INB_0053"
  | "FBA_INB_0055"
  | "FBA_INB_0056"
  | "FBA_INB_0059"
  | "FBA_INB_0065"
  | "FBA_INB_0066"
  | "FBA_INB_0067"
  | "FBA_INB_0068"
  | "FBA_INB_0095"
  | "FBA_INB_0097"
  | "FBA_INB_0098"
  | "FBA_INB_0099"
  | "FBA_INB_0100"
  | "FBA_INB_0103"
  | "FBA_INB_0104"
  | "UNKNOWN_INB_ERROR_CODE";

export interface GetItemEligibilityPreviewQuery {
  marketplaceIds?: string[];
  asin: string;
  program: Program;
}

export interface GetItemEligibilityPreviewResponse extends BaseResponse {
  payload?: ItemEligibilityPreview;
}

interface ItemEligibilityPreview {
  asin: string;
  marketplaceId?: string;
  program: Program;
  isEligibleForProgram: boolean;
  ineligibilityReasonList: IneligibilityReasonList[];
}
