qe-fe-automation
Version:
FE test automation framework using cypress
225 lines (194 loc) • 5.67 kB
text/typescript
export interface TravelEventInvitationRequest {
summary: TravelEventSummary;
settings: TravelEventSettings;
participants: TravelEventParticipant[];
contactId: string;
shouldSendEmail?: boolean;
}
interface TravelEventSummary {
name: string;
description?: string;
pictureUrl?: string;
startDateTime: string;
endDateTime: string;
location: TravelEventLocation;
note: string[];
cancellationNote: string[];
}
interface TravelEventLocation {
placeId: string;
displayName: string;
type: TravelEventLocationType;
companyOfficeId?: string;
companyOfficeName?: string;
coordinates?: {
latitude: number;
longitude: number;
};
}
export enum TravelEventLocationType {
OFFICE = 'OFFICE',
PLACE = 'PLACE'
}
interface TravelEventSettings {
travelConditions: TravelEventConditions;
reportingSettings: TravelEventReportingSettings;
notificationSettings: TravelEventNotificationSettings;
}
interface TravelEventConditions {
accommodation: TravelEventAccommodation;
transportation: TravelEventTransportation;
commute: TravelEventCommute;
travelWindows: TravelEventTravelWindows[];
payment: TravelEventPayment;
numberOfExtraGuestsAllowed: number;
companyPolicyLevelId: string;
}
interface TravelEventTravelConditions {
numberOfBookingsAllowed: number;
note?: string[];
maxPrice?: TravelEventMonetaryValue;
}
interface TravelEventMonetaryValue {
amount: number;
currency: string;
}
interface TravelEventAccommodation {
hotelConditions: TravelEventHotelConditions;
}
interface TravelEventHotelConditions extends TravelEventTravelConditions {
allowedHotels?: string[];
suggestedHotels?: TravelEventSuggestedHotel[];
allowedHotelRates?: string[];
}
interface TravelEventSuggestedHotel {
searchId: string;
hotelId: string;
name: string;
googlePlaceId: string;
}
interface TravelEventTransportation {
carConditions: TravelEventCarConditions;
flightConditions: TravelEventFlightConditions;
trainConditions: TravelEventTrainConditions;
}
interface TravelEventCarConditions extends TravelEventTravelConditions {
suggestedCarRentalCompanies?: string[];
}
interface TravelEventFlightConditions extends TravelEventTravelConditions {
allowedItineraryTypes?: TravelEventFlightItineraryType[];
allowedDepartureAirportCodes?: string[];
allowedArrivalAirportCodes?: string[];
suggestedDepartureAirportCodes?: string[];
suggestedArrivalAirportCodes?: string[];
}
enum TravelEventFlightItineraryType {
ONE_WAY = 'ONE_WAY',
ROUND_TRIP = 'ROUND_TRIP',
BUNDLE = 'BUNDLE',
FLEXIBLE_BUNDLE = 'FLEXIBLE_BUNDLE',
UNKNOWN = 'UNKNOWN'
}
interface TravelEventTrainConditions extends TravelEventTravelConditions {
allowedItineraryTypes?: TravelEventTrainItineraryType[];
allowedDepartureStationIds?: string[];
allowedArrivalStationIds?: string[];
suggestedDepartureStationIds?: string[];
suggestedArrivalStationIds?: string[];
}
export enum TravelEventTrainItineraryType {
ONE_WAY = 'ONE_WAY',
RETURN = 'RETURN',
OPEN_RETURN = 'OPEN_RETURN'
}
interface TravelEventReportingSettings {
billTo?: string;
department?: string;
region?: string;
subsidiary?: string;
customFieldValues: TravelEventCustomFieldValue[];
}
interface TravelEventCustomFieldValue {
name: string;
label: string;
value: any;
sabreName: string;
approver: string;
optionLabel: string;
}
interface TravelEventCommute {
blackCars: string[];
cars: string[];
trains: string[];
}
interface TravelEventTravelWindows {
verticals: TravelEventVertical[];
earliestDepartureDateTime: TravelEventTravelWindowsDateTime;
latestArrivalDateTime: TravelEventTravelWindowsDateTime;
earliestLeaveDateTime: TravelEventTravelWindowsDateTime;
latestReturnDateTime: TravelEventTravelWindowsDateTime;
}
export enum TravelEventVertical {
FLIGHT = 'FLIGHT',
HOTEL = 'HOTEL',
CAR = 'CAR',
BLACK_CAR = 'BLACK_CAR',
RAIL = 'RAIL'
}
interface TravelEventTravelWindowsDateTime {
value: string;
type: TravelEventTravelWindowsDateTimeType;
}
export enum TravelEventTravelWindowsDateTimeType {
MANDATORY = 'MANDATORY',
SUGGESTED = 'SUGGESTED'
}
interface TravelEventPayment {
allowedPaymentMethodIds: string[];
allowedCarDirectBillPaymentMethodIds: string[];
addingNewPaymentMethodAllowed: boolean;
}
interface TravelEventNotificationSettings {
enabledOrganizerNotifications: OrganizerNotification[];
enabledParticipantNotifications: ParticipantNotification[];
enabledParticipantReminders: ParticipantReminder[];
}
enum OrganizerNotification {
BOOKING_CREATED = 'BOOKING_CREATED',
BOOKING_CANCELED = 'BOOKING_CANCELED',
BOOKING_CHANGED = 'BOOKING_CHANGED',
EVENT_CREATED = 'EVENT_CREATED',
EVENT_CHANGED = 'EVENT_CHANGED',
EVENT_CANCELED = 'EVENT_CANCELED',
INVITE_ACCEPTED = 'INVITE_ACCEPTED',
INVITE_DECLINED = 'INVITE_DECLINED',
INVITE_FINALIZED = 'INVITE_FINALIZED'
}
enum ParticipantNotification {
BOOKING_CREATED = 'BOOKING_CREATED',
BOOKING_CANCELED = 'BOOKING_CANCELED',
BOOKING_CHANGED = 'BOOKING_CHANGED',
EVENT_CREATED = 'EVENT_CREATED',
EVENT_CHANGED = 'EVENT_CHANGED',
EVENT_CANCELED = 'EVENT_CANCELED',
INVITE_ACCEPTED = 'INVITE_ACCEPTED',
INVITE_DECLINED = 'INVITE_DECLINED',
INVITE_FINALIZED = 'INVITE_FINALIZED'
}
interface ParticipantReminder {
type: ParticipantReminderType;
start: string;
end: string;
repeatInterval: string;
}
enum ParticipantReminderType {
INVITATION_RESPONSE = 'INVITATION_RESPONSE',
DRAFT_COMPLETION = 'DRAFT_COMPLETION'
}
interface TravelEventParticipant {
email: string;
givenName: string;
familyName: string;
billTo?: string;
department?: string;
}