//! Request/Response für `PUT /tours/{id}/delivery-order`. //! //! Der Client schickt **die vollständige neue Reihenfolge** aller //! Lieferungen der Tour. Der Server validiert, dass die Menge der Ids //! exakt zur Tour passt — fehlende oder fremde Ids werden hart abgelehnt. //! Damit kann ein Client mit veralteten Daten nicht versehentlich //! Lieferungen "verlieren". use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Clone, Deserialize, Serialize)] #[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] #[serde(rename_all = "camelCase")] pub struct SetDeliveryOrderRequest { /// Reihenfolge: Position im Array (0-basiert) wird zu `sort_order` /// (1-basiert) gemappt. pub delivery_ids: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] #[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] #[serde(rename_all = "camelCase")] pub struct SetDeliveryOrderResponse { pub tour_id: Uuid, pub order: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] #[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))] #[serde(rename_all = "camelCase")] pub struct DeliveryOrderEntry { pub delivery_id: Uuid, pub sort_order: i32, }