
    ai                     h   S SK Jr  S SKr " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S	 S
\R                  5      r " S S\R                  5      r " S S\R                  5      r	 " S S\R                  5      r
 " S S\R                  5      rg)    )modelsNc                   (   \ rS rSrSr\R                  " S\R                  SS9r	\R                  " 5       r
\R                  " SS9r\R                  " SS	S
9r\R                  " SS9r\R                   " SS9r\R                   " SS9r " S S5      rSrg)UserFCMToken   z-Store user's FCM token for push notificationsTFprimary_keydefaulteditable   
max_length   mobile)r   r	   r	   auto_now_addauto_nowc                       \ rS rSrSS/rSrg)UserFCMToken.Meta   user_id	fcm_token N__name__
__module____qualname____firstlineno__unique_together__static_attributes__r       "D:\TimeStamps\ml_service\models.pyMetar      s    $k2r"   r$   r   N)r   r   r   r   __doc__r   	UUIDFielduuiduuid4idr   	CharFieldr   device_typeBooleanField	is_activeDateTimeField
created_at
updated_atr$   r!   r   r"   r#   r   r      s    7			dDJJ	OB G  C0I""b(CK##D1I%%48J%%t4J3 3r"   r   c                   N   \ rS rSrSr\R                  " S\R                  SS9r	\R                  " 5       r
\R                  " SS9r\R                  " 5       r\R                  " 5       r\R"                  " 5       r\R&                  " SS9r\R                  " 5       r " S	 S
5      rSrg)UserPattern   z&ML Model: Stores learned user patternsTFr   r   r   r   c                       \ rS rSrSS/rSrg)UserPattern.Meta   r   question_typer   Nr   r   r"   r#   r$   r5      s    $o6r"   r$   r   N)r   r   r   r   r%   r   r&   r'   r(   r)   r   r*   r7   	TimeFieldaverage_timeIntegerFieldvariance_minutes
FloatFieldconfidence_scorer.   last_updatedsample_sizer$   r!   r   r"   r#   r2   r2      s    0			dDJJ	OB G$$3M##%L**,((*''6L%%'K7 7r"   r2   c                      \ rS rSrSr\R                  " S\R                  SS9r	\R                  " 5       r
\R                  " SS9r\R                  " 5       r\R                  " 5       r\R"                  " SS9r\R"                  " SS	9rS
rg)MLModel   z"ML Model: Stores trained ML modelsTFr   2   r   r   r   r   N)r   r   r   r   r%   r   r&   r'   r(   r)   r   r*   algorithm_name	JSONField
model_datar<   accuracy_scorer.   r/   last_trainedr!   r   r"   r#   rA   rA      sw    ,			dDJJ	OB G%%4N!!#J&&(N%%48J''6Lr"   rA   c                   6   \ rS rSrSr\R                  " S\R                  SS9r	\R                  " 5       r
\R                  " 5       r\R                  " SS9r\R                  " 5       r\R                  " SS9r\R                  " SS9r\R$                  " SS	9rS
rg)AnomalyAlert)   z#ML Model: Stores detected anomaliesTFr   r   r   rC   r   r   N)r   r   r   r   r%   r   r&   r'   r(   r)   r   stamp_idr*   r7   r<   anomaly_scorealgorithm_usedseverityr.   r/   r!   r   r"   r#   rJ   rJ   )   s    -			dDJJ	OB G!H$$3M%%'M%%4N2.H%%48Jr"   rJ   c                   N   \ rS rSrSr\R                  " S\R                  SS9r	\R                  " 5       r
\R                  " SS9r\R                  " 5       r\R                  " SSSS	9r\R                   " SS
9r\R                  " SSS9r\R                  " SS9r " S S5      rSrg)ScheduledNotification4   zTrack scheduled notificationsTFr   r   r   r   )r   nullblankr   rS   rT   r   c                       \ rS rSr/ SQrSrg)ScheduledNotification.Meta?   )r   r7   scheduled_timer   Nr   r   r"   r#   r$   rW   ?   s    Hr"   r$   r   N)r   r   r   r   r%   r   r&   r'   r(   r)   r   r*   r7   r.   rY   celery_task_idr,   is_sentsent_atr/   r$   r!   r   r"   r#   rQ   rQ   4   s    '			dDJJ	OB G$$3M))+N%%4tLN!!%0G""D9G%%48JI Ir"   rQ   c                   X   \ rS rSrSr/ SQr\R                  " S\R                  SS9r
\R                  " SS9r\R                  " 5       r\R                  " 5       r\R                   " S\S	9r\R$                  " \S
9r\R$                  " \S
9r\R.                  " SS9r " S S5      rS rSrg)BurnoutAnalysisC   zStore burnout analysis results)lowLow)mediumMedium)highHigh)criticalCriticalTFr   db_indexr   r   choicesr   r   c                        \ rS rSrSrSS/rSrg)BurnoutAnalysis.MetaV   burnout_analysisz-datez-created_atr   Nr   r   r   r   db_tableorderingr!   r   r"   r#   r$   rn   V   s    %]+r"   r$   c                 T    SU R                    SU R                   SU R                   3$ )NzBurnout Analysis for User z on  - )r   daterO   selfs    r#   __str__BurnoutAnalysis.__str__Z   s'    +DLL>dii[DMM?[[r"   r   N)r   r   r   r   r%   SEVERITY_CHOICESr   r&   r'   r(   r)   r   	DateFieldrv   r<   
risk_scorer*   rO   rE   dictrisk_factorslistrecommendationsr.   r/   r$   ry   r!   r   r"   r#   r^   r^   C   s    ( 
		dDJJ	OB-GD""$J27GHH##D1L&&t4O%%48J, ,\r"   r^   c                      \ rS rSrSr/ SQr\R                  " S\R                  SS9r
