import { faker } from '@faker-js/faker';
import { Random } from 'cypress/artifacts';
import moment = require('moment');

export interface Employee {
  uuid: string;
  email: string;
}

export function generateBookingId() {
  return Date.now() + '_' + Random.randomString(8);
}

export function buildPassengerInfo(employee: Employee) {
  return {
    employeeId: employee.uuid,
    name: faker.name.findName(),
    dateOfBirth: faker.date.between(
      '1940-01-01T00:00:00.000Z',
      '2005-01-01T00:00:00.000Z'
    ),
    email: employee.email || faker.internet.email()
  };
}

export function buildPaymentMethod() {
  return {
    type: 'UNKNOWN',
    lastFourDigits: faker.datatype.number({ max: 9999 }),
    paymentMethodUsed: 'PAY_AFTER_TRIP'
  };
}

export const getFiveDaysAgoDate = () => moment().subtract(5, 'day').toISOString();
export const getOneMonthAheadDate = () => moment().add(1, 'month').toISOString();
export const getOneMonthAndHalfAheadDate = () => moment().add(1.5, 'month').toISOString();
export const getFiveHoursLaterDate = (date: string) =>
  moment(date).add(5, 'hour').toISOString();
