export const ONBOARDING_GUIDE_SELECTORS = {
  onboardingGuideDrawer: '[data-testid="onboarding-guide-drawer"]',
  onboardingGuideSkeletonTasks: '.skeleton__tasks',
  onBoardingGuideButton: '[data-testid="onboarding-guide-cta"] > .ta-button-v2',
  onBoardingGuideHeaderTitle: '.onboarding-guide__header__title__h1',
  mainMenuAdminButton: '[data-qaid="ADMIN"]',
  getReadyToExpenseTask: '[data-testid="onboarding-guide-task-GET_READY_TO_EXPENSE"]',
  getReadyToTravelTask: '[data-testid="onboarding-guide-task-GET_READY_TO_TRAVEL"]',
  navanCardInfoTask: '[data-testid="onboarding-guide-task-NAVAN_CARD_ADD_INFO"]',
  reviewExpensePolicyTask:
    '[data-testid="onboarding-guide-subtask-get-started-cta-REVIEW_AND_EDIT_POLICY_FOR_EXPENSE"] > .ta-button-v2',
  reviewExpensePolicyTaskMarkAsDone:
    '[data-testid="onboarding-guide-subtask-mark-complete-cta-REVIEW_AND_EDIT_POLICY_FOR_EXPENSE"] > .ta-button-v2',
  getStartedReviewTravelPolicy:
    '[data-testid="onboarding-guide-subtask-get-started-cta-REVIEW_AND_EDIT_POLICY_FOR_TRAVEL"] > .ta-button-v2',
  addCorporateCard: '[data-testid="onboarding-guide-task-CONNECT_CORPORATE_ACCOUNT_PROGRAM"]',
  addCorporateCardGetStartedButton:
    '[data-testid="onboarding-guide-task-get-started-task-cta-CONNECT_CORPORATE_ACCOUNT_PROGRAM"]',
  getVReviewTravelPolicybutton: '[data-testid="subtask-REVIEW_AND_EDIT_POLICY_FOR_TRAVEL"]',
  getVTravelPaymentMethodButton: '[data-testid="subtask-SET_UP_TRAVEL_PAYMENT"]',
  getStartedSetupTravelPaymentMethod:
    '[data-testid="onboarding-guide-subtask-get-started-cta-SET_UP_TRAVEL_PAYMENT"] > .ta-button-v2',
  getStartedSyncAccountingSoftware: '[data-testid="subtask-SYNC_ACCOUNTING_SOFTWARE"]',
  getStartedAddAndInviteUsers: '[data-testid="onboarding-guide-task-get-started-task-cta-ADD_USERS"] > .ta-button-v2',
  getStartedEditUsers: '[data-testid="onboarding-guide-task-completed-cta-ADD_USERS"]',
  getStartedApplyForNavanCard: '[data-testid="onboarding-guide-card-APPLY_FOR_NAVAN_CARDS"]',
  getSetUpReimbursments: '[data-testid="onboarding-guide-card-SETUP_PAYROLL_REIMBURSEMENTS"]',
  getStartedApplyForNavanCardButton:
    '[data-testid="onboarding-guide-card-APPLY_FOR_NAVAN_CARDS"] [data-testid="onboarding-guide-card-get-started-cta"]',
  getConnectCorporateCard: '[data-testid="onboarding-guide-card-CONNECT_CORPORATE_ACCOUNT_PROGRAM"]',
  showOptions: '[data-testid="get-more__footer-accordion"] > .ta-button-v2',
  reviewTravelPolicyMarkAsDone:
    '[data-testid="onboarding-guide-subtask-mark-complete-cta-REVIEW_AND_EDIT_POLICY_FOR_TRAVEL"] > .ta-button-v2',
  setUpTravelPaymentMethodMarkAsDone:
    '[data-testid="onboarding-guide-subtask-mark-complete-cta-SET_UP_TRAVEL_PAYMENT"] > .ta-button-v2',
  addAndInviteUsersMarkAsDone: '[data-testid="onboarding-guide-task-mark-complete-cta-ADD_USERS"] > .ta-button-v2',
  closeOnboardingGuideXButton: '[data-testid="onboarding-guide-close"]',
  closeOnboardingGuideForeverButton: '[data-testid="onboarding-guide-task-alldone-cta"] > .ta-button-v2',
  closeOnboardingGuideForeverButtonInPopup: '[data-testid="terminate-onbording-guide-cta"] > .ta-button-v2',
  topLeftMainMenu: '[data-qaid="PLATFORM_SWITCHER-button"]',
  businessBookingButtonInMenu: '[data-qaid="TRAVEL_BOOKINGS_BUSINESS"]',
  addExpenseUpsellCard: '[data-testid="onboarding-guide-card-ADD_EXPENSE"]',
  addUsersTask: '[data-testid="onboarding-guide-task-ADD_USERS"]',
  getReadyToExpenseBadge: '[data-testid="task-badge-GET_READY_TO_EXPENSE"]',
  reviewExpensePolicyGetStartedButton:
    '[data-testid="onboarding-guide-subtask-get-started-cta-REVIEW_AND_EDIT_POLICY_FOR_EXPENSE"]',
  addPaymentMethodGetStartedButton:
    '[data-testid="onboarding-guide-subtask-get-started-cta-PAYMENT_METHOD_FOR_PLATFORM_FEES"]',
  submitFirstExpenseGetStartedButton: '[data-testid="onboarding-guide-subtask-get-started-cta-SUBMIT_FIRST_EXPENSE"]',
  setSetAccountingPreferencesButton:
    '[data-testid="onboarding-guide-subtask-get-started-cta-SYNC_ACCOUNTING_SOFTWARE"]',
  getReadyToTravelBadge: '[data-testid="task-badge-GET_READY_TO_TRAVEL"]',
  bookTheFirstTripTask: '#mat-expansion-panel-header-8',
  faqAccordion: '[data-testid="onboarding-guide-faq-accordion"]',
  thumbsUpButton: '[data-testid="thumbsUpButton"]',
  faqThumbsDownButton: '[data-testid="thumbsDownButton"]',
  getMoreAccordion: '[data-testid="get-more__footer-accordion"]',
  getMoreHeader: '[data-testid="get-more-header"]',
  faqExpenseTabClick: '[data-testid="tab-expense"]',
  faqThumbsDownTextbox: '[data-testid="feedbackTextArea"]',
  faqThumbsDownSubmitButton: '[data-testid="submitFeedbackButton"]',
  faqFeedbackSubmitText: '.helpful__feedback-sent-title',
  addressGetStartedButton: '[data-testid="onboarding-guide-task-get-started-task-cta-OFFICES_AND_LEGAL_ENTITIES"]',
  addressTask: '[data-testid="onboarding-guide-task-OFFICES_AND_LEGAL_ENTITIES"]',
  expenseLearnMoreButton:
    '[data-testid="onboarding-guide-card-ADD_EXPENSE"] [data-testid="onboarding-guide-card-get-started-cta"] > .ta-button-v2',
  connectCorporateCardLearnMoreButton:
    '[data-testid="onboarding-guide-card-CONNECT_CORPORATE_ACCOUNT_PROGRAM"] [data-testid="onboarding-guide-card-get-started-cta"] > .ta-button-v2',
  reimbursementsLearnMoreButton:
    '[data-testid="onboarding-guide-card-SETUP_PAYROLL_REIMBURSEMENTS"] [data-testid="onboarding-guide-card-get-started-cta"] > .ta-button-v2',
  adminAddExpenseTasksCheckbox: '[data-testid="agreement-check"] input',
  adminGoToLegalAddressButton: '[data-testid="goto-legal-address-button"] > .ta-button-v2',
  getReadyToExpenseSkipThisButton: '[data-testid="onboarding-guide-subtask__skip-SYNC_ACCOUNTING_SOFTWARE"]',
  checkMarkInSetAccountingPreferences: '.onboarding-guide-task__left__subtasks__task__complete-left',
  addNavanConnectProgramButton: '[data-testid="addConnectCardProgramButton"]',
  managerName: '.onboarding-guide__body__tasks__category__description__title span',
  completeFirstBooking: '[data-testid="onboarding-guide-task-COMPLETE_FIRST_BOOKING"]'
};

