
    aBi                     J   d 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	m
Z
 ddlmZ ddlmZ dd	lmZmZ dd
lmZ  eddddddddddddddddgdi eddddddddddddd       ed !       ed"!      d#$       e	d%g       e
eg      d&                      Zy)'z
Development-only endpoint for generating referral test URLs.
This endpoint auto-generates user IDs and creates signed initData for testing.
    N)quote)settingsstatus)api_viewpermission_classes)AllowAny)Response)extend_schemaOpenApiResponse)generate_signed_init_dataz%Generate referral test URL (dev only)z|Auto-generates a unique user ID and creates a signed initData URL for testing referrals. Only available in development mode.zapplication/jsonobjectstringzFirst name for the test user)typedescriptionz%Username for the test user (optional)zReferral code of the referrer)
first_nameusernamereferral_coder   r   )r   
propertiesrequiredzTest URL generated successfullyz&Full browser URL with encoded initDataintegerzAuto-generated user IDzRaw initData string)urluser_id	init_data)r   r   )r   responsez(Endpoint not available (production mode))r   zInvalid request data)   i  i  )summaryr   request	responsesPOSTc           	      ^   t         j                  rt        t         dd      st        t        j
                        S | j                  j                  d      }| j                  j                  d      }|r|st        ddit        j                        S | j                  j                  dd	      }| j                  j                  d
d      }ddl	}t        t        j                         dz        dz  }|j                  dd      }||z   }|||d}	|r||	d<   	 t        |	t         j                  |      }
|
d   }t        |d	      }t        t         dd      }| d| d}t        ||||||d      S # t         $ r3}t        ddt#        |       it        j$                        cY d}~S d}~ww xY w)z
    DEV ONLY: Generate a test URL for referral testing.
    
    Auto-generates a unique user_id and creates signed initData.
    Returns a complete browser URL ready to paste for testing.
    ENABLE_DEV_TELEGRAM_AUTHFr   r   r   errorz)first_name and referral_code are requiredr    language_codeenr   Ni@B i ʚ;i  )idr   r%   )user	bot_tokenstart_paramr   )safeTELEGRAM_WEBAPP_URLzhttp://localhost:5173z/#tgWebAppData=z*&tgWebAppVersion=7.0&tgWebAppPlatform=weba)r   r   r   r   r   r   zFailed to generate test URL: )r   DEBUGgetattrr
   r   HTTP_404_NOT_FOUNDdatagetHTTP_400_BAD_REQUESTrandominttimerandintr   TELEGRAM_BOT_TOKENr   	ExceptionstrHTTP_500_INTERNAL_SERVER_ERROR)r   r   r   r   r%   r3   timestamp_partrandom_partr   	user_datasigned_datainit_data_strencoded_init_datafrontend_urlbrowser_urles                   E/home/cursorai/projects/telegram-earn/backend/apps/users/dev_views.pygenerate_referral_test_urlrE      s   P NNwx1KUSv8899 !!,/JLL$$_5M]AB..
 	
 ||
B/HLL$$_d;M w./*<N..C(K{*G  &I  (	*
/11%
 $K0 "-b9 x)>@WX%o6G5HHrs&$ *
  	  
5c!fX>?88
 	

s   AE0 0	F,9(F'!F,'F,)__doc__r5   urllib.parser   django.confr   rest_frameworkr   rest_framework.decoratorsr   r   rest_framework.permissionsr	   rest_framework.responser
   drf_spectacular.utilsr   r   utils.telegramr   rE        rD   <module>rQ      s        ! B / , @ 4 3 O'/@^_%->ef*2Cb!c
 &7

 9 $,=ef(1BZ[*2CX!Y

 )ST)?@< 
6(XJH
   =@H
rP   