\R                  " SS9r\R                  " S\S	9r\R                  " S
S9r\R                  " 5       r\R"                  " 5       r\R&                  " \S9r\R,                  " SS9r\R0                  " SS9r\R0                  " SSS9r " S S5      rS rS rSrg)BurnoutNotification^   z Track sent burnout notifications))burnout_alertzBurnout Alert)balance_suggestionzBalance Suggestion)recovery_reminderzRecovery ReminderTFr   ri   rC   rk      r   r   r   rU   c                       \ rS rSrSrS/rSrg)BurnoutNotification.Metar   burnout_notifications-sent_atr   Nrq   r   r"   r#   r$   r   r   s    *<r"   r$   c                 :    SU R                    SU R                   3$ )NzNotification for User ru   )r   notification_typerw   s    r#   ry   BurnoutNotification.__str__v   s     '~S9O9O8PQQr"   c                 h    SSK Jn  SU l        UR                  5       U l        U R                  5         gzMark notification as readr   )timezoneTNdjango.utilsr   is_readnowread_atsaverx   r   s     r#   mark_as_read BurnoutNotification.mark_as_ready   "    )||~		r"   r   r   N)r   r   r   r   r%   NOTIFICATION_TYPESr   r&   r'   r(   r)   r   r*   r   title	TextFieldmessager<   r}   rE   r~   recommendationr,   r   r.   r\   r   r$   ry   r   r!   r   r"   r#   r   r   ^   s    * 
		dDJJ	OB-G((B@RS,E G""$J%%d3N!!%0G""5G""D9G   Rr"   r   c                      \ rS rSrSr/ SQr\R                  " S\R                  SS9r
\R                  " SS9r\R                  " SS	9r\R                  " S
\S9r\R                  " SS	9r\R                   " 5       r\R$                  " SSS9r\R(                  " SS9r\R,                  " SS9r\R,                  " SSS9r " S S5      rS rS rSrg)ComplianceNotification   z)Store compliance alerts and notificationsr`   TFr   ri   rC   r   r   rk   r   rU   r   r   c                       \ rS rSrSrS/rSrg)ComplianceNotification.Meta   compliance_notificationsr   r   Nrq   r   r"   r#   r$   r      s    -<r"   r$   c                 :    SU R                    SU R                   3$ )Nz!Compliance notification for User ru   )r   
alert_typerw   s    r#   ry   ComplianceNotification.__str__   s    24<<.DOOCTUUr"   c                 h    SSK Jn  SU l        UR                  5       U l        U R                  5         gr   r   r   s     r#   r   #ComplianceNotification.mark_as_read   r   r"   r   N)r   r   r   r   r%   r{   r   r&   r'   r(   r)   r   r*   r   rO   r   r   r   r<   time_remainingr,   r   r.   r\   r   r$   ry   r   r!   r   r"   r#   r   r      s    3 
		dDJJ	OB-G!!R0J27GHH,E G&&D=N!!%0G""5G""D9G   Vr"   r   )	django.dbr   r'   Modelr   r2   rA   rJ   rQ   r^   r   r   r   r"   r#   <module>r      s     36<< 37&,, 77fll 7	96<< 	9IFLL I\fll \6 &,,  F!V\\ !r"   