//! Port für die Lese-Anbindung an das ERP (ERPframe). //! //! Liefert die Tagestouren eines Datums als `SyncTourRequest`-DTOs — also //! genau die Repräsentation, die auch der HTTP-Sync (`POST /sync/tour`) //! nutzt. Eine `SyncTourRequest` = eine Fahrer-Tour. Die konkrete Impl //! (MSSQL via tiberius) lebt in `holzleitner-infrastructure`; die //! Application bleibt frei von DB-Treiber-Details. use async_trait::async_trait; use chrono::NaiveDate; use crate::dto::SyncTourRequest; use crate::error::ApplicationError; #[async_trait] pub trait ErpDeliverySource: Send + Sync { /// Liest alle Lieferungen des gegebenen Tages aus dem ERP und gruppiert /// sie zu **einer `SyncTourRequest` pro Fahrer** (driverPersonalnummer). /// Reine Lese-Operation; schreibt nichts ins ERP zurück. async fn fetch_tours_for_date( &self, date: NaiveDate, ) -> Result, ApplicationError>; }