U
    j4Ad2                     @   s  d dl Z d dlmZmZmZm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mZmZ G dd	 d	eZG d
d de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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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#G d*d+ d+ejZ$G d,d- d-ejZ%G d.d/ d/ejZ&G d0d1 d1ejZ'dS )2    N)AbstractBaseUserBaseUserManager
PermissionUser)models)admin)gettext_lazy)Company)OrganizationOrganizationAdressCampainUrlsc                   @   s   e Zd ZdddZdd ZdS )SubscriberManagerNc                 K   sN   |st d|dst d| j| ||dd}|| |  |S )Nz&Users must have a valid email address.usernamez!Users must have a valid username.)emailr   )
ValueErrorgetmodelnormalize_emailset_passwordsaveselfr   passwordkwargsZ
subscriber r   +/var/www/html/services/Subscriber/models.pycreate_user   s    

zSubscriberManager.create_userc                 K   s(   | j ||f|}d|_d|_|  |S NT)r   is_adminis_staffr   r   r   r   r   create_superuser   s
    z"SubscriberManager.create_superuser)N)__name__
__module____qualname__r   r    r   r   r   r   r      s   
r   c                   @   sn  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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	Zejd
dddZejddddZejddddZejddd	Zejddd	Zejddd	Zejddd	ZejddddZejd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dej$dZ%ej#e&dddej$dZ'ej#e(ddej$dZ)ejdddZ*ejdddZ+ejdddZ,ej-ddZ.ej#e/dej$dZ0ej#dddej$dZ1ej#dddej$dZ2ejddd	Z3ejddddZ4e5 Z6dZ7ddgZ8d d! Z9d"d# Z:d$d% Z;d/d'd(Z<d)d* Z=d+d, Z>d-d. Z?d&S )0r      default2   
max_lengthTr)   nullblankunique   r+   r,   d      
   r   auto_now_addauto_now   r   Zreferuid)r+   related_name	on_delete)r&   r,   r+   r:   )r,   r+   r:   ZINR)r)   r&   r)   r+   )r&   r:   ZusercreatedZuserupdated-   )r+   r,   r)   r   Zexpiration_datec                 C   s   d | j| jgS )N )join
first_name	last_namer   r   r   r   __get_full_name__R   s    zUser.__get_full_name__c                 C   s   | j S Nr?   rA   r   r   r   __get_short_name__U   s    zUser.__get_short_name__c                 C   s   | j S rC   rD   rA   r   r   r   get_short_nameX   s    zUser.get_short_nameNc                 C   s   dS r   r   )r   permobjr   r   r   has_perm[   s    zUser.has_permc                 C   s   dS r   r   )r   	app_labelr   r   r   has_module_perms^   s    zUser.has_module_permsc                 C   s   | j S rC   )r   rA   r   r   r   r   a   s    zUser.is_staffc                 C   s   dS )zt
        Always return True. This is a way to tell if the user has been
        authenticated in templates.
        Tr   rA   r   r   r   is_authenticatedd   s    zUser.is_authenticated)N)@r!   r"   r#   r   SmallIntegerFielduserType	CharFieldr?   Zmiddle_namer@   
EmailFieldr   r   ZavatarZ	userCoverBigIntegerFieldphoneZ	phoneCodeZqualification	referenceIntegerFieldZ
affiliator
FloatFieldZfitnessUserAgentShareZtrainerAgentShareZgymAgentShare
secretCodeZotpis_superuserDateTimeFielddate_joinedupdatedDateZis_stuff	is_activeZunSubscribe
ForeignKeyCASCADEZ	referUserr
   organizationr   ZorganizationAddressZcurrencyTypeip
deviceTypeBooleanFieldZuserPrivacyr	   Zcompany	createdBy
modifiedByZcardio_minutesZcardio_methodr   objectsUSERNAME_FIELDREQUIRED_FIELDSrB   rE   rF   rI   rK   r   rL   r   r   r   r   r   %   s\   
r   c                   @   s   e Zd ZejeejdZejdddZ	ejd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dddZejddddZejddddZejddZejdd	Zd
S )UserAddressr:   Tr0   r2   r*   r'      r4   r6   N)r!   r"   r#   r   r\   r   r]   user	TextFieldZaddress1Zaddress2rO   ZtowncitystaterT   countryZzipCodeZtimeZonerX   createdDaterZ   r   r   r   r   rg   k   s   rg   c                   @   s^   e Zd ZejeejdZejdddZ	ej
ddddZejddZejddZejddZd	S )
	UserPhotorh   Tr0   static)	upload_tor+   r,   r+   r4   r6   N)r!   r"   r#   r   r\   r   r]   rj   rk   Z	photoname
ImageFieldZphotorM   Z	photoTyperX   ro   rZ   r   r   r   r   rp   x   s   rp   c                   @   s   e Zd ZdZdZeedfeedffZeje	ej
dZejddZejedddZejdd	Zejddd
ZejdddZejddd
ZejdddZejddZejddZdS )FitnessProfiler8   r$   ZMaleZFemalerh   r%   Tchoicesr+   r,   rs   r0      r;   r4   r6   N)r!   r"   r#   ZGENDER_MALEZGENDER_FEMALE_ZGENDER_TYPE_CHOICESr   r\   r   r]   rj   rT   trainingLevelrM   gender	DateFieldZdobrU   heightrO   Z
heightUnitweightZ
weightUnitrX   ro   rZ   r   r   r   r   ru      s   

