use crate::core::error::ChartError;
use crate::core::model::chart::{
DecorativeStarPlacement, ScopedDecorativeStarPlacement, YearlyPeriod,
};
use crate::core::model::profile::ChartAlgorithmKind;
use crate::core::model::star::mutagen::Scope;
use crate::core::placement::natal::decorative::suiqian_jiangqian12_placements;
pub fn build_yearly_decorative_star_placements(
period: &YearlyPeriod,
algorithm: ChartAlgorithmKind,
) -> Result<Vec<ScopedDecorativeStarPlacement>, ChartError> {
let year_branch = period.stem_branch().branch();
suiqian_jiangqian12_placements(year_branch, algorithm)
.into_iter()
.map(|(branch, name, family)| {
let placement = DecorativeStarPlacement::try_new(name, family, Scope::Yearly)?;
ScopedDecorativeStarPlacement::try_new(branch, placement)
})
.collect()
}