use crate::construction::heuristics::*;
use crate::models::common::*;
use crate::models::problem::*;
use rosomaxa::prelude::*;
use std::slice::Iter;
use std::sync::Arc;
mod capacity;
pub use self::capacity::*;
mod fleet_usage;
pub use self::fleet_usage::*;
mod locked_jobs;
pub use self::locked_jobs::*;
mod minimize_unassigned;
pub use self::minimize_unassigned::*;
mod shared_resource;
pub use self::shared_resource::*;
mod total_value;
pub use self::total_value::*;
mod tour_limits;
pub use self::tour_limits::*;
mod tour_order;
pub use self::tour_order::*;
mod transport;
pub use self::transport::*;
mod work_balance;
pub use self::work_balance::*;
pub const LATEST_ARRIVAL_KEY: i32 = 1;
pub const WAITING_KEY: i32 = 2;
pub const TOTAL_DISTANCE_KEY: i32 = 3;
pub const TOTAL_DURATION_KEY: i32 = 4;
pub const LIMIT_DURATION_KEY: i32 = 5;
pub const CURRENT_CAPACITY_KEY: i32 = 11;
pub const MAX_FUTURE_CAPACITY_KEY: i32 = 12;
pub const MAX_PAST_CAPACITY_KEY: i32 = 13;
pub const RELOAD_INTERVALS_KEY: i32 = 14;
pub const MAX_LOAD_KEY: i32 = 15;
pub const BALANCE_MAX_LOAD_KEY: i32 = 20;
pub const BALANCE_ACTIVITY_KEY: i32 = 21;
pub const BALANCE_DISTANCE_KEY: i32 = 22;
pub const BALANCE_DURATION_KEY: i32 = 23;