Ë
    @h”  ã                   óˆ  — d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
mZmZmZ d dlZd dlmZ d dlmZmZmZmZ  e«       Z G d„ d	e«      Zej1                  d
d¬«      ddee   dee   fd„«       Zej1                  dd¬«      d„ «       Zej9                  dd¬«      defd„«       Zej1                  dd¬«      defd„«       Zy)é    )Ú	APIRouterÚHTTPExceptionÚDepends)Úget_market_summary_ai)Úget_all_pricesÚget_scraper)Ú	AgentTypeÚMessageÚcoordinatorÚcontext_protocolN)Ú	BaseModel)ÚOptionalÚListÚDictÚAnyc                   ó^   — e Zd ZU 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)	ÚMarketListingÚcropÚquantityÚprice_expectedÚcontactÚBaramatiÚlocationNÚnotes)	Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__Úintr   r   r   © ó    úGC:\Users\aadil\OneDrive\Desktop\404\backend\app\api\endpoints\market.pyr   r      s3   … Ø
ƒIØƒMØÓØƒLØ(€Hˆh�s‰mÓ(Ø€Eˆ8�C‰=Ôr"   r   z/priceséÈ   )Ústatus_coder   r   c           
   ƒ   óH  K  — 	 t        t        j                  «       «      }t        j                  |d| |xs ddœ«       t        j                  t        t        j                  t        j                  | |xs dddœdd|i¬«      «      ƒ d	{  –—† }|rd
|j                  v r-|r|j                  j                  d
d«      nd}t        d|¬«      ‚d|j                  j                  dg «      iS 7 Œ_# t        $ r)}t        d|› �«       t        dt        |«      ¬«      ‚d	}~ww xY w­w)zLReturns market prices from scraped sources for crops in specified locations.Úmarket_pricesr   )Úrequest_typer   r   T)r   r   Úforce_refreshÚ
get_pricesÚ
session_id©ÚsenderÚreceiverÚcontentÚmessage_typeÚcontextNÚerrorzUnknown error fetching pricesúNo response from market agentéô  ©r%   ÚdetailÚmarket_dataÚpriceszError fetching market prices: ©r   ÚuuidÚuuid4r   Úset_contextr   Úroute_messager
   r	   ÚCOORDINATORÚMARKET_ANALYZERr/   Úgetr   Ú	ExceptionÚprint)r   r   r+   Úmessager2   Úes         r#   Úget_market_pricesrE      s!  è ø€ ð"<äœŸ™›Ó&ˆ
ô 	×$Ñ$ ZØ+ØØ Ò. Jñ2
ô 	ô $×1Ñ1ÜÜ ×,Ñ,Ü"×2Ñ2à Ø (Ò 6¨JØ%)ñð
 *Ø% zÐ2ô
ó
÷ 
ˆñ ˜' W§_¡_Ñ4ÙU\�G—O‘O×'Ñ'¨Ð1PÔQð  cBˆEÜ¨C¸Ô>Ð>à˜wŸ™×2Ñ2°8¸RÓ@ÐAÐAð%
ùô( ò <ÜÐ.¨q¨cÐ2Ô3Ü¨´C¸³FÔ;Ð;ûð<üs<   ‚D"„BC- ÂC+ÂAC- Ã*D"Ã+C- Ã-	DÃ6$DÄDÄD"z/summaryc            
   ƒ   ó2  K  — 	 t        t        j                  «       «      } t        j                  | ddi«       t        j                  t        t        j                  t        j                  i dd| i¬«      «      ƒ d{  –—† }|rd|j                  v r-|r|j                  j                  dd«      nd	}t        d
