a
    jFwj                     @  s   d dl mZ d dlmZmZ d dlmZ d dlmZ d dlm	Z	 G dd de
eZedd	G d
d dZedd	G dd dZdS )    )annotations)asdict	dataclass)datetime)Enum)Anyc                   @  s(   e Zd ZdZdZdZdZdZdZdZ	dS )	RadarStatusAWALSIAGAEKSEKUSITAHANLEPASJUALLEWATIN)
__name__
__module____qualname__ZEARLYZPREPAREZREADYZHOLDZRELEASEZSELLZSKIP r   r   5/home/opc/hanz-radar/runtime/src/hanz_radar/models.pyr   	   s   r   T)frozenc                   @  sl   e Zd ZU ded< ded< ded< ded< ded	< ded
< ded< ded< ded< ded< ddddZdS )RadarSignalstrsymbolmarketr   statusintevidencefloatZanomalyriskzfloat | Nonepricez
str | Nonetriggerreasonr   	timestampdict[str, Any]returnc                 C  s&   t | }| jj|d< | j |d< |S )Nr   r"   )r   r   valuer"   	isoformat)selfdatar   r   r   to_dict    s    zRadarSignal.to_dictNr   r   r   __annotations__r*   r   r   r   r   r      s   
r   c                   @  s4   e Zd ZU ded< ded< ded< ddd	d
ZdS )RadarSnapshotr   generated_atr   total_symbolsztuple[RadarSignal, ...]active_signalsr#   r$   c                 C  s"   d| j  | jdd | jD dS )N   c                 S  s   g | ]}|  qS r   )r*   ).0signalr   r   r   
<listcomp>2       z)RadarSnapshot.to_dict.<locals>.<listcomp>)Zschema_versionr.   ZTOTALZRADAR)r.   r'   r/   r0   )r(   r   r   r   r*   -   s
    zRadarSnapshot.to_dictNr+   r   r   r   r   r-   '   s   
r-   N)
__future__r   dataclassesr   r   r   enumr   typingr   r   r   r   r-   r   r   r   r   <module>   s   
