diff --git a/crates/fidc-core/src/cost.rs b/crates/fidc-core/src/cost.rs index 61ad310..e95e135 100644 --- a/crates/fidc-core/src/cost.rs +++ b/crates/fidc-core/src/cost.rs @@ -89,6 +89,10 @@ impl ChinaAShareCostModel { self.fixed.minimum_commission = Self::fixed_money(value, "minimum commission"); } + pub fn set_transfer_fee_rate(&mut self, value: f64) { + self.fixed.transfer_fee_rate = Self::fixed_money(value, "transfer fee rate"); + } + pub fn set_stamp_tax_rate_before_change(&mut self, value: f64) { self.fixed.stamp_tax_rate_before_change = Self::fixed_money(value, "stamp tax rate before change"); @@ -103,6 +107,30 @@ impl ChinaAShareCostModel { self.fixed.stamp_tax_change_date = value; } + pub fn commission_rate(&self) -> f64 { + self.fixed.commission_rate.to_f64() + } + + pub fn minimum_commission(&self) -> f64 { + self.fixed.minimum_commission.to_f64() + } + + pub fn transfer_fee_rate(&self) -> f64 { + self.fixed.transfer_fee_rate.to_f64() + } + + pub fn stamp_tax_rate_before_change(&self) -> f64 { + self.fixed.stamp_tax_rate_before_change.to_f64() + } + + pub fn stamp_tax_rate_after_change(&self) -> f64 { + self.fixed.stamp_tax_rate_after_change.to_f64() + } + + pub fn stamp_tax_change_date(&self) -> NaiveDate { + self.fixed.stamp_tax_change_date + } + pub fn with_commission_rate(mut self, value: f64) -> Self { self.set_commission_rate(value); self