§
    >xÅj�  ã                   óH  — d dl mZm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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 d dlmZ  G d„ de¦  «        Zdededz  defd„Zdedede de de f
d„Z!dededdfd„Z" ej#        de¬¦  «        	 	 	 	 	 d(dej$        deedz   ej%        d¬¦  «        f         deedz   ej
        d d!¬¦  «        f         dee  ej
        d"d#¬¦  «        f         dee  ej
        d$d%¬¦  «        f         d&edefd'„¦   «         Z&dS ))é    )Ú	AnnotatedÚAnyN)Ú	BaseModelÚField)ÚRichToolkit)ÚOption)Ú	APIClientÚCustomDomain)ÚUserCommandÚget_user_command_context)Údomains_app)Ú_normalize_domain_name)Úrender_custom_domain_setup)Úresolve_app_id_or_fail)ÚFastAPIRichToolkit)ÚJsonOutputOptionc                   óV   — e Zd ZU eed<   eed<   dZee e	d¬¦  «        f         ed<   dS )ÚCustomDomainAddOutputÚapp_idÚdomainT)ÚexcludeÚ
show_titleN)
Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r
   r   r   Úboolr   © ó    úWC:\Projects\Historical\venv\Lib\site-packages\fastapi_cloud_cli/commands/domains/add.pyr   r      sN   € € € € € € Ø€K€K�KØÐÐÑØ7;€J�	˜$  ¨dÐ 3Ñ 3Ô 3Ð3Ô4Ð;Ð;Ñ;Ð;Ð;r    r   Útoolkitr   Úreturnc                óÂ   — |€O| j         dk    r|                      ddd¬¦  «         |                      ddd¬	¦  «        }|                      ¦   «          t	          |¦  «        S )
NÚjsonÚmissing_required_inputzCustom domain is required.z*Pass DOMAIN to choose the hostname to add.©ÚhintzWhat domain do you want to add?u   ðŸŒ�F)ÚemojiÚbullet)ÚmodeÚfailÚinputÚ
print_liner   )r"   r   s     r!   Ú_resolve_domain_namer/      s   € ð
 €~ØŒ<˜6Ò!Ð!Ø�LŠLØ(Ø,ØAð ñ ô ð ð —’Ø-ØØð ñ 
ô 
ˆð
 	×ÒÑÔÐå! &Ñ)Ô)Ð)r    ÚstandardÚzero_downtimec          	      ó$  — |rdS |rdS | j         dk    r|                      ddd¬¦  «         |                      d|› d	�¦  «         |                      ¦   «          |                      d
t          dddœ¦  «        t          dddœ¦  «        g¬¦  «        S )NFTr%   r&   z%Custom domain setup mode is required.ú*Pass either --standard or --zero-downtime.r'   zIs z already serving traffic?Ú u$   No â€” set up a new or unused domain)ÚnameÚvalueu#   Yes â€” migrate it without downtime)Úoptions)r+   r,   Úprintr.   Úaskr   )r"   r   r0   r1   s       r!   Ú_resolve_pre_validationr:   /   sà   € ð ð ØˆuØð ØˆtØ„|�vÒÐØ�ŠØ$Ø3Ø=ð 	ñ 	
ô 	
ð 	
ð ‡M‚MÐ9˜Ð9Ð9Ð9Ñ:Ô:Ð:Ø×ÒÑÔÐà�;Š;Ø
åàBØ"ðð ñô õ àAØ!ðð ñô ð
ð ñ ô ð r    Údatac                 óÚ   — | j         r)|                     d¦  «         |                     ¦   «          |                     d| j        j        › d�d¬¦  «         t          | j        |¦  «         d S )Núcustom domainszAdded [bold]z[/bold]u   ðŸ�”)r)   )r   Úprint_titler.   r8   r   r5   r   )r;   r"   s     r!   Ú _render_custom_domain_add_outputr?   W   st   € ð „ð Ø×ÒÐ,Ñ-Ô-Ð-Ø×ÒÑÔÐà‡M‚MÐ: ¤Ô!1Ð:Ð:Ð:À&€MÑIÔIÐIÝ˜tœ{¨GÑ4Ô4Ð4Ð4Ð4r    Úadd)ÚclsFÚctxz%Hostname of the custom domain to add.)Úhelpr   z--app-idz9ID of the app to which the custom domain should be added.z
--standardzSet up a new or unused domain.z--zero-downtimez0Migrate an already-live domain without downtime.Újson_outputc                 ó  — t          | ¦  «        j        }t          ||¬¦  «        }|r|r|                     ddd¬¦  «         |du p|p| }|r4|j        dk    r)|                     d¦  «         |                     ¦   «          t          ||¬	¦  «        }t          ||||¬
¦  «        }|r|                     ¦   «          t          ¦   «         5 }	| 
                    dd¬¦  «        5 }
