a
    !fl                     @   sf   d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZ ededZG dd deee ZdS )	    )Self)GenericListTypeVarcastOptionalAnyMappingIterator)StripeObjectT)boundc                       s  e Zd ZU dZee ed< eed< eed< de	e e	e e	e e
eef edddZeed	 fd
dZee dddZedddZee dddZede	e e	e e	e edddZeedddZde	e e	e e	e e
eef edddZ  ZS )SearchResultObjectZsearch_resultdatahas_more	next_pageN)api_keystripe_versionstripe_accountparamsreturnc              
   K   s8   |  d}t|tstdtt| jd|||||dS )NurlzBCannot call .list on a list object without a string "url" propertyget)r   r   r   r   )r   
isinstancestr
ValueErrorr   r   _request)selfr   r   r   r   r    r   j/var/www/html/python-backend/venv/lib/python3.9/site-packages/stripe/api_resources/search_result_object.pysearch   s     

zSearchResultObject.search)kr   c                    s6   t |trtt| |S tdt|t|f d S )NzYou tried to access the %s index, but SearchResultObject types only support string keys. (HINT: Search calls return an object with  a 'data' (which is the data array). You likely want to call .data[%s]))r   r   superr   __getitem__KeyErrorrepr)r   r!   	__class__r   r   r#   1   s    
zSearchResultObject.__getitem__)r   c                 C   s   t | dg  S Nr   )getattr__iter__r   r   r   r   r*   ?   s    zSearchResultObject.__iter__c                 C   s   t | dg  S r(   )r)   __len__r+   r   r   r   r,   B   s    zSearchResultObject.__len__c                 c   s*   | }|D ]
}|V  q|  }|jrq&qd S N)next_search_result_pageis_empty)r   pageitemr   r   r   auto_paging_iterE   s    z#SearchResultObject.auto_paging_iter)r   r   r   r   c                 C   s   | j g dd d|||d dS )NF)r   r   r   )keyr   r   Zlast_response)Zconstruct_from)clsr   r   r   r   r   r   empty_search_resultP   s    
z&SearchResultObject.empty_search_resultc                 C   s   | j  S r-   )r   r+   r   r   r   r/   _   s    zSearchResultObject.is_emptyc                 K   sV   | j s| j|||dS | j }|d| ji || | jf |||d|}|S )N)r   r   r   r0   )r   r5   Z_retrieve_paramscopyupdater   r    )r   r   r   r   r   Zparams_with_filtersresultr   r   r   r.   c   s"    

z*SearchResultObject.next_search_result_page)NNN)NNN)NNN)__name__
__module____qualname__ZOBJECT_NAMEr   r   __annotations__boolr   r   r	   r   r   r    r   r#   r
   r*   intr,   r2   classmethodr5   propertyr/   r.   __classcell__r   r   r&   r   r      sP   
   
      
r   N)Ztyping_extensionsr   typingr   r   r   r   r   r   r	   r
   Zstripe.stripe_objectr   r   r   r   r   r   r   <module>   s   (