65 lines
1.6 KiB
Python
65 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Market data-related schemas."""
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class InsiderTrade(BaseModel):
|
|
ticker: str
|
|
issuer: str | None = None
|
|
name: str | None = None
|
|
title: str | None = None
|
|
is_board_director: bool | None = None
|
|
transaction_date: str | None = None
|
|
transaction_shares: float | None = None
|
|
transaction_price_per_share: float | None = None
|
|
transaction_value: float | None = None
|
|
shares_owned_before_transaction: float | None = None
|
|
shares_owned_after_transaction: float | None = None
|
|
security_title: str | None = None
|
|
filing_date: str
|
|
|
|
|
|
class InsiderTradeResponse(BaseModel):
|
|
insider_trades: list[InsiderTrade]
|
|
|
|
|
|
class CompanyNews(BaseModel):
|
|
category: str | None = None
|
|
ticker: str
|
|
title: str
|
|
related: str | None = None
|
|
source: str
|
|
date: str | None = None
|
|
url: str
|
|
summary: str | None = None
|
|
|
|
|
|
class CompanyNewsResponse(BaseModel):
|
|
news: list[CompanyNews]
|
|
|
|
|
|
class CompanyFacts(BaseModel):
|
|
ticker: str
|
|
name: str
|
|
cik: str | None = None
|
|
industry: str | None = None
|
|
sector: str | None = None
|
|
category: str | None = None
|
|
exchange: str | None = None
|
|
is_active: bool | None = None
|
|
listing_date: str | None = None
|
|
location: str | None = None
|
|
market_cap: float | None = None
|
|
number_of_employees: int | None = None
|
|
sec_filings_url: str | None = None
|
|
sic_code: str | None = None
|
|
sic_industry: str | None = None
|
|
sic_sector: str | None = None
|
|
website_url: str | None = None
|
|
weighted_average_shares: int | None = None
|
|
|
|
|
|
class CompanyFactsResponse(BaseModel):
|
|
company_facts: CompanyFacts
|