ru   c                   @   s   e Zd ZejeejdZejdddZ	ejdddZ
ejdddZejdddZejddZejdddZej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dZejdddd	Zejdd
ZejddZdS )trainerProfilerh   Tr,   r+   Fr%   r   r2   r;   r*   r4   r6   N)r!   r"   r#   r   r\   r   r]   rj   rk   ZaboutTrainerZspecializationsZaccreditationsrT   Z
strengthBPra   statusZstrengthSQATZ
strengthOPZ
strengthDLZplansPublishedZtrainerVerificationZtrainerLikesrO   ZtrainerCoverrV   rX   ro   modifiedDater   r   r   r   r      s    r   c                   @   s@   e Zd ZejeejdZejddZ	ej
ddZejddZdS )trainerVideosrh   r2   r(   Tr%   r4   N)r!   r"   r#   r   r\   r   r]   trainerrO   	videoLinkra   r   rX   ro   r   r   r   r   r      s   r   c                   @   s<   e Zd ZejedejdZejedejdZej	ddZ
dS )trainerClientsZ
trainer_idr9   r:   Z	client_idTr4   N)r!   r"   r#   r   r\   r   r]   r   clientrX   ro   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je	ej
dZdS )goalsTr   )r,   r+   r&   r2   r;   rh   N)r!   r"   r#   r   rT   levelrO   purposer\   r   r]   rj   r   r   r   r   r      s   r   c                   @   sT   e Zd ZejedejdZejedejdZej	ddZ
ejddZejddZd	S )

UserfollowZFollowing_User_idr   ZFollower_User_idr8   r%   Tr4   r6   N)r!   r"   r#   r   r\   r   r]   ZfollowingUserZfollowerUserrM   r   rX   ro   r   r   r   r   r   r      s
   r   c                   @   sl   e Zd ZdZdZeedfeedffZeje	ej
dZejddddZejddddZejeddd	Zd
S )Userfriendsr8   r$   zUser Exists in StratfitzUser does not exist in Stratfitrh      T)r)   r,   r+   rv   N)r!   r"   r#   ZSTRATFIT_USERZNONSTRATFIT_USERry   ZUSER_TYPE_CHOICESr   r\   r   r]   rj   rO   namer   rM   r   r   r   r   r   r      s   

r   c                   @   s<   e Zd ZejddZe ZejddddZej	ddZ
dS )	Invitationsr1   r(   r2   Tr*      r%   N)r!   r"   r#   r   rO   r   rP   r   rV   rT   rN   r   r   r   r   r      s   r   c                   @   sT   e Zd ZejedddejdZejddZ	ej
dddZejddZejddZdS )	SocialProfileZscuserT)r9   r,   r+   r:   r/   r(   r   r4   N)r!   r"   r#   r   r\   r   r]   rj   rO   
socailNamerk   	socialUrlrX   ro   r   r   r   r   r   r      s
   r   c                   @   sd   e Zd ZejeddejdZejedejdZ	ej
ddZejdddZejdd	Zejdd	Zd
S )OrganizationSocialProfileZorg_userT)r9   r+   r:   Zorguserr   r/   r(   r   r4   N)r!   r"   r#   r   r\   r   r]   rj   r
   r^   rO   r   rk   r   rX   ro   r   r   r   r   r   r      s   r   c                   @   s   e Zd ZejddZejeej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Zejdd	d
Zejd	d	dZejdd	d
Zejdd	d
Zejdd	d
ZdS )AccountDetailsr   r%   rh   F   r(   ri   r'   Tr;   r2   r0   N)r!   r"   r#   r   rM   r   r\   r   r]   rj   ra   r&   rO   ZbankNameZaccountHolderNameZaccountNumberZifscCodeZ	swiftCodeZidProofZ
bankAdressrT   rn   rm   rl   Zzipcoder   r   r   r   r      s   r   c                   @   sN   e Zd ZejeejdZejddZ	ej
ddZejddZejdddZd	S )
UserReferralrh   <   r(   r   r%   Tr4   r   N)r!   r"   r#   r   r\   r   r]   rj   rO   ZreferralCoderT   r   rX   ro   Z
expiryDater   r   r   r   r      s
   r   c                   @   s<   e Zd ZejedejdZejedejdZej	ddZ
dS )	UserLikesZul_userr   Zlkd_userTr4   N)r!   r"   r#   r   r\   r   r]   rj   Z	likedUserrX   ro   r   r   r   r   r      s   r   c                   @   s`   e Zd ZejedejdZejdddZ	ejdddZ
ejdddZejddZejddZdS )	UserPlateWeightZpl_userr   Tr0   r8   r%   rs   N)r!   r"   r#   r   r\   r   r]   rj   rU   r~   countrT   Zbarbellr   indexr   r   r   r   r      s   r   c                   @   s&   e Zd ZejedejdZe Z	dS )UsersValidSessionsZ	sess_userr   N)
r!   r"   r#   r   r\   r   r]   rj   rk   ZsessionTokenr   r   r   r   r     s   r   c                   @   sJ   e Zd ZejedddejdZejeejdZ	ej
ddZej
ddZdS )CampaignDetailsZ	camp_userT)r9   r+   r,   r:   rh   r4   r6   N)r!   r"   r#   r   r\   r   r]   rj   r   campaignrX   ro   r   r   r   r   r   r     s   r   c                   @   s$   e Zd ZejddZejddZdS )News_letterTr-   r8   r%   N)r!   r"   r#   r   rP   Znews_letter_emailrT   Zsubscriber_statusr   r   r   r   r     s   r   )(osdjango.contrib.auth.modelsr   r   r   r   	django.dbr   Zdjango.contribr   django.utils.translationr   ry   ZCompany.modelsr	   ZStratFitOrganization.modelsr
   r   r   r   Modelrg   rp   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s6   F