U
    9d                     @   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/UseVoiceDocker/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defaultZawesome_ckeditor)Zconfig_namer   r!         F)auto_nowauto_now_addr&   c                 C   s   d| j  d| j S )NzPlan :z with paypal ID: )	plan_nameplan_idr   r   r   r   r   7   s    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:   s    zPlan.get_valid_extentionsN)"r   r   r   r   r   r)   	plan_typer(   r   r    r   plan_durationr   describe
FloatFieldpriceZpaymentSourceIntegerFieldduration_daysZvideos_per_day	TimeFieldZtime_per_videoBooleanFieldZupload_youtube_permZdownload_youtube_perm	file_sizeZparts_limitsManyToManyFieldr   r-   DateTimeFieldcreatedr   r/   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   s   d| j  d| j S )NzUser : z Make a Subscription With )userplanr   r   r   r   r   G   s    zSubscription.__str__c                 C   s   t | jjS r   )strrD   r0   r   r   r   r   get_plan_typeJ   s    zSubscription.get_plan_typeN)r   r   r   r   r;   
created_atmodified_at
ForeignKeyr   PROTECTrD   OneToOneFieldr   rC   
start_time	DateField	ends_timer8   	is_activeZpaid_statusr   rF   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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'   r>   d   )r
   rA   rB      r?      r	   Fr"   c                   @   s   e Zd ZdZdS )zPayment.Meta)rG   N)r   r   r   orderingr   r   r   r   MetaW   s   rU   c                 C   s
   t | jS r   )rE   rH   r   r   r   r   r   Y   s    zPayment.__str__N)r   r   r   r   r;   rG   rH   r   ZtransactionIDZconversationIDZreference_norI   r=   CASCADEsubscriptionZsub_idr8   rO   rU   r   r   r   r   r   rP   M   s   rP   )senderc                 K   s:   |r6ddl m }m} |j|t|jjd |_|  d S )Nr   )datetime	timedelta)days)rY   rZ   rL   intrD   r6   rN   save)rX   r<   instancekwargsrY   rZ   r   r   r   set_endtime\   s    r`   N)	django.dbr   Zdjango.db.models.signalsr   django.dispatchr   Zckeditor.fieldsr   Zapps.accounts.modelsr   Modelr   TextChoicesr   r   r=   rP   r`   r   r   r   r   <module>   s   
