
    !h
                         d dl mZmZ d dlmZ d dlmZmZmZ d dlZe G d d             Z	e G d d             Z
e G d	 d
             Zy)    )	dataclassasdict)datetime)ListDictAnyNc                       e Zd ZU eed<   eed<   ee   ed<   ee   ed<   ee   ed<   deeef   fdZ	e
deeef   dd fd	       Zy
)
SkillScore
skill_namescoreevidence	strengthsimprovement_areasreturnc                     t        |       S Nr   selfs    @C:\Users\pusha\Downloads\roleplay_prototype\models\assessment.pyto_dictzSkillScore.to_dict       d|    datac                      | di |S N r   clsr   s     r   	from_dictzSkillScore.from_dict       {T{r   N)__name__
__module____qualname__str__annotations__intr   r   r   r   classmethodr    r   r   r   r
   r
      sh    OJ3iCyCy c3h  T#s(^   r   r
   c                   p    e Zd ZU eed<   eed<   eed<   eed<   deeef   fdZe	deeef   dd fd       Z
y	)
ConversationTurnturn_numberspeakermessage	timestampr   c                     t        |       S r   r   r   s    r   r   zConversationTurn.to_dict   r   r   r   c                      | di |S r   r   r   s     r   r    zConversationTurn.from_dict   r!   r   N)r"   r#   r$   r'   r&   r%   r   r   r   r(   r    r   r   r   r*   r*      sV    LLNc3h  T#s(^ 0B  r   r*   c                      e Zd ZU eed<   eed<   eed<   eed<   ee   ed<   ee   ed<   e	ee
f   ed<   e	ee
f   ed<   eed	<   ededededee   dee   de	ee
f   de	ee
f   d
d fd       Zd
e	ee
f   fdZede	ee
f   d
d fd       Zy)SkillAssessment
session_idscenario_idoverall_scoreperformance_levelskill_scoresconversation_turnsconversation_analysisrecommendations
created_atr   c                      | t        t        j                               |||||||t        j                         j                         	      S )N	r3   r4   r5   r6   r7   r8   r9   r:   r;   )r%   uuiduuid4r   now	isoformat)r   r4   r5   r6   r7   r8   r9   r:   s           r   
create_newzSkillAssessment.create_new/   sF     4::<(#'/%1"7+||~//1

 
	
r   c                     t        |       S r   r   r   s    r   r   zSkillAssessment.to_dict?   r   r   r   c                     |d   D cg c]  }t         j                  |       }}|d   D cg c]  }t        j                  |       }} | |d   |d   |d   |d   |||d   |d   |d	   
	      S c c}w c c}w )Nr7   r8   r3   r4   r5   r6   r9   r:   r;   r=   )r
   r    r*   )r   r   r   r7   turnr8   s         r   r    zSkillAssessment.from_dictB   s     BFnAUV
,,U3VVKOPdKef4.88>ffL)]+/"#67%1"&'>"? !23L)

 
	
 Wfs
   A1A6N)r"   r#   r$   r%   r&   floatr   r
   r*   r   r   r(   rB   r   r    r   r   r   r2   r2   #   s    Oz""-..S>)#s(^#O
S 
 
SV 
!%j!1
GKL\G]
*.sCx.
KOPSUXPX>
^o
 
c3h  
T#s(^ 
0A 
 
r   r2   )dataclassesr   r   r   typingr   r   r   r>   r
   r*   r2   r   r   r   <module>rI      s]    )  " " 
      .
 .
 .
r   