
    Bi                    Z    d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
  G d de      Zy	)
zGGenerate daily rewards and referral commissions for active investments.    )annotations)date)BaseCommand)timezone)CalculateRewardsTaskc                  $    e Zd ZdZd Zd ZddZy)Commandz;Calculate daily rewards (Phase 1) using the CronTask logic.c                4    |j                  dt        d       y )Nz--datez6ISO date (YYYY-MM-DD) to calculate. Defaults to today.)typehelp)add_argumentstr)selfparsers     g/home/cursorai/projects/telegram-earn/backend/apps/investments/management/commands/calculate_rewards.pyadd_argumentszCommand.add_arguments   s    I 	 	
    c           	        | j                  |j                  d            }| j                  j                  d| d       t	        |      }	 |j                  |      }|j                  d      rG| j                  j                  | j                  j                  d|j                  d                    y | j                  j                  | j                  j                  d|j                  d                    | j                  j                  | j                  j                  d             y # t        $ rJ}| j                  j                  | j                  j                  d	t        |                    Y d }~y d }~ww xY w)
Nr   z!Running CalculateRewardsTask for z...errorzError: messagez	Success: zwNote: This command only calculates rewards (Phase 1). To distribute rewards (Phase 2), run the distribute-rewards task.zException: )_parse_dategetstdoutwriter   executestyleERRORSUCCESSWARNING	Exceptionr   )r   argsoptionstarget_datetaskresultes          r   handlezCommand.handle   s1   &&w{{6':;=k]#NO#K0	H\\+.Fzz'"!!$**"2"2WVZZ	=R<S3T"UV!!$**"4"4yIAV@W5X"YZ!!$**"4"4X# 
  	HKKdjj..SVH/EFGG	Hs!   A(D0 5A:D0 0	F9A E>>Fc                t    |rt        j                  |      S t        j                         j                         S )N)r   fromisoformatr   now)r   date_strs     r   r   zCommand._parse_date.   s+    %%h//||~""$$r   N)r+   z
str | Nonereturnr   )__name__
__module____qualname__r   r   r'   r    r   r   r	   r	      s    HD
H.%r   r	   N)__doc__
__future__r   datetimer   django.core.management.baser   django.utilsr   apps.investments.cron_tasksr   r	   r0   r   r   <module>r7      s#    M "  3 ! <$%k $%r   