
    _h#                        d dl mZmZmZmZmZ d dlmZmZm	Z	 d dl
m
Z
mZmZ d dlmZ d dlmZ  G d de      Z G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d  d!e      Z G d" d#ee      Z  G d$ d%ee      Z! G d& d'e      Z" G d( d)e      Z# G d* d+e      Z$ G d, d-e      Z% G d. d/e      Z& G d0 d1e      Z' G d2 d3e'      Z( G d4 d5e      Z) G d6 d7e      Z* G d8 d9e      Z+ G d: d;e      Z, G d< d=e      Z- G d> d?e      Z. G d@ dAe      Z/ G dB dCe      Z0 G dD dEe      Z1 G dF dGe      Z2 G dH dIe      Z3 G dJ dKe      Z4 G dL dMe      Z5 G dN dOe      Z6 G dP dQe      Z7yR)S    )Optional	TypedDictUnionDictList)	BaseModelroot_validatorField)datetime	timedeltadate)Query)Enumc                       e Zd ZU eed<   y)PuTestdata_arrN)__name__
__module____qualname__list__annotations__      /var/www/html/trade_iq/models.pyr   r      s    Nr   r   c                   ,    e Zd ZU eed<   eed<   eed<   y)WatchlistAPIsymbolexchangeactionN)r   r   r   strr   intr   r   r   r   r   
   s    KMKr   r   c                   6    e Zd ZU dZee   ed<   dZee   ed<   y)IndexAPINr   r   )r   r   r   r   r   r    r   r   r   r   r   r#   r#      s     FHSM "Hhsm"r   r#   c                   z    e Zd ZU eed<   eed<   dZee   ed<    ed      Z	ee   ed<    ed      Z
ee   ed	<   y)
GraphDataInputr   r   N	new_close3defaultoffset1Mduration)r   r   r   r    r   r&   r   floatr
   r*   r,   r   r   r   r%   r%      s@    KM!%Ix%!#.FHSM.#D1Hhsm1r   r%   c                   l    e Zd ZU eed<   eed<    ed      Zee   ed<   dZee   ed<   dZ	ee   ed<   y)	
ModelInputr   r   1Wr(   
time_rangeN
start_dateend_date)
r   r   r   r    r   r
   r1   r   r2   r3   r   r   r   r/   r/      s;    KM %d 3J3 $J$"Hhsm"r   r/   c                       e Zd ZU eed<    ed      Zee   ed<    ed      Zee   ed<    e	ddd	
      Z
eed<    e	ddd
      Zeed<   y)AnalyzeMultipleRequest
instrument1Yr(   r,   NSEr   d      zNumber of items per page)gedescriptionlengthr   zOffset to start fetching datar*   N)r   r   r   r    r   r
   r,   r   r   r   r=   r!   r*   r   r   r   r5   r5   !   sU    O#D1Hhsm1#E2Hhsm2/IJFCJa-LMFCMr   r5   c                   h    e Zd ZU eed<   eed<   dZee   ed<   dZee   ed<    e	d      d        Z
y)	PortfolioReportGetinvestor	data_typeNr2   r3   Tprec                     |j                  d      \|j                  d      Kt        j                         }|t        d      z
  }|j	                  d      |d<   |j	                  d      |d<   |S Nr2   r3      )daysz%Y-%m-%dgetr   todayr   strftimeclsvaluesr3   r2   s       r   set_default_datesz$PortfolioReportGet.set_default_dates.   i    ::l#+

:0F0N~~'H!I2$66J#-#6#6z#BF< !)!2!2:!>F:r   )r   r   r   r    r   r!   r2   r   r3   r	   rO   r   r   r   r?   r?   (   s?    MN $J$"Hhsm" r   r?   c                   ,    e Zd ZU eed<   dZee   ed<   y)PortfolioCreater@   Nr<   )r   r   r   r    r   r<   r   r   r   r   rR   rR   7   s    M!%K#%r   rR   c                   r    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   dZee   ed<   dZ	ee   ed	<   y)
	UnitOrderr   r   qtyamountr   	orderTypeNinstrument_tokenexchange_token)
