
    Pj                        S r SSKJr  SSKJr  SSKJr   " S S\5      r " S S\5      r " S	 S
\5      r	 " S S\5      r
 " S S\5      r " S S\5      rg)z2Pydantic v2 response models for all API endpoints.    )annotations)Optional)	BaseModelc                  r    \ rS rSr% S\S'   S\S'   SrS\S'   SrS	\S
'   S\S'   S\S'   SrS\S'   S\S'   Srg)BondRiskOut
   floatcomposite_scorestrcomposite_gradeNOptional[float]rating_scoreOptional[str]rating_gradespread_scorespread_used
spread_bpsboolis_investment_grade )	__name__
__module____qualname____firstlineno____annotations__r   r   r   __static_attributes__r       //root/lseg-credit/backend/app/models/schemas.pyr   r   
   s>    $(L/("&L-&"&J&r   r   c                  F   \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS\S'   Sr	S\S	'   Sr
S\S
'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   S\S'   Srg)LsegBondOut   Nr   isinricnameissuerr   couponmaturity_date
issue_datecoupon_freqcoupon_typerating_moodyscurrencypriceytmytwz_spreadoasasset_swap_spreadcountrysector
sub_sectordurationr   riskr   )r   r   r   r   r"   r   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   r   r    r       s    D-CD- FM "FO"#'M=' $J$#'K'!%K%#'M='"Hm"!E?!CC $Ho$C)--!G]! FM  $J$ $Ho$
r   r    c                  *    \ rS rSr% S\S'   S\S'   Srg)LsegBondListOut2   zlist[LsegBondOut]bondsintcountr   N)r   r   r   r   r   r   r   r   r   r9   r9   2   s    Jr   r9   c                  Z    \ rS rSr% S\S'   SrS\S'   S\S'   S\S	'   S\S
'   SrS\S'   Srg)LsegPortfolioSummaryOut9   r<   total_bondsNr   avg_composite_scoredict[str, int]grade_distributioninvestment_grade_counthigh_yield_countavg_spread_bpsr   )r   r   r   r   r   rB   rG   r   r   r   r   r?   r?   9   s/    +//&&&*NO*r   r?   c                  |    \ rS rSr% SrSrS\S'   SrS\S'   SrS\S'   Sr	S\S'   Sr
S\S	'   SrS\S
'   SrS\S'   Srg)PeerCurveUniverseOASD   zDAverage OAS (bps) for one maturity bucket across each peer universe.Nr   r%   rating_peersr4   r5   rating_sectorrating_sub_sectorlower_rating_sub_sectorr   )r   r   r   r   __doc__r%   r   rK   r4   r5   rL   rM   rN   r   r   r   r   rI   rI   D   sM    N"FO"$(L/("FO""&J&%)M?))--/3_3r   rI   c                      \ rS rSr% S\S'   SrS\S'   SrS\S'   SrS\S'   / rS	\S
'   Sr	S\S'   S\S'   S\S'   S\S'   Sr
S\S'   Srg)PeerCurveResponseO   r   r%   Nr   r4   r5   rating_bucketz	list[str]rating_peer_bucketslower_rating_bucketzdict[str, PeerCurveUniverseOAS]tablerC   bond_countsz
list[dict]
chart_datar0   spread_sourcer   )r   r   r   r   r   r4   r5   rS   rT   rU   rY   r   r   r   r   rQ   rQ   O   sW    K FM  $J$#'M='%'')--**#M3#r   rQ   N)rO   
__future__r   typingr   pydanticr   r   r    r9   r?   rI   rQ   r   r   r   <module>r]      sY    8 "  
) ) 6i +i +49 4
$	 
$r   