o
    @d2                     @   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   yC:\Users\DELL\Desktop\soubhikg1894-stratfit-d75d91182fa3\soubhikg1894-stratfit-d75d91182fa3\services\Subscriber\models.pycreate_user   s   

zSubscriberManager.create_userc                 K   s,   | j ||fi |}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      | j S r!   r@   rB   r   r   r   __get_short_name__U      zUser.__get_short_name__c                 C   rD   r!   rE   rB   r   r   r   get_short_nameX   rG   zUser.get_short_nameNc                 C      dS r   r   )r   permobjr   r   r   has_perm[      zUser.has_permc                 C   rI   r   r   )r   	app_labelr   r   r   has_module_perms^   rM   zUser.has_module_permsc                 C   rD   r!   )r   rB   r   r   r   r   a   rG   zUser.is_staffc                 C   rI   )zt
        Always return True. This is a way to tell if the user has been
        authenticated in templates.
        Tr   rB   r   r   r   is_authenticatedd   s   zUser.is_authenticatedr!   )@r"   r#   r$   r   SmallIntegerFielduserType	CharFieldr@   Zmiddle_namerA   
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_FIELDSrC   rF   rH   rL   rO   r   rP   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;   Tr1   r3   r+   r(      r5   r7   N)r"   r#   r$   r   r`   r   ra   user	TextFieldZaddress1Zaddress2rS   ZtowncitystaterX   countryZzipCodeZtimeZoner\   createdDater^   r   r   r   r   rk   k   s    rk   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 )
	UserPhotorl   Tr1   static)	upload_tor,   r-   r,   r5   r7   N)r"   r#   r$   r   r`   r   ra   rn   ro   Z	photoname
ImageFieldZphotorQ   Z	photoTyper\   rs   r^   r   r   r   r   rt   x   s    rt   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 )FitnessProfiler9   r%   ZMaleZFemalerl   r&   Tchoicesr,   r-   rw   r1      r<   r5   r7   N)r"   r#   r$   ZGENDER_MALEZGENDER_FEMALE_ZGENDER_TYPE_CHOICESr   r`   r   ra   rn   rX   trainingLevelrQ   gender	DateFieldZdobrY   heightrS   Z
heightUnitweightZ
weightUnitr\   rs   r^   r   r   r   r   ry      s     

ry   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 )trainerProfilerl   Tr-   r,   Fr&   r   r3   r<   r+   r5   r7   N)r"   r#   r$   r   r`   r   ra   rn   ro   ZaboutTrainerZspecializationsZaccreditationsrX   Z
strengthBPre   statusZstrengthSQATZ
strengthOPZ
strengthDLZplansPublishedZtrainerVerificationZtrainerLikesrS   ZtrainerCoverrZ   r\   rs   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 )trainerVideosrl   r3   r)   Tr&   r5   N)r"   r#   r$   r   r`   r   ra   trainerrS   	videoLinkre   r   r\   rs   r   r   r   r   r      s
    r   c                   @   <   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r:   r;   Z	client_idTr5   N)r"   r#   r$   r   r`   r   ra   r   clientr\   rs   r   r   r   r   r          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'   r3   r<   rl   N)r"   r#   r$   r   rX   levelrS   purposer`   r   ra   rn   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_idr9   r&   Tr5   r7   N)r"   r#   r$   r   r`   r   ra   ZfollowingUserZfollowerUserrQ   r   r\   rs   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 )Userfriendsr9   r%   zUser Exists in StratfitzUser does not exist in Stratfitrl      T)r*   r-   r,   rz   N)r"   r#   r$   ZSTRATFIT_USERZNONSTRATFIT_USERr}   ZUSER_TYPE_CHOICESr   r`   r   ra   rn   rS   namer   rQ   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 )	Invitationsr2   r)   r3   Tr+      r&   N)r"   r#   r$   r   rS   r   rT   r   rZ   rX   rR   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)r:   r-   r,   r;   r0   r)   r   r5   N)r"   r#   r$   r   r`   r   ra   rn   rS   
socailNamero   	socialUrlr\   rs   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)r:   r,   r;   Zorguserr   r0   r)   r   r5   N)r"   r#   r$   r   r`   r   ra   rn   r
   rb   rS   r   ro   r   r\   rs   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&   rl   F   r)   rm   r(   Tr<   r3   r1   N)r"   r#   r$   r   rQ   r   r`   r   ra   rn   re   r'   rS   ZbankNameZaccountHolderNameZaccountNumberZifscCodeZ	swiftCodeZidProofZ
bankAdressrX   rr   rq   rp   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 )
UserReferralrl   <   r)   r   r&   Tr5   r   N)r"   r#   r$   r   r`   r   ra   rn   rS   ZreferralCoderX   r   r\   rs   Z
expiryDater   r   r   r   r      s    r   c                   @   r   )	UserLikesZul_userr   Zlkd_userTr5   N)r"   r#   r$   r   r`   r   ra   rn   Z	likedUserr\   rs   r   r   r   r   r      r   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   Tr1   r9   r&   rw   N)r"   r#   r$   r   r`   r   ra   rn   rY   r   countrX   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   ra   rn   ro   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)r:   r,   r-   r;   rl   r5   r7   N)r"   r#   r$   r   r`   r   ra   rn   r   campaignr\   rs   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.   r9   r&   N)r"   r#   r$   r   rT   Znews_letter_emailrX   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   r}   ZCompany.modelsr	   ZStratFitOrganization.modelsr
   r   r   r   Modelrk   rt   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s:    F