o
    !i                      @   s\  d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 ddl
mZ ddlmZ d dlZd d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ e Zdd Zdd Zdd Zdd Zdd ZeddefddZ eddefddZ eddefddZ ed defd!dZ ed"defd#dZ ed$defd%dZ ed&ed'ed'fded(e!fd)dZ ed*ed'ed'fded(e!fd+dZ ed,ed'ed'fded(e"fd-dZ ed.ed'ed'fd(e"defd/dZ ed0ed'ed'ed'fd1e"d2e"defd3dZ ed4ed'ed'fded(e!fd5dZ dS )6    )	APIRouterHTTPExceptionBody)	BaseModel)Optional)UserJourney   )QueryRequest)HashGeneratorNMicrolearningServiceContentCreationServiceDefaultEstimatorSummaryCreationServiceEvaluationServicec                 C      t | }|S Nr   
input_dataservice r   v/home/azureuser/microlearn/backend/user_journey_with_openai/agentic_workflow/src/user_journey_service/api/endpoints.pyget_microlearning_service      r   c                 C   r   r   r   r   r   r   r   get_content_creation_service   r   r   c                 C   r   r   r   r   r   r   r   get_evaluation_service   r   r   c                 C   r   r   r   r   r   r   r   get_defaults_service   r   r    c                 C   r   r   r   r   r   r   r   get_summary_creation_service"   r   r!   z	/run-crewr   c              
   C   sB   zt | }| }|W S  ty  } z	tdd| dd}~ww 6
    Run AI development crew with provided input.
      Unexpected error: status_codedetailN)get_user_interaction_servicerun	Exceptionr   )r   run_evaluationresponseer   r   r   run_crew&   s   	r/   z/run-defaultsc                 C   s(   t | }| }|d dkr| }|S )r#   statusfailed)r    r*   )r   r   r-   r   r   r   r/   >   s
   z/run-journeyc              
   C   sb   zt | }| }td|  |d dkr|W S |W S  ty0 } z	tdd| dd}~ww )r#   z#the response from first satge is : messagezInvalid topic.r$   r%   r&   N)r   run_journeyprintr+   r   )r   user_journeyservicer-   r.   r   r   r   r/   U   s   z/run-summaryc              
   C   sJ   zt | }td | }|W S  ty$ } z	tdd| dd}~ww )r#   zService initialised..r$   r%   r&   N)r!   r4   r*   r+   r   )r   run_summaryr-   r.   r   r   r   r/   f   s   z/run-contentcreationc              
   C   sJ   zt | }| }t| |W S  ty$ } z	tdd| dd}~ww r"   )r   run_content_creationr4   r+   r   )r   r   r-   r.   r   r   r   r/   u   s   z/session-listc              
   C   sb   t d|   t dt|   zt| }| }|W S  ty0 } z	tdd| dd}~ww r#   the input data is : zthe input data type is : r$   r%   r&   N)r4   typer   update_parsed_course_contentr+   r   )r   r   filesr.   r   r   r   r/      s   z/session-content.filec              
   C   d   t d|   t dt|   zt| }||}|W S  ty1 } z	tdd| dd}~ww r8   )r4   r:   r   display_contentr+   r   r   r=   r   r<   r.   r   r   r   r/         
z/session-qn-listc              
   C   r>   r8   )r4   r:   r   list_qnsr+   r   r@   r   r   r   r/      rA   z	/questionc              
   C   r>   r8   )r4   r:   r   display_questionr+   r   r@   r   r   r   r/      rA   z/qn-evaluationc              
   C   sd   t d|  t dt|  zt|}|| }|W S  ty1 } z	tdd| dd}~ww r8   )r4   r:   r   evaluate_individual_qnr+   r   )r=   r   r   feedbackr.   r   r   r   r/      s   
z/evaluate_answerquestionanswerc              
   C   sf   t d|  t dt|  zt|}|| |}|W S  ty2 } z	tdd| dd}~ww r8   )r4   r:   r   evaluate_individual_qn_ans_pairr+   r   )rF   rG   r   r   rE   r.   r   r   r   r/      s   z/run-evaluationc              
   C   sd   t d|   zt| }t | || || W dS  ty1 } z	tdd| dd}~ww )r#   r9   r$   r%   r&   N)r4   r   play_contentr,   r+   r   )r   r=   r   r.   r   r   r   r/      s   
)#fastapir   r   r   pydanticr   typingr   user_journey_service.crewr   models.schemasr	   utils.hashingr
   os2user_journey_service.services.user_journey_servicer   6user_journey_service.services.content_creation_servicer   .user_journey_service.services.defaults_servicer   6user_journey_service.services.summary_creation_servicer   0user_journey_service.services.evaluation_servicer   routerr   r   r   r    r!   postr/   dictstrr   r   r   r   <module>   st    ",