
    Eoh
                         d dl Z d dlZd dl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 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 d dlmZmZ dede	dedefdZy)    N)datetime	timedelta)status)Session)UserRegisterSchema)Role)UserPermissions)Users)UserReturnSchema)settings)APIException)UserAccessLevel)get_password_hashget_site_settings_valuedbpayloadaccess_levelreturnc                   K   | j                  t              j                  t        j                  |j                  k(        j	                         rt        dddit        j                  d      | j                  t              j                  t        j                  |j                  k(        j	                         rt        dddit        j                  d      |j                  j                  dd      }t        |j                        }t        t        t        j                               ||j                  |j                  |d	d	t        j                          t        j                          |j"                  |j$                  
      }| j'                  |       | j)                          | j+                  |       |j-                         t.        j0                  v r	 | j                  t2              j                  t2        j4                  t.        |j-                            j6                  k(        j	                         }|rCt9        |j:                  |j:                  d	      }| j'                  |       | j)                          tA        jB                  |      S # t<        $ r!}t?        dt        |              Y d }~:d }~ww xY ww)NauthemailzEmail is already registered)moduleerrorstatus_codemessagephonez"Phone number is already registered@_T)user_idusernamer   r   password	is_activeis_verified
created_at
updated_at
first_name	last_name)r   role_id
is_primaryzError assigning role to user: )"queryr
   filterr   firstr   r   HTTP_400_BAD_REQUESTr   replacer   r!   struuiduuid4r   utcnowr&   r'   addcommitrefreshupperr   __members__r   slugvaluer	   id	Exceptionprintr   model_validate)	r   r   r   r    hashed_passwordnew_userrole	user_rolees	            ^/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/auth/services/user_services.pycreate_userrD      s    	xxekkW]]:;AAC9:331	
 	
 
xxekkW]]:;AAC@A338	
 	
 }}$$S#.H ((8(89ODJJL!mmmm ??$??$%%##H FF8IIKJJx :::
	=88D>((olFXFXFZ6[6a6a)abhhjD+HKK]ab	y!		 **844  	=23q6(;<<	=s1   GKB'J K	K!J=8K=KK)rer0   r   r   fastapir   sqlalchemy.ormr   "src.apps.auth.schemas.user_schemasr   *src.apps.role_permission.models.role_modelr   5src.apps.role_permission.models.user_permission_modelr	   src.apps.user.models.user_modelr
   "src.apps.user.schemas.user_schemasr   src.core.configr   src.core.exceptionsr   src.utils.enumsr   src.utils.helpers.functionsr   r   r/   rD        rC   <module>rS      sR    	  (  " A ; Q 1 ? $ , + R:5' :5,> :5c :5Vf :5rR   