|	                     |
dd|¬¦  «        5  |	                     |||¬¦  «        }ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |                     t          ||| ¬¦  «        t          ¬¦  «         dS )z(
    Add a custom domain to an app.
    )r   Úinvalid_inputz#Setup modes are mutually exclusive.r3   r'   Nr%   r=   )r   )r   r0   r1   zAdding custom domainT)ÚtitleÚ	transientz3Error adding custom domain. Please try again later.zApp not found.)Údefault_messageÚnot_found_messager"   )r   r5   Úis_using_pre_validation)r   r   r   )Úrender_output)r   r"   r   r,   r+   r>   r.   r/   r:   r	   ÚprogressÚhandle_http_errorsÚcreate_custom_domainÚsuccessr   r?   )rB   r   r   r0   r1   rD   r"   Úprompts_userrK   ÚclientrM   Úcreated_domains               r!   Ú
add_domainrT   c   s¹  € õF ' sÑ+Ô+Ô3€GÝ# G°FÐ;Ñ;Ô;€Fàð 
�Mð 
Ø�ŠØØ1Ø=ð 	ñ 	
ô 	
ð 	
ð ˜T�>ÐD¨(Ð*C°mÐ%D€LØð ˜œ¨Ò.Ð.Ø×ÒÐ,Ñ-Ô-Ð-Ø×ÒÑÔÐå! '°&Ð9Ñ9Ô9€FÝ5ØØØØ#ð	ñ ô Ðð ð Ø×ÒÑÔÐå	‰Œð ˜à×ÒØ,Øð ñ ô ð	ð Ø×%Ò%ØØ!VØ"2Øð	 &ñ ô ð	ð 	ð $×8Ò8ØØØ(?ð 9ñ ô ˆNð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð& ‡O‚OÝØØ!Ø'Ð'ð	
ñ 	
ô 	
õ
 7ð ñ ô ð ð ð sZ   Ã	EÃ!D7Ã;D ÄD7Ä D$Ä$D7Ä'D$Ä(D7Ä+EÄ7D;	Ä;EÄ>D;	Ä?EÅEÅE)NNFFF)'Útypingr   r   ÚtyperÚpydanticr   r   Úrich_toolkitr   Úrich_toolkit.menur   Úfastapi_cloud_cli.apir	   r
   Ú fastapi_cloud_cli.commands._authr   r   Ú'fastapi_cloud_cli.commands.domains._appr   Ú*fastapi_cloud_cli.commands.domains._sharedr   Ú,fastapi_cloud_cli.commands.domains.renderingr   Úfastapi_cloud_cli.utils.appsr   Úfastapi_cloud_cli.utils.clir   Ú!fastapi_cloud_cli.utils.executionr   r   r   r/   r   r:   r?   ÚcommandÚContextÚArgumentrT   r   r    r!   ú<module>re      s#  ðØ !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à €€€Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø $Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $à 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø MÐ MÐ MÐ MÐ MÐ MØ SÐ SÐ SÐ SÐ SÐ SØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø :Ð :Ð :Ð :Ð :Ð :Ø >Ð >Ð >Ð >Ð >Ð >ð<ð <ð <ð <ð <˜Iñ <ô <ð <ð*Øð*ð �$‰Jð*ð 	ð	*ð *ð *ð *ð.%Øð%ð ð%ð ð	%ð
 ð%ð 
ð%ð %ð %ð %ðP	5Ø
ð	5àð	5ð 
ð	5ð 	5ð 	5ð 	5ð €Ô�U Ð,Ñ,Ô,ð 	ð 	ð 	ð 	Ø$)ð;Vð VØ	ŒðVàØˆd‰
ØˆŒØ8ð	
ñ 	
ô 	
ð	ôðVð Øˆd‰
ØˆŒØØLð	
ñ 	
ô 	
ð	ôðVð ØØˆŒØØ1ð	
ñ 	
ô 	
ð	ôðVð, ØØˆŒØØCð	
ñ 	
ô 	
ð	ôð-Vð: "ð;Vð< 	ð=Vð Vð Vñ -Ô,ðVð Vð Vr    