import { FlightStatusLegacy } from '../enumerators';
import { PassengersModel } from './passengers.model';
import { EquipmentModel } from './equipment.model';
import { TrafficRestrictionsModel } from './traffic-restrictions.model';
import { Duration } from './duration.model';
import { IDepartureStation } from './departure-station.model';
import { IArrivalStation } from './arrival-station.model';
import { IDaysOfWeek } from './days-of-week.model';
import { IOperatingByLegacy, ITransition } from '.';

export interface Leg {
    departure: IDepartureStation;
    arrival: IArrivalStation;
    daysOfWeek: IDaysOfWeek;
    daysForTabs?: string[];
    index: number;
    status: FlightStatusLegacy;
    passengers: PassengersModel;
    equipment: EquipmentModel;
    trafficRestrictions: TrafficRestrictionsModel;
    reroute: boolean;
    changeRoute: boolean;
    updated: Date;
    isCurrent: boolean; // TODO: KS: create task to add this on backend
    previous: Leg;
    next: Leg;
    flightPercent: number;
    remainingFlightDuration: Duration;
    checkInPercent: number;
    duration: Duration; // current flight time/duration
    scheduledDuration: Duration;
    estimatedDuration: Duration;
    crossIndex: number;
    operatingBy: IOperatingByLegacy;
    hasCodesharing: boolean;
    transition: ITransition;
}