|¬«      ‚d|j                  j                  dd«      iS 7 Œ_# t        $ r,}t        d|› �«       t        d
dt        |«      › �¬«      ‚d}~ww xY w­w)zMGenerates a brief AI summary of current market data using multi-agent system.r(   Úmarket_summaryÚget_summaryr+   r,   Nr2   z Unknown error generating summaryr3   r4   r5   ÚsummaryzNo market summary availablezError getting market summary: z#Could not generate market summary: r9   )r+   rC   r2   rD   s       r#   Úget_market_summaryrJ   ;   s  è ø€ ðdäœŸ™›Ó&ˆ
Ü×$Ñ$ Z°.ÐBRÐ1SÔTô $×1Ñ1ÜÜ ×,Ñ,Ü"×2Ñ2ØØ*Ø% zÐ2ôó
÷ 
ˆñ ˜' W§_¡_Ñ4ÙX_�G—O‘O×'Ñ'¨Ð1SÔTð  fEˆEÜ¨C¸Ô>Ð>à˜7Ÿ?™?×.Ñ.¨yÐ:WÓXÐYÐYð
ùô  ò dÜÐ.¨q¨cÐ2Ô3Ü¨Ð6YÔZ]Ð^_ÓZ`ÐYaÐ4bÔcÐcûðdüs<   ‚D„A9C Á=CÁ>AC ÃDÃC Ã	DÃ('DÄDÄDz	/listingséÉ   Úlistingc              ƒ   ó~  K  — 	 t        t        j                  «       «      dd }t        t        j                  «       «      }| j                  «       }||d<   d|d<   t	        j
                  d|› �|«       t        d|› �«       d||d	œS # t        $ r)}t        d
|› �«       t        dt        |«      ¬«      ‚d}~ww xY w­w)z9Allows farmers to create market listings for their crops.Né   ÚidzUser ListingÚtypeÚlisting_zReceived listing: zListing created successfully)rC   Ú
listing_idÚdetailszError creating market listing: r4   r5   )	r   r:   r;   Údictr   r<   rB   rA   r   )rL   Únew_idr+   Úlisting_dictrD   s        r#   Úadd_market_listingrW   X   sÅ   è ø€ ð<ä”T—Z‘Z“\Ó" 2 AÐ&ˆô œŸ™›Ó&ˆ
ð —|‘|“~ˆØ#ˆ�TÑØ-ˆ�VÑô 	×$Ñ$ x°¨xÐ%8¸,ÔGô
 	Ð" < .Ð1Ô2à5Ø Ø#ñ
ð 	
øô ò <ÜÐ/°¨sÐ3Ô4Ü¨´C¸³FÔ;Ð;ûð<üs)   ‚B=„BB ÂB=Â	B:Â$B5Â5B:Â:B=z/trends/{crop}c           
   ƒ   óh  K  — 	 t        t        j                  «       «      }t        j                  |d| dœ«       t        j                  t        t        j                  t        j                  d| idd|i¬«      «      ƒ d{  –—† }|rd|j                  v r-|r|j                  j                  dd	«      nd
}t        d|¬«      ‚|j                  j                  dd«      |j                  j                  dg «      dœS 7 Œz# t        $ r)}t        d|› �«       t        dt        |«      ¬«      ‚d}~ww xY w­w)z*Analyze market trends for a specific crop.Úmarket_trends)r(   r   r   Úanalyze_trendsr+   r,   Nr2   zUnknown error analyzing trendsr3   r4   r5   rC   zNo trend data availableÚhistorical_data)rC   r[   zError analyzing market trends: r9   )r   r+   rC   r2   rD   s        r#   Úget_market_trendsr\   x   s  è ø€ ð<äœŸ™›Ó&ˆ
Ü×$Ñ$ ZÀ/Ð[_Ñ1`Ôaô $×1Ñ1ÜÜ ×,Ñ,Ü"×2Ñ2Ø ˜Ø-Ø% zÐ2ôó
÷ 
ˆñ ˜' W§_¡_Ñ4ÙV]�G—O‘O×'Ñ'¨Ð1QÔRð  dCˆEÜ¨C¸Ô>Ð>ð —‘×*Ñ*¨9Ð6OÓPØ&Ÿ™×2Ñ2Ð3DÀbÓIñ
ð 	
ð
ùô( ò <ÜÐ/°¨sÐ3Ô4Ü¨´C¸³FÔ;Ð;ûð<üs<   ‚D2„A<C= Â C;ÂA9C= Ã:D2Ã;C= Ã=	D/Ä$D*Ä*D/Ä/D2)NN)Úfastapir   r   r   Úapp.core.ai_servicesr   Úapp.services.market_scraperr   r   Úapp.core.multi_agentr	   r
   r   r   r:   Úpydanticr   Útypingr   r   r   r   Úrouterr   r@   r   rE   rJ   ÚpostrW   r\   r!   r"   r#   Ú<module>re      sâ   ðß 5Ñ 5Ý 6ß Cß RÓ RÛ Ý ß ,Ó ,á	‹€ô �Iô  ð ‡�ˆI 3€Ó'ñ$< (¨3¡-ð $<À(È3Á-ò $<ó (ð$<ðL ‡�ˆJ C€Ó(ñdó )ðdð8 ‡�ˆ[ c€Ó*ð< mò <ó +ð<ð> ‡�Ð¨#€Ó.ð< #ò <ó /ñ<r"   