use std::collections::HashMap;
use chrono::{DateTime, FixedOffset};
use serde::Deserialize;
use super::{Action, Code};
use crate::fetch::impl_api;
#[allow(clippy::module_name_repetitions)]
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SummaryItem {
pub name: String,
pub code: Code,
#[serde(rename = "actionCode")]
pub action: Action,
pub issue_time: DateTime<FixedOffset>,
#[serde(default)]
pub expire_time: Option<DateTime<FixedOffset>>,
pub update_time: DateTime<FixedOffset>,
}
#[derive(Clone, Debug, Deserialize)]
pub struct Summary {
#[serde(flatten)]
pub fields: HashMap<String, SummaryItem>,
}
impl_api!(Summary, weather, warnsum);