use crate::models::{DemandGroup, ProductGroup};
use std::hash::Hash;
#[cfg_attr(
feature = "schemars",
derive(schemars::JsonSchema),
schemars(rename = "PortfolioRecord")
)]
#[cfg_attr(
feature = "serde",
derive(serde::Serialize, serde::Deserialize),
serde(bound(serialize = "
DateTime: serde::Serialize,
BidderId: serde::Serialize,
PortfolioId: serde::Serialize + Clone,
DemandId: serde::Serialize + Clone,
ProductId: serde::Serialize + Clone,
AppData: serde::Serialize
"))
)]
pub struct PortfolioRecord<
DateTime,
BidderId: Eq,
PortfolioId: Eq + Hash,
DemandId: Eq + Hash,
ProductId: Eq + Hash,
AppData,
> {
pub id: PortfolioId,
pub as_of: DateTime,
pub app_data: AppData,
pub bidder_id: BidderId,
pub demand_group: DemandGroup<DemandId>,
pub product_group: ProductGroup<ProductId>,
}