
    "h*                     \    d dl Z d dlmZ  e         G d d      Zd dlZd dlZd Zd Zd Zy)    N)load_dotenvc                   P   e Zd Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Z	 ej                  d      Z
 ej                  d      Z ej                  d      Z ej                  d	      Zy
)Config	MONGO_URI
SECRET_KEYSMS_API_KEYSMS_SENDER_IDSMS_TEMPLATE_ID
EMAIL_HOST
EMAIL_PORT
EMAIL_USEREMAIL_PASSWORDN)__name__
__module____qualname__osgetenvr   r   r   r	   r
   r   r   r   r        "/var/www/html/eduruby.in/config.pyr   r      s    		+&I<(J"))M*KBIIo.Mbii 12O<(J<(J<(JRYY/0Nr   r   c                     t        | d      r| j                         }|S t        | d      r| j                         }|S t        d      )z
    Return a JSON Schema dict for a Pydantic model class that is compatible with Gemini.
    Supports both pydantic v1 (schema()) and v2 (model_json_schema()).
    model_json_schemaschemaz3Unsupported Pydantic version; can't produce schema.)hasattrr   r   RuntimeError)model_classraws     r   _get_model_schemar      sS     {/0++- J 
h	'  " J PQQr   c                     t        | t              r?| j                  dd       t        | j	                               D ]  \  }}t        |        yt        | t              r| D ]  }t        |        yy)z
    Recursively remove any 'additionalProperties' keys from the JSON schema structure,
    because Gemini API does not support that keyword.
    additionalPropertiesN)
isinstancedictpoplistitems_remove_additional_properties)objkvitems       r   r&   r&   &   si    
 #t&-% 	-DAq)!,	-	C	 	0D)$/	0 
r   c                 f    t        |       }t        j                  |      }t        |       d|d}|S )zP
    Build a cleaned schema equivalent to `List[Model]` for the Gemini API.
    array)typer%   )r   copydeepcopyr&   )pydantic_model_classitem_schemaarray_schemas      r   $build_response_schema_for_model_listr3   3   s<     $$89K--,K!+. L r   )	r   dotenvr   r   r.   inspectr   r&   r3   r   r   r   <module>r6      s3    	  	1 	1   0r   