use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Filing {
#[serde(rename = "accessNumber")]
pub access_number: Option<String>,
pub symbol: Option<String>,
pub cik: Option<String>,
pub form: Option<String>,
#[serde(rename = "filedDate")]
pub filed_date: Option<String>,
#[serde(rename = "acceptedDate")]
pub accepted_date: Option<String>,
#[serde(rename = "reportUrl")]
pub report_url: Option<String>,
#[serde(rename = "filingUrl")]
pub filing_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InternationalFiling {
pub symbol: String,
#[serde(rename = "companyName")]
pub company_name: String,
#[serde(rename = "filedDate")]
pub filed_date: String,
pub category: String,
pub title: String,
pub description: Option<String>,
pub url: String,
pub language: String,
pub country: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EarningsCallTranscript {
#[serde(default)]
pub symbol: String,
#[serde(default)]
pub transcript: Vec<TranscriptSegment>,
#[serde(default)]
pub participant: Vec<TranscriptParticipant>,
#[serde(default)]
pub audio: String,
#[serde(default)]
pub id: String,
#[serde(default)]
pub title: String,
#[serde(default)]
pub time: String,
#[serde(default)]
pub year: i32,
#[serde(default)]
pub quarter: i32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TranscriptSegment {
#[serde(default)]
pub name: String,
#[serde(default)]
pub speech: Vec<String>,
#[serde(default)]
pub session: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TranscriptParticipant {
#[serde(default)]
pub name: String,
#[serde(default)]
pub description: String,
#[serde(default)]
pub role: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EarningsCallTranscriptsList {
pub symbol: String,
pub transcripts: Vec<TranscriptMetadata>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TranscriptMetadata {
pub id: String,
pub title: String,
pub time: String,
pub year: i32,
pub quarter: i32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EarningsCallLive {
pub events: Vec<EarningsCallLiveEvent>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EarningsCallLiveEvent {
pub symbol: String,
#[serde(rename = "eventDate")]
pub event_date: String,
#[serde(rename = "startTime")]
pub start_time: String,
pub audio: String,
#[serde(rename = "companyName")]
pub company_name: String,
#[serde(rename = "eventName")]
pub event_name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InvestorPresentations {
pub symbol: String,
pub presentations: Vec<InvestorPresentation>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InvestorPresentation {
pub date: String,
pub title: String,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SimilarityIndex {
pub cik: String,
pub similarity: Vec<SimilarityData>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SimilarityData {
pub cik: String,
#[serde(rename = "accessNumber")]
pub access_number: String,
pub item1: f64,
pub item2: f64,
pub item1a: f64,
pub item7: f64,
pub item7a: f64,
pub form: String,
#[serde(rename = "reportUrl")]
pub report_url: String,
#[serde(rename = "filingUrl")]
pub filing_url: String,
#[serde(rename = "filedDate")]
pub filed_date: String,
#[serde(rename = "acceptedDate")]
pub accepted_date: String,
}