r   r   r   r    r   r!   r-   rX   r   rY   r   r   r   rT   rT   ;   s=    KM	HMKN&*hsm*$(NHSM(r   rT   c                   "    e Zd ZU eed<   eed<   y)ReportEditorreport_pathnew_contentNr   r   r   r    r   r   r   r   r[   r[   E   s    r   r[   c                   "    e Zd ZU dZee   ed<   y)PortfolioFilterParamsNr@   )r   r   r   r@   r   r    r   r   r   r   r`   r`   I   s    "Hhsm"r   r`   c                   ,    e Zd ZU eed<   eed<   eed<   y)PortfolioHoldingr   rU   	avg_priceN)r   r   r   r    r   r!   r-   r   r   r   rb   rb   L   s    K	Hr   rb   c                   ,    e Zd ZU eed<   eed<   eed<   y)
ReportListr   rc   rU   N)r   r   r   r    r   r-   r!   r   r   r   re   re   Q   s    K	Hr   re   c                   2    e Zd ZU eed<   eed<   ee   ed<   y)PortfolioReportListr@   r<   holdingsN)r   r   r   r    r   r   rb   r   r   r   rg   rg   V   s    M#$$r   rg   c                       e Zd ZdZdZdZy)	SortFieldr   rU   rc   N)r   r   r   r   rU   rc   r   r   r   rj   rj   [   s    F
CIr   rj   c                       e Zd ZdZdZy)	SortOrderascdescN)r   r   r   rm   rn   r   r   r   rl   rl   `   s    
CDr   rl   c                       e Zd ZU eed<   dZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
eed<   dZeed	<   dZeed
<   dZee   ed<   ej                   Zeed<    ed      d        Zy)
ReportTypereqTypeNr2   r3   r   r   r6   
   r=   r*   
sort_field
sort_orderTrB   c                     |j                  d      \|j                  d      Kt        j                         }|t        d      z
  }|j	                  d      |d<   |j	                  d      |d<   |S rE   rH   rL   s       r   rO   zReportType.set_default_dateso   rP   r   )r   r   r   r!   r   r2   r   r    r3   r   r6   r=   r*   rs   rj   rl   rm   rt   r	   rO   r   r   r   rp   rp   d   s    L $J$"Hhsm"!Hhsm!JFCFCO&*J#*%MMJ	) r   rp   c                   "    e Zd ZU eed<   eed<   y)	PriceDatar   price_multipliedN)r   r   r   r   r   r-   r   r   r   rw   rw   x   s    
Nr   rw   c                   J    e Zd ZU eed<   eed<   eeef   ed<   eeef   ed<   y)SymbolReporttyper   rU   rc   N)r   r   r   r    r   r   r-   r   r   r   rz   rz   |   s*    
IK	ucz	UCZ  r   rz   c                   h    e Zd ZU eed<   eed<   eed<   eed<   eed<   dZee   ed<   dZ	ee   ed<   y)	Orderr   rV   quantityr   r   NrX   rY   )
r   r   r   r    r   r-   r!   rX   r   rY   r   r   r   r}   r}      s8    KMMMK&*hsm*$(NHSM(r   r}   c                   (    e Zd ZU eeeef      ed<   y)	DeleteOrdorder_idN)r   r   r   r   r   r    r   r   r   r   r   r      s    4S>""r   r   c                   ,    e Zd ZU eed<   eed<   eed<   y)UserusernameemailpasswordNr^   r   r   r   r   r      s    MJMr   r   c                       e Zd ZU eed<   y)UserInDBhashed_passwordNr^   r   r   r   r   r      s    r   r   c                   d    e Zd ZU eed<   eed<    edd      Zeeee   f   ed<   dZ	e
e   ed<   y)	
FilterItemfilter	condition.VThe value to evaluate against the filter. Can be a single string or a list of strings.r<   valueNoperatorr   r   r   r    r   r
   r   r   r   r   r   r   r   r   r   r      sB    KN#(  ;S  $TE5d3i   T"Hhsm"r   r   c                       e Zd ZU dZee   ed<    ed      Zee   ed<    ed      Z	ee   ed<   dZ
