import { GuestInvitePage, InviteGuestModalPage } from '@admin-lib/index';
import { GuestInfo } from './interface';

export class GuestInviteWorkflow {
  static createGuestInviteWithTravelWindows(guestInfo: GuestInfo) {
    const {
      firstName,
      lastName,
      email,
      costCenter,
      department,
      inviteName,
      location,
      eventStartDate,
      eventEndDate,
      departureDate,
      returnDate,
      latestArrivalTime,
      earliestReturningTime,
      paymentMethod
    } = guestInfo;

    GuestInvitePage.visitGuestInvitePage();
    GuestInvitePage.selectGuestInviteOption();
    InviteGuestModalPage.fillGuestInfo({
      firstName,
      lastName,
      email,
      costCenter,
      department
    });
    InviteGuestModalPage.selectNextOptionFromGuestInformation();
    InviteGuestModalPage.setEventName(inviteName);
    InviteGuestModalPage.setEventLocation(location);
    InviteGuestModalPage.setInviteDates(eventStartDate, eventEndDate);
    InviteGuestModalPage.setTravelWindowDates(departureDate, returnDate);
    InviteGuestModalPage.setLatestArrivalTime(latestArrivalTime);
    InviteGuestModalPage.setEarliestReturningTime(earliestReturningTime);
    InviteGuestModalPage.selectNextOptionFromEventDetails();
    InviteGuestModalPage.selectNextOptionFromTravelPolicy();
    InviteGuestModalPage.selectPaymentMethod(paymentMethod);
    InviteGuestModalPage.selectReviewOption();
    InviteGuestModalPage.sendInvitation();
    InviteGuestModalPage.verifyInvitationSuccessMessage();
  }
}
