use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum UnsoldGoodsDestination {
Donation,
Recycling,
Repurposing,
SupplierReturn,
ExemptDestruction,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum UnsoldGoodsReason {
EndOfSeason,
QualityDefect,
PackagingDefect,
OverProduction,
CustomerReturn,
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct UnsoldGoodsReport {
pub reporting_period: String,
pub volume_kg: f64,
pub product_category: String,
pub reason: UnsoldGoodsReason,
pub destination: UnsoldGoodsDestination,
pub destruction_justification: Option<String>,
pub country_of_disposal: String,
pub operator_name: Option<String>,
}