use aamos_core::{LedgerResult, Money, TenantId}; use chrono::NaiveDate; use serde::{Deserialize, Serialize}; pub mod nordea; pub mod revolut; // ── Banktransaktion ─────────────────────────────────────────────────────── #[derive(Debug, Clone, Serialize, Deserialize)] pub struct BankTransaction { pub transaction_id: String, pub account_number: String, pub transaction_date: NaiveDate, pub description: String, pub amount: Money, pub currency: String, pub reference: Option, pub counterparty: Option, pub raw_data: serde_json::Value, } // ── Bankimport-trait ────────────────────────────────────────────────────── #[async_trait::async_trait] pub trait BankImporter: Send + Sync { async fn fetch_transactions( &self, tenant_id: &TenantId, account_number: &str, from_date: NaiveDate, to_date: NaiveDate, ) -> LedgerResult>; } // ── Importresultat ──────────────────────────────────────────────────────── #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ImportResult { pub imported_count: usize, pub skipped_count: usize, pub failed_count: usize, pub transactions: Vec, }