ee   ed<   dZee   ed	<   d
Zee   ed<   dZeee      ed<   y)ReportDetails_NSENinput_symbolr7   r(   r,   Equity
Instrumentr2   r3   r   r{   filtersr   r   r   r   r   r    r   r
   r,   r   r2   r3   r{   r!   r   r   r   r   r   r   r   r      t    "&L(3-&#D1Hhsm1 %h 7J7 $J$"Hhsm"D(3-*.GXd:&'.r   r   c                       e Zd ZU dZee   ed<    ed      Zee   ed<    ed      Z	ee   ed<   dZ
ee   ed<   dZee   ed	<   d
Zee   ed<   dZeee      ed<   y)ReportDetails_BSENr   r7   r(   r,   r   r   r2   r3   r   r{   r   r   r   r   r   r   r      r   r   r   c                   d    e Zd ZU eed<   eed<    edd      Zeeee   f   ed<   dZ	e
e   ed<   y)	ConditionItem_testr   r   .r   r   r   Nr   r   r   r   r   r   r      s@    KN#(q$E5d3i   #Hhsm"r   r   c                   V    e Zd ZU  edd      Zee   ed<    edd      Zee	   ed<   y)FilterItem_test.zPThe start and end dates for the time range in the format [start_date, end_date].r   	timeRangez1A list of conditions to apply within this filter.
conditionsN)
r   r   r   r
   r   r   r    r   r   r   r   r   r   r   r      s<     kItCy  ,1L,J'( r   r   c                       e Zd ZU dZee   ed<    ed      Zee   ed<    ed      Z	ee   ed<   dZ
ee   ed<   dZee   ed	<   d
Zee   ed<   dZeee      ed<   y)ReportDetails_testNr   r7   r(   r,   r   r   r2   r3   r   r{   r   )r   r   r   r   r   r    r   r
   r,   r   r2   r3   r{   r!   r   r   r   r   r   r   r   r      st    "&L(3-&#D1Hhsm1 %h 7J7 $J$"Hhsm"D(3-/3GXd?+,3r   r   c                       e Zd ZU eed<   y)PortfolioDeleteinvestorNameNr^   r   r   r   r   r      s    r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)	Conditionr   r   r   r   Nr^   r   r   r   r   r          KNJMr   r   c                   .    e Zd ZU ee   ed<   ee   ed<   y)TimeRangeQueryr   r   N)r   r   r   r   r    r   r   r   r   r   r   r      s    CyYr   r   c                   F    e Zd ZU eed<   eed<   dZee   ed<   ee   ed<   y)
QueryStore	queryNamereport_type r<   payloadN)	r   r   r   r    r   r<   r   r   r   r   r   r   r   r      s&    N!#K##.!!r   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)SecConditionr   r   r   r   Nr^   r   r   r   r   r      r   r   r   c                   .    e Zd ZU ee   ed<   ee   ed<   y)
SecPayloadr   r   N)r   r   r   r   r    r   r   r   r   r   r   r      s    Cy\""r   r   c                   <    e Zd ZU eed<   eed<   ee   ed<   eed<   y)SecQueryr   r<   r   r   N)r   r   r   r    r   r   r   r   r   r   r   r      s    N*r   r   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)SectionsectionNamer<   Queries	queryTyper   Nr^   r   r   r   r   r      s    LNr   r   c                   t    e Zd ZU eed<   eed<   dZee   ed<    e ej                               Z	ee   ed<   y)	PricesAPIr   r   z
2024-01-01r2   r3   N)
r   r   r   r    r   r2   r   r   rJ   r3   r   r   r   r   r      s5    MK ,J,!*$**,/Hhsm/r   r   N)8typingr   r   r   r   r   pydanticr   r	   r
   r   r   r   fastapir   enumr   r   r   r#   r%   r/   r5   r?   rR   rT   r[   r`   rb   re   rg   r    rj   rl   rp   rw   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s   9 9 5 5 . .  Y 9 
#y #2Y 2# #NY N &i &)	 )9 #I #y 
 
%) %
T 
T  (	 !9 !)I )#	 #9 
t # #/	 //	 /# #i 4 4i 	  Y  " "9 # #y i 0	 0r   