
    ~]i<                     L    d dl mZ d dlmZ  G d d      ZdefdZdedefdZy	)
    )UserRepository)UserProfileRepositoryc                   X    e Zd Zededefd       Zeddddddefd       Zed        Zy)ProfileServicesvaluereturnc                     t        |       S )N)_capitalize_first_lettersr   s    B/var/www/html/dp2/backend_v2.1/server/apps/userprofile/services.pycapitalize_first_lettersz(ProfileServices.capitalize_first_letters   s    (//    N)userprofileuser_id
profile_idc                    |r| st        j                  |      } |r|st        j                  |      }|s| rt        | dd      }|rt	        |      }|rt        |      S | r!| j                  rt        | j                        S y)z
        Resolution order:
        1. Explicit profile
        2. Profile via profile_id
        3. Profile via user / user_id
        4. Username
        5. "Unknown"
        )r   )r   r   NUnknown)r   	get_by_idr   getattr_extract_full_namer
   username)r   r   r   r   	full_names        r   resolve_display_namez$ProfileServices.resolve_display_name   sw    " 4!++G<Dg+55LG4dIt4G*73I0;;DMM,T]];;r   c                 b    | j                  |      }t        j                  |       }| |d    S )N)r   suffix)status_for_companyr   r   )r   companystatusnames       r   display_name_for_companyz(ProfileServices.display_name_for_company/   s:    ((1333>x()**r   )__name__
__module____qualname__staticmethodstrr   r   r!    r   r   r   r      sc    0 0 0 0  ! 
! !F + +r   r   r   c                 l    | j                   xs d}| j                  xs d}| d| j                         S )N  )
first_name	last_namestrip)r   firstlasts      r   r   r   5   s<    $"E"DWAdV""$$r   r   c                 P    dj                  d | j                  d      D              S )z\
    Capitalizes the first letter of each space-separated part.
    Safer than .title()
    r*   c              3   r   K   | ]/  }|r'|d d j                         |dd  j                         z   nd 1 y w)N   r)   )upperlower).0words     r   	<genexpr>z,_capitalize_first_letters.<locals>.<genexpr>?   sF       %D  	Ra48>>++	$s   57)joinsplitr   s    r   r
   r
   :   s-    
 88  KK$  r   N)apps.core.repositoriesr   apps.userprofile.repositoriesr   r   r&   r   r
   r'   r   r   <module>r<      s5    1 ?.+ .+`%3 %
	S 	S 	r   