export type Time = { hours: number; minutes: number; amPm: string; }; export type Execution = { _id?: number; name: string; env: string; branch: string; flows: Flow[]; schedule: Schedule | undefined; isSingleThreaded: boolean; enabled: boolean; userId: string; projectId: string; }; export type ExecutionSkeleton = { name: string; env: string; flows: Flow[]; branch: string; schedule: Schedule | undefined; isSingleThreaded: boolean; enabled: boolean; userId: string; projectId: string; }; export type Flow = { viewport: string; browser: string; scenarioGroups: ScenarioGroup[]; }; export type ScenarioGroup = { name: string; threadCount: number; scenarios: Scenario[]; tags: string[]; }; export type Scenario = { featureIndex: number; scenarioIndex: number; command: string; }; export type Schedule = { days: string[]; //? ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] isBiweekly: boolean; //? if true, repeat every two weeks else repeat every week time: string; //? HH:mm timeZone: number; //? relative to GMT, -ve or +ve Double value, example: -2:30 would be -2.5, +5:30 would be 5.5 }; export const ScheduleTemplate = { days: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], isBiweekly: false, time: '00:00', timeZone: 0, }; export type ExecutionStatus = { executionId: string; totalScenarios: number; scenariosPassed: number; scenariosFailed: number; startTime: Date; verboseStatus: string; }; export interface InstanceInfo { executionId: string; reportLink: string; }