o
    ;h
                     @   sr   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 dZ	eG dd dZ
eG d	d
 d
ZdS )    )	dataclassasdict)datetime)ListDictAnyNc                   @   sv   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dZ	e
d	eeef dd fd
dZdS )
SkillScore
skill_namescoreevidence	strengthsimprovement_areasreturnc                 C      t | S Nr   self r   U/var/www/eduai.edurigo.com/doc_train/edurigo_ai/roleplay/testing/models/assessment.pyto_dict      zSkillScore.to_dictdatac                 C      | di |S Nr   r   clsr   r   r   r   	from_dict      zSkillScore.from_dictN)__name__
__module____qualname__str__annotations__intr   r   r   r   classmethodr   r   r   r   r   r      s   
  r   c                   @   sb   e Zd ZU eed< eed< eed< eed< deeef fddZe	deeef dd fd	d
Z
dS )ConversationTurnturn_numberspeakermessage	timestampr   c                 C   r   r   r   r   r   r   r   r      r   zConversationTurn.to_dictr   c                 C   r   r   r   r   r   r   r   r      r   zConversationTurn.from_dictN)r   r    r!   r$   r#   r"   r   r   r   r%   r   r   r   r   r   r&      s   
  r&   c                   @   s   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dZd
e	ee
f fddZede	ee
f d
d fddZdS )SkillAssessment
session_idscenario_idoverall_scoreperformance_levelskill_scoresconversation_turnsconversation_analysisrecommendations
created_atr   c                 C   s*   | t t |||||||t  d	S )N	r,   r-   r.   r/   r0   r1   r2   r3   r4   )r"   uuiduuid4r   now	isoformat)r   r-   r.   r/   r0   r1   r2   r3   r   r   r   
create_new/   s   

zSkillAssessment.create_newc                 C   r   r   r   r   r   r   r   r   ?   r   zSkillAssessment.to_dictr   c                 C   sZ   dd |d D }dd |d D }| |d |d |d |d	 |||d
 |d |d d	S )Nc                 S      g | ]}t |qS r   )r   r   ).0r
   r   r   r   
<listcomp>E       z-SkillAssessment.from_dict.<locals>.<listcomp>r0   c                 S   r;   r   )r&   r   )r<   turnr   r   r   r=   F   r>   r1   r,   r-   r.   r/   r2   r3   r4   r5   r   )r   r   r0   r1   r   r   r   r   B   s   zSkillAssessment.from_dictN)r   r    r!   r"   r#   floatr   r   r&   r   r   r%   r:   r   r   r   r   r   r   r+   #   s2   
 

 r+   )dataclassesr   r   r   typingr   r   r   r6   r   r&   r+   r   r   r   r   <module>   s    