o
    c                     @   s   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 dej
ZG dd	 d	ejZG d
d dej
ZG dd dej
ZG dd dej
Zeeeddd ZdS )    )models)	post_save)receiver)RichTextField)Userc                   @   s    e Zd ZejddZdd ZdS )	Extention   
max_lengthc                 C   s   | j S Nvalueself r   >/var/www/html/docker_usevoice/src/apps/subscriptions/models.py__str__   s   zExtention.__str__N)__name__
__module____qualname__r   	CharFieldr   r   r   r   r   r   r   
   s    r   c                   @   s   e Zd ZdZdZdZdS )PlanTypeYearlyMonthlyWeeklyN)r   r   r   r   r   r   r   r   r   r   r      s    r   c                   @   s   e Zd ZejdddZejddZejddZejdej	ej
dZedd	Zejd
dZejddZejddZejddZejdddZejddZejddZejddZejddZeeZejddZdd Z dd Z!dS )Plan   T)r
   unique   r	      )r
   choicesdefaultawesome_ckeditor)config_namer   r!         F)auto_nowauto_now_addr(   c                 C      d| j  d| j S )NzPlan :z with paypal ID: )	plan_nameplan_idr   r   r   r   r   7      zPlan.__str__c                 C   s   dd | j  D S )Nc                 S   s   g | ]}|j qS r   r   ).0vr   r   r   
<listcomp>;   s    z-Plan.get_valid_extentions.<locals>.<listcomp>)valid_extentionsallr   r   r   r   get_valid_extentions:   r-   zPlan.get_valid_extentionsN)"r   r   r   r   r   r,   	plan_typer+   r   r    r   plan_durationr   describe
FloatFieldpricepaymentSourceIntegerFieldduration_daysvideos_per_day	TimeFieldtime_per_videoBooleanFieldupload_youtube_permdownload_youtube_perm	file_sizeparts_limitsManyToManyFieldr   r1   DateTimeFieldcreatedr   r3   r   r   r   r   r       s&    

r   c                   @   s   e Zd ZejddZejddZejeej	dZ
ejeej	dZejddZejddddZejddZejddZdd	 Zd
d ZdS )SubscriptionTr)   r'   	on_deleteF)r(   blanknullr$   c                 C   r*   )NzUser : z Make a Subscription With )userplanr   r   r   r   r   G   r-   zSubscription.__str__c                 C   s   t | jjS r   )strrN   r4   r   r   r   r   get_plan_typeJ   s   zSubscription.get_plan_typeN)r   r   r   r   rE   
created_atmodified_at
ForeignKeyr   PROTECTrN   OneToOneFieldr   rM   
start_time	DateField	ends_timer?   	is_activepaid_statusr   rP   r   r   r   r   rG   =   s    rG   c                   @   s   e Zd ZejddZejddZejddddZejddddZ	ejddddZ
ejeejdZejdd	Zejd
dZG dd dZdd ZdS )PaymentTr)   rH   d   )r
   rK   rL      rI      r	   Fr$   c                   @   s   e Zd ZdZdS )zPayment.Meta)rQ   N)r   r   r   orderingr   r   r   r   MetaW   s    r`   c                 C   s
   t | jS r   )rO   rR   r   r   r   r   r   Y   s   
zPayment.__str__N)r   r   r   r   rE   rQ   rR   r   transactionIDconversationIDreference_norS   rG   CASCADEsubscriptionsub_idr?   rY   r`   r   r   r   r   r   r[   M   s    r[   )senderc                 K   s>   |rddl m }m} |j|t|jjd |_|  d S d S )Nr   )datetime	timedelta)days)rh   ri   rV   intrN   r;   rX   save)rg   rF   instancekwargsrh   ri   r   r   r   set_endtime\   s
   ro   N)	django.dbr   django.db.models.signalsr   django.dispatchr   ckeditor.fieldsr   apps.accounts.modelsr   Modelr   TextChoicesr   r   rG   r[   ro   r   r   r   r   <module>   s    
