feat: Update investor and fund schemas for streamlined investment responses
This commit is contained in:
Binary file not shown.
@@ -168,12 +168,29 @@ class InvestorFundData(BaseModel):
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class InvestorMinimal(BaseModel):
|
||||
"""Minimal investor info with just id and name"""
|
||||
|
||||
id: int
|
||||
name: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class CompanySchemaMinimal(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
industry: str | None
|
||||
location: str | None
|
||||
founded_year: Optional[int]
|
||||
website: Optional[str]
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class CompanyData(BaseModel): # Renamed from CompaniesData for consistency
|
||||
company: CompanySchema
|
||||
sectors: List[SectorSchema]
|
||||
members: List[CompanyMemberSchema]
|
||||
investors: List[InvestorSchema]
|
||||
company: CompanySchemaMinimal
|
||||
investors: List[InvestorMinimal]
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
@@ -189,6 +206,49 @@ class InvestorFundList(BaseModel):
|
||||
investor_funds: List[InvestorFundData]
|
||||
|
||||
|
||||
class CompanyMinimal(BaseModel):
|
||||
"""Minimal company info with just id and name"""
|
||||
|
||||
id: int
|
||||
name: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class SectorMinimal(BaseModel):
|
||||
"""Minimal sector info with just id and name"""
|
||||
|
||||
id: int
|
||||
name: str
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class InvestmentResponse(BaseModel):
|
||||
"""Simplified investment response schema
|
||||
|
||||
One row per investor-fund combination with streamlined data
|
||||
"""
|
||||
|
||||
id: int # Investor ID
|
||||
name: (
|
||||
str # Combination of investor name and fund name (e.g., "Investor A - Fund A")
|
||||
)
|
||||
aum: int | None # From investor
|
||||
check_size_lower: int | None # From fund
|
||||
check_size_upper: int | None # From fund
|
||||
geographic_focus: str | None # From fund
|
||||
stage_focus: str | None # Comma-separated stages from fund
|
||||
portfolio_companies: List[CompanyMinimal] # Top 3 companies from investor
|
||||
sectors: List[SectorMinimal] # Top 3 sectors from fund
|
||||
compatibility_score: float # 0 to 1 (default 1 for now)
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class PaginatedResponse(BaseModel, Generic[T]):
|
||||
"""Generic paginated response schema"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user