export const ONBOARDING_GUIDE_USER_SELECTORS = {
  completeFirstBooking: '[data-testid="onboarding-guide-task-COMPLETE_FIRST_BOOKING"]',
  addTravelerInfo: '[data-testid="subtask-ADD_TRAVELER_INFO"]',
  addLoyaltyPrograms: '[data-testid="subtask-ADD_LOYALTY_PROGRAMS"]',
  learnAboutRewards: '[data-testid="subtask-LEARN_ABOUT_REWARDS"]',
  addTravelerInfoButton: '[data-testid="onboarding-guide-subtask-get-started-cta-ADD_TRAVELER_INFO"]',
  addLoyaltyProgramsButton: '[data-testid="onboarding-guide-subtask-get-started-cta-ADD_LOYALTY_PROGRAMS"]',
  learnAboutRewardsButton: '[data-testid="onboarding-guide-subtask-get-started-cta-LEARN_ABOUT_REWARDS"]',
  loyaltyCompleteCompleteCta: '[data-testid="onboarding-guide-subtask-mark-complete-cta-ADD_LOYALTY_PROGRAMS"]',
  travelerInfoCompleteCta: '[data-testid="onboarding-guide-subtask-mark-complete-cta-ADD_TRAVELER_INFO"]',
  learnAboutRewardsCompleteCta: '[data-testid="onboarding-guide-subtask-mark-complete-cta-LEARN_ABOUT_REWARDS"]'
};

