You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.1 KiB
Python

"""
Pydantic schemas for SEC filing endpoints.
"""
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel, Field
class FilingDocumentInfo(BaseModel):
type: Optional[str] = None
description: Optional[str] = None
filename: Optional[str] = None
url: Optional[str] = None
size: Optional[str] = None
class FilingSummary(BaseModel):
accession_number: str
form_type: str
filing_date: str
primary_document: Optional[str] = None
filing_description: Optional[str] = None
documents_count: Optional[int] = None
class FilingSearchResponse(BaseModel):
ticker: str
filings: List[FilingSummary]
total_count: int
metadata: dict = Field(default_factory=dict)
class FilingDocumentListResponse(BaseModel):
accession_number: str
documents: List[FilingDocumentInfo]
metadata: dict = Field(default_factory=dict)
class ExhibitContentResponse(BaseModel):
accession_number: str
exhibit_type: str
content: str
content_type: Optional[str] = None
filename: Optional[str] = None
url: Optional[str] = None