//! `exchange_rates` — kurlar (DATA_MODEL.md §3.14). Değer: 1 birim varlık = `rate_e6` / 1e6 TL. //! //! `household_id: null` → otomatik (tüm haneler, TCMB / xaus.com); dolu → hanenin elle girdiği kur. //! Otomatik kurlar gün başına tek kayıt (aynı gün yeniden çekilince güncellenir) → günlük geçmiş. use mongodb::bson::{DateTime, Uuid}; use serde::Deserialize; #[derive(Debug, Clone, Deserialize)] pub struct Rate { #[serde(rename = "_id")] pub id: Uuid, #[serde(default)] pub household_id: Option, /// Varlık kodu: `USD`, `XAU_GRAM`… pub code: String, /// TL × 1e6, birim başına pub rate_e6: i64, /// `tcmb` · `xaus` · `manual` pub source: String, /// Kurun geçerli olduğu gün (TCMB: bülten tarihi) pub rate_date: String, pub fetched_at: DateTime, } impl Rate { pub fn is_manual(&self) -> bool { self.household_id.is_some() } }