Ë
    [üàg�  ã                   óN   — d dl Z d dlmZmZmZ d dlmZ d dlmZ  G d„ de	«      Z
y)é    N)ÚAnyÚDictÚOptional©ÚTwilioException)ÚResponsec                   ó  — e Zd ZdZh d£Zi fdefd„Zd„ Zd„ Zd„ Z	e
dedefd	„«       Zd
eeef   fd„Zedee   fd„«       Zedee   fd„«       Zd
eeef   defd„Zded    fd„Zded    fd„Zded    fd„Zded    fd„Zdefd„Zy)ÚPagez¤
    Represents a page of records in a collection.

    A `Page` lets you iterate over its records and fetch the next and previous
    pages in the collection.
    >   ÚendÚuriÚpageÚstartÚtotalÚ	num_pagesÚ	page_sizeÚlast_page_uriÚnext_page_uriÚfirst_page_uriÚprevious_page_uriÚresponsec                 óŽ   — | j                  |«      }|| _        || _        || _        t	        | j                  |«      «      | _        y ©N)Úprocess_responseÚ_versionÚ_payloadÚ	_solutionÚiterÚ	load_pageÚ_records)ÚselfÚversionr   ÚsolutionÚpayloads        úN/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/twilio/base/page.pyÚ__init__zPage.__init__   s<   € Ø×'Ñ'¨Ó1ˆàˆŒØˆŒØ!ˆŒÜ˜TŸ^™^¨GÓ4Ó5ˆ�ó    c                 ó   — | S )z/
        A `Page` is a valid iterator.
        © ©r    s    r$   Ú__iter__zPage.__iter__&   s	   € ð ˆr&   c                 ó"   — | j                  «       S r   )Únextr)   s    r$   Ú__next__zPage.__next__,   s   € Ø�y‰y‹{Ðr&   c                 óJ   — | j                  t        | j                  «      «      S )z8
        Returns the next record in the `Page`.
        )Úget_instancer,   r   r)   s    r$   r,   z	Page.next/   s   € ð × Ñ ¤ d§m¡mÓ!4Ó5Ð5r&   Úreturnc                 óv   — |j                   dk7  rt        d|«      ‚t        j                  |j                  «      S )z}
        Load a JSON response.

        :param response: The HTTP response.
        :return The JSON-loaded content.
        éÈ   zUnable to fetch page)Ústatus_coder   ÚjsonÚloadsÚtext)Úclsr   s     r$   r   zPage.process_response5   s3   € ð ×Ñ 3Ò&Ü!Ð"8¸(ÓCÐCä�z‰z˜(Ÿ-™-Ó(Ð(r&   r#   c                 óè   — d|v rd|d   v r||d   d      S t        |j                  «       «      }|| j                  z
  }t        |«      dk(  r||j	                  «          S d|v r|d   S t        d«      ‚)z¦
        Parses the collection of records out of a list payload.

        :param payload: The JSON-loaded content.
        :return list: The list of records.
        ÚmetaÚkeyé   Ú	Resourcesz$Page Records can not be deserialized)ÚsetÚkeysÚ	META_KEYSÚlenÚpopr   )r    r#   r>   r:   s       r$   r   zPage.load_pageB   s„   € ð �WÑ ¨'°&©/Ñ!9Ø˜7 6™?¨5Ñ1Ñ2Ð2ä�w—|‘|“~Ó&ˆDØ˜Ÿ™Ñ'ˆCÜ�3‹x˜1Š}Ø˜sŸw™w›yÑ)Ð)Ø˜gÑ%Ø˜{Ñ+Ð+äÐDÓEÐEr&   c                 ó  — d| j                   v r#d| j                   d   v r| j                   d   d   S d| j                   v rA| j                   d   r2| j                  j                  j                  | j                   d   «      S y)z`
        :return str: Returns a link to the previous_page_url or None if doesn't exist.
        r9   Úprevious_page_urlr   N©r   r   ÚdomainÚabsolute_urlr)   s    r$   rC   zPage.previous_page_urlU   sv   € ð
 �T—]‘]Ñ"Ð':¸d¿m¹mÈFÑ>SÑ'SØ—=‘= Ñ(Ð)<Ñ=Ð=à 4§=¡=Ñ0°T·]±]ÐCVÒ5Wà—=‘=×'Ñ'×4Ñ4°T·]±]ÐCVÑ5WÓXÐXàr&   c                 ó  — d| j                   v r#d| j                   d   v r| j                   d   d   S d| j                   v rA| j                   d   r2| j                  j                  j                  | j                   d   «      S y)z\
        :return str: Returns a link to the next_page_url or None if doesn't exist.
        r9   Únext_page_urlr   NrD   r)   s    r$   rH   zPage.next_page_urlc   sr   € ð
 �T—]‘]Ñ" ¸$¿-¹-ÈÑ:OÑ'OØ—=‘= Ñ(¨Ñ9Ð9Ø §¡Ñ-°$·-±-ÀÒ2PØ—=‘=×'Ñ'×4Ñ4°T·]±]À?Ñ5SÓTÐTàr&   c                 ó   — t        d«      ‚)zŽ
        :param dict payload: A JSON-loaded representation of an instance record.
        :return: A rich, resource-dependent object.
        z<Page.get_instance() must be implemented in the derived classr   )r    r#   s     r$   r/   zPage.get_instanceo   s   € ô
 ØJó