export enum TasksId {
  COMPLETE_FIRST_BOOKING = 'COMPLETE_FIRST_BOOKING',
  APPLY_FOR_NAVAN_CARDS = 'APPLY_FOR_NAVAN_CARDS',
  ADD_USERS = 'ADD_USERS',
  OFFICES_AND_LEGAL_ENTITIES = 'OFFICES_AND_LEGAL_ENTITIES',
  GET_READY_TO_TRAVEL = 'GET_READY_TO_TRAVEL',
  GET_READY_TO_EXPENSE = 'GET_READY_TO_EXPENSE',
  CONNECT_CORPORATE_ACCOUNT_PROGRAM = 'CONNECT_CORPORATE_ACCOUNT_PROGRAM',
  REVIEW_AND_EDIT_POLICY_FOR_TRAVEL = 'REVIEW_AND_EDIT_POLICY_FOR_TRAVEL',
  SET_UP_TRAVEL_PAYMENT = 'SET_UP_TRAVEL_PAYMENT',
  REVIEW_AND_EDIT_POLICY_FOR_EXPENSE = 'REVIEW_AND_EDIT_POLICY_FOR_EXPENSE',
  SYNC_ACCOUNTING_SOFTWARE = 'SYNC_ACCOUNTING_SOFTWARE',
  NAVAN_CARD_ADD_INFO = 'NAVAN_CARD_ADD_INFO'

  // to be completed when we will write more test cases
}
export enum TaskState {
  NOT_STARTED = 'NOT_STARTED',
  IN_PROGRESS = 'IN_PROGRESS',
  COMPLETED = 'COMPLETED'
}

export type VerifyType = 'be.visible' | 'exist' | 'not.exist';

export enum URL_VERIFY {
  HOME = 'app/user2/home',
  USERS = '/company/users',
  LEGAL_ADDRESS = '/company/organization/legal-address',
  BILLABLE_ENTITIES = '/company/organization/billable_entities',
  POLICY_WIZARD = '/company/policy/policy-wizard/landing-page',
  POLICY_DETAILS = '/liquid/admin/policy/policy-details',
  POLICY_ONBOARDING_V2 = '/liquid/admin/policy/policy-onboarding',
  ALL_TRANSACTIONS = '/liquid/admin/activity/all-transactions',
  USER_TRANSACTIONS = '/liquid/user/transactions/all',
  INTEGRATION = '/liquid/admin/company/accounting-v2/integration',
  CARD_PROGRAMS = '/liquid/admin/company/settings/card-programs',
  SETTINGS_PAYMENTS = '/admin2/en/settings/payments',
  UPSELL_EXPENSE = '/expense/upsell'
}

export enum CompanySegmentType {
  GROWTH = 'GROWTH',
  SMB = 'SMB',
  ENTERPRISE = 'ENTERPRISE',
  COMMERCIAL = 'COMMERCIAL',
  MIDMARKET = 'MID-MARKET'
}

export enum CompanyAccountType {
  TRAVEL = 'TRAVEL',
  LIQUID = 'LIQUID',
  TRAVEL_AND_LIQUID = 'TRAVEL_AND_LIQUID'
}

export enum CompanySource {
  TRAVEL_AND_PAYMENTS = 'TRAVEL_AND_PAYMENTS'
}

export interface CreateCompany {
  category?: string;
  ae?: string;
  globalCsm?: string;
  launchManager?: string;
  companyDomain?: string;
  companyName?: string;
  accountType?: string;
  accountSegment?: CompanySegmentType;
  isLHGCustomer?: boolean;
  lhgPriceModel?: string;
  admin?: {
    email: string;
    givenName: string;
    familyName: string;
  };
  address?: LaunchCompanyAddress;
  onboardingCompanySource?: CompanySource;
}

export interface LaunchCompanyAddress {
  address1?: string;
  address2?: string;
  city?: string;
  state?: string;
  country?: string;
  zipCode?: string;
}

export interface LaunchCompany {
  companyUuid?: string;
  tripFee?: string;
  isComtravoOnboarding?: boolean;
  billableEntityCountryCode?: 'US';
  liquidCurrencyCode?: 'USD';
  inviteToSelfOnboarding?: 'YES' | 'NO';
  liquidApprovedLimit?: string; // if > 0 -> company approved UW
  associateAgency?: boolean;
  admin?: {
    email: string;
    givenName: string;
    familyName: string;
  };
}
