U
    Vc                     @   s   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dS )    )models)User)	Institutec                   @   s  e Zd Zejdd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j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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dZdd Zedd ZdS )EnvironmentTprimary_keyuniquedb_index.   
max_lengthr   )defaultgQ?g
ףp=
?i     
      i  d   Fr   auto_now_addr	   auto_nowr	   c                 C   s   | j S Nnameself r   '/var/www/wikiazma_server/plan/models.py_str_   s    zEnvironment._str_c                  C   s   t jjdd\t _} t jS )NT)
active_env)r   objectsget_or_createZactive_env_object)_r   r   r   get_active_environment    s    z"Environment.get_active_environmentN)__name__
__module____qualname__r   BigAutoFieldid	CharFieldr   BooleanFieldr   
FloatFieldZdefault_wage_factorZdefault_tax_factorIntegerFieldZdefault_min_wage_feeZdefault_max_institutes_per_userZ'default_max_collaborators_per_instituteZ(default_max_question_banks_per_instituteZ'default_max_questions_per_question_bankZ"default_max_examinee_per_instituteZ%default_max_future_exam_per_instituteZdefault_assign_examinee_to_examZ"default_assign_public_link_to_examZ default_enable_institute_api_keyZinitial_user_balanceDateTimeField
created_atmodified_atr   staticmethodr"   r   r   r   r   r      s*   r   c                   @   s   e Zd ZejddddZejdddZe Z	ej
ddZe
 Ze 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dZdd	 Zd
d ZdS )AbstractUserPlanTr   r
   r   nullr   r   c                 C   s   | j S r   r   r   r   r   r   r   7   s    zAbstractUserPlan._str_c                 C   s   | j r| j S | jS d S r   )priceactual_pricer   r   r   r   get_final_price:   s    z AbstractUserPlan.get_final_priceN)r#   r$   r%   r   r&   r'   r(   r   DurationFielddurationr+   r3   r4   r)   activer*   wage_factor
tax_factormin_wage_feemax_institutes_per_userr,   r-   r.   r   r5   r   r   r   r   r0   )   s   r0   c                   @   s   e Zd ZejddddZejdddZe Z	ej
ddZe
 Ze 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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dZdd	 Zd
S )AbstractInstitutePlanTr   r
   r   r1   r   r   c                 C   s   | j S r   r   r   r   r   r   r   U   s    zAbstractInstitutePlan._str_N)r#   r$   r%   r   r&   r'   r(   r   r6   r7   r+   r3   r4   r)   r8   max_collaborators_per_institute max_question_banks_per_institutemax_questions_per_question_bankmax_examinee_per_institutemax_active_exam_per_instituteassign_examinee_to_examassign_public_link_to_examenable_institute_api_keyr,   r-   r.   r   r   r   r   r   r=   A   s"   r=   c                   @   s   e Zd ZejddddZejddZeje	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jddZejddd	Zejddd
Zdd ZdS )UserPlanTr   r
   r   	on_deleter	   r	   r	   r2   r1   r   r   c                 C   s   | j S r   r   r   r   r   r   r   g   s    zUserPlan._str_N)r#   r$   r%   r   r&   r'   r(   r   
ForeignKeyr   CASCADEuserr,   
start_dateend_dater+   purchased_pricer*   r9   r:   r;   r<   r-   r.   r   r   r   r   r   rF   Y   s   rF   c                   @   s   e Zd ZejddddZejddZeje	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j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d
Zdd ZdS )InstitutePlanTr   r
   rG   rH   rJ   rK   r1   r   r   c                 C   s   | j S r   r   r   r   r   r   r      s    zInstitutePlan._str_N)r#   r$   r%   r   r&   r'   r(   r   rL   r   rM   	instituter,   rO   rP   r+   rQ   r>   r?   r@   rA   rB   r)   rC   rD   rE   r-   r.   r   r   r   r   r   rR   k   s"   rR   N)	django.dbr   Zauthenticate.modelsr   Zinstitute.modelsr   Modelr   r0   r=   rF   rR   r   r   r   r   <module>   s   #