use crate::continent::Coord;
use crate::decl_recruit_queue;
use crate::error::{Error, Result};
use crate::infrastructure::queue::{InfrastructureQueue, InfrastructureQueueOrder};
use crate::military::squad::Squad;
use crate::military::squad::size::SquadSize;
use crate::military::unit::{AcademyUnitId, UnitBox};
use crate::resources::Resources;
use crate::resources::workforce::Workforce;
use serde::{Deserialize, Serialize};
use std::collections::VecDeque;
use std::num::NonZeroU32;
use strum::EnumIs;
use uuid::Uuid;
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
pub struct AcademyRecruitQueue {
#[cfg_attr(feature = "typescript", ts(as = "Vec<AcademyRecruitOrder>"))]
orders: VecDeque<AcademyRecruitOrder>,
}
decl_recruit_queue!(Academy);