o
    "i                     @   s@   d dl Z d dlmZ ddlmZmZmZmZ G dd deZdS )    N)Dict   )TrainingPlatformTrainingConfig	JobStatusTrainingResultc                   @   s\   e Zd Zdd ZdedefddZdedefdd	Zdede	fd
dZ
dedefddZdS )MockPlatformc                 C   s
   i | _ d S )Njobs)self r   U/lsinfo/ai/hellotax_ai/training_center/backend/app/services/training_platform/mock.py__init__   s   
zMockPlatform.__init__configreturnc                 C   s$   t t }|dddd| j|< |S )Ng        runningr   )r   progressstatuschecks)struuiduuid4r
   )r   r   job_idr   r   r   create_training_job
   s   z MockPlatform.create_training_jobr   c                 C   s   || j vrtd| d| j | }|d  d7  < t|d d d|d< |d dkr7d|d	< tdd
dddS td|d d|d  dd|d  ddS )NJob 
 not foundr   r   
   d   r   	completedr   g      Y@zTraining completed successfullyzMock training logs)r   r   messagelogsr   zTraining in progress: %zMock training logs at )r
   
ValueErrorminr   r   r   jobr   r   r   get_job_status   s&   

zMockPlatform.get_job_statusc                 C   sl   || j vrtd| d| j | }|d dkr td| dtd|d d  dd	d
dd| idS )Nr   r   r   r   z not completed yetmock_model_   g      ?gffffff?)lossaccuracy
model_pathz/mock/models/)model_idmetrics	artifacts)r
   r"   r   r$   r   r   r   get_job_result,   s   

zMockPlatform.get_job_resultc                 C   s    || j vrdS d| j | d< dS )NF	cancelledr   Tr	   )r   r   r   r   r   
cancel_job:   s   
zMockPlatform.cancel_jobN)__name__
__module____qualname__r   r   r   r   r   r&   r   r/   boolr1   r   r   r   r   r      s    
r   )	r   typingr   baser   r   r   r   r   r   r   r   r   <module>   s    