ð 	
r&   c                 óâ   — | j                   sy| j                  j                  j                  j	                  d| j                   «      }t        | «      } || j                  || j                  «      S )zR
        Return the `Page` after this one.
        :return The next page.
        NÚGET)rH   r   rE   ÚtwilioÚrequestÚtyper   ©r    r   r7   s      r$   Ú	next_pagezPage.next_pagex   sX   € ð
 ×!Ò!Øà—=‘=×'Ñ'×.Ñ.×6Ñ6°u¸d×>PÑ>PÓQˆÜ�4‹jˆÙ�4—=‘= (¨D¯N©NÓ;Ð;r&   c              ƒ   óþ   K  — | j                   sy| j                  j                  j                  j	                  d| j                   «      ƒ d{  –—† }t        | «      } || j                  || j                  «      S 7 Œ-­w)za
        Asynchronously return the `Page` after this one.
        :return The next page.
        NrK   )rH   r   rE   rL   Úrequest_asyncrN   r   rO   s      r$   Únext_page_asynczPage.next_page_async„   sk   è ø€ ð
 ×!Ò!ØàŸ™×-Ñ-×4Ñ4×BÑBØ�4×%Ñ%ó
÷ 
ˆô �4‹jˆÙ�4—=‘= (¨D¯N©NÓ;Ð;ð	
úó   ‚AA=ÁA;Á.A=c                 óâ   — | j                   sy| j                  j                  j                  j	                  d| j                   «      }t        | «      } || j                  || j                  «      S )zW
        Return the `Page` before this one.
        :return The previous page.
        NrK   )rC   r   rE   rL   rM   rN   r   rO   s      r$   Úprevious_pagezPage.previous_page’   sX   € ð
 ×%Ò%Øà—=‘=×'Ñ'×.Ñ.×6Ñ6°u¸d×>TÑ>TÓUˆÜ�4‹jˆÙ�4—=‘= (¨D¯N©NÓ;Ð;r&   c              ƒ   óþ   K  — | j                   sy| j                  j                  j                  j	                  d| j                   «      ƒ d{  –—† }t        | «      } || j                  || j                  «      S 7 Œ-­w)zf
        Asynchronously return the `Page` before this one.
        :return The previous page.
        NrK   )rC   r   rE   rL   rR   rN   r   rO   s      r$   Úprevious_page_asynczPage.previous_page_asyncž   sk   è ø€ ð
 ×%Ò%ØàŸ™×-Ñ-×4Ñ4×BÑBØ�4×)Ñ)ó
÷ 
ˆô �4‹jˆÙ�4—=‘= (¨D¯N©NÓ;Ð;ð	
úrT   c                  ó   — y)Nz<Page>r(   r)   s    r$   Ú__repr__zPage.__repr__¬   s   € Ør&   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r?   r   r%   r*   r-   r,   Úclassmethodr   r   r   Ústrr   Úpropertyr   rC   rH   r/   rP   rS   rV   rX   rZ   r(   r&   r$   r
   r
      s  „ ñò€Ið >@ñ 6¨(ó 6òòò6ð ð
)¨ð 
)°Sò 
)ó ð
)ðF  c¨3 h¡ó Fð& ð 8¨C¡=ò ó ðð ð	˜x¨™}ò 	ó ð	ð
 D¨¨c¨¡Nð 
°só 
ð
<˜8 FÑ+ó 
<ð< x°Ñ'7ó <ð
<˜x¨Ñ/ó 
<ð<¨8°FÑ+;ó <ð˜#ô r&   r
   )r4   Útypingr   r   r   Útwilio.base.exceptionsr   Útwilio.http.responser   Úobjectr
   r(   r&   r$   ú<module>rf      s"   ðÛ ß &Ñ &å 2Ý )ôeˆ6õ er&   