use serde::{Deserialize, Serialize};

use crate::state::RuntimeNearCityAcquisitionValueProvenance;

#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct RuntimeAnnualFinanceNewsEvent {
    pub company_id: u32,
    pub selector_label: String,
    pub action_label: String,
    pub retired_principal_total: u64,
    pub issued_principal_total: u64,
    pub repurchased_share_count: u64,
    pub issued_share_count: u64,
}

#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct RuntimeNearCityAcquisitionNewsEvent {
    pub company_id: u32,
    pub site_id: u32,
    pub site_primary_name: String,
    pub site_secondary_name: String,
    pub selector_label: String,
    pub outcome_label: String,
    pub subtype_label: String,
    #[serde(default)]
    pub owner_company_id_provenance: RuntimeNearCityAcquisitionValueProvenance,
    #[serde(default)]
    pub cached_tri_lane_provenance: RuntimeNearCityAcquisitionValueProvenance,
}
