
    wg              	          d dl Z d dl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 dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ  G d d          Z G d de          Z e             e             e            fdedededefdZdS )    N)RussianNames)DomainInterface)DomainRepositoryInterface)TestUserSetInterface)SiteInterfaceUserInterface)UserRepositoryInterface)SiteRepositoryInterface)get_domain_repository)get_site_repository)get_user_repositoryc                       e Zd ZdS )UserGeneratorInterfaceN)__name__
__module____qualname__     //var/www/html/cms/application/user_generator.pyr   r      s        Dr   r   c                       e Zd Zdededededdf
dZede	de	fd	            Z
ede	fd
            Zede	de	de	fd            ZdeddfdZdededefdZde	de	dedededz  f
dZdS )UserGeneratorsite_repositorydomain_repositorytest_user_setuser_repositoryreturnNc                 >    || _         || _        || _        || _        d S N)r   r   r   r   )selfr   r   r   r   s        r   __init__zUserGenerator.__init__   s*      /!2*.r   	user_slugc                     |  dS )Nz@mail.rur   )r!   s    r   generate_emailzUserGenerator.generate_email$   s    %%%%r   c                      t          t          j        dd                    } ddt          |           z
  z  | z   } d|  S )Nr   i ʚ;0	   z+79)strrandomrandintlen)ss    r   generate_phonezUserGenerator.generate_phone(   s@    q-00111s1vv:"Qyyr   namesecond_namec                 T    t          j         |           t          j         |          z   S r   )	unidecode)r-   r.   s     r   ger_user_english_slugz#UserGenerator.ger_user_english_slug/   s#    "4((9+>{+K+KKKr   countc           	         t          |dd          }| j                            d          }t          | j                                                  }|D ]p}|                    d          \  }}|                     |||t          j	        |                    }|r)|
                    |                     ||                     qd S )NF)r2   
patronymictransliterateT)is_partners )r-   r.   partner_domainsite)r   r   
get_domainlistr   allsplitcreate_test_userr(   choiceappendcreate_test_site)r   r2   rnr8   sitesuserr-   r.   s           r   create_test_userszUserGenerator.create_test_users3   s    %uMMM/::t:LLT)--//00 	J 	JD $

3D+(({>X^XefkXlXl )  D  JT224HHIII	J 	Jr   rD   r8   c           	          |                      |j        |j                  }| j                            ||dd||j        |          \  }}|S )NT)domain	subdomain	is_activeuse_default_settingsadvertising_channeluser_idr-   )r1   usernamer.   r   update_or_createid)r   rD   r8   rH   r9   _s         r   rA   zUserGenerator.create_test_siteB   s[    ..t}d>NOO	&77!!% )G 8 
 
a r   r9   c                     |                      ||          }|                     |          }|                                 }	 | j                            |||d|d|||j        d| j                  }|S #  Y d S xY w)NT)rM   r.   emailemail_is_confirmedphonephone_is_confirmedregister_on_domainregister_on_sitesponsortesttest_set)r1   r#   r,   r   createrD   r   )	r   r-   r.   r8   r9   r!   rR   rT   rD   s	            r   r>   zUserGenerator.create_test_userQ   s     ..t[AA	##I..##%%	'..'#'#'#1!%	+ /  D K	44s   0A2 2A7)r   r   r   r
   r   r   r	   r    staticmethodr'   r#   r,   r1   intrE   r   r   r   rA   r>   r   r   r   r   r      s|       
/0
/ 5
/ ,	
/
 1
/ 

/ 
/ 
/ 
/ &# &# & & & \& C    \ LC Lc Lc L L L \LJs Jt J J J J] O Xe    &);JR_		     r   r   r   r   
repositoryr   c                 (    t          | |||          S )N)r   r   r   r   )r   )r   r   r   r^   s       r   get_user_generatorr`   l   s'     #+"'	   r   )r(   r0   russian_namesr   domain.domains.domainr    domain.domains.domain_repositoryr   domain.tests.test_user_setr   domain.user.entitiesr   r   domain.user.repositoryr	   !domain.user.sites.site_repositoryr
   9infrastructure.persistence.repositories.domain_repositoryr   7infrastructure.persistence.repositories.site_repositoryr   7infrastructure.persistence.repositories.user_repositoryr   r   r   r`   r   r   r   <module>rk      s        & & & & & & 1 1 1 1 1 1 F F F F F F ; ; ; ; ; ; = = = = = = = = : : : : : : E E E E E E      X W W W W W W W W W W W	 	 	 	 	 	 	 	R R R R R* R R Rn 4I3H3J3J/B/B/D/D*=*=*?*?	 0 - (	
      r   