Files
evotraders/shared/schema/market.py
2026-03-30 17:46:44 +08:00

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