
    Ѯh                        U d dgZ ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZ ddlmZ ddlm Z  ddl!m"Z"m#Z#m$Z$m%Z%m&Z& ddl'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/  edee      Z0e	eef   Z1ee2d<   e	eef   Z3ee2d<   de0dedee   de0fdZ4dee   dee5e6ef      fdZ7e$de8de1dee3   de#ee9f   fd       Z:e$de8de1dee3   de*fd       Z;e$de1dee3   dede)fd       Z<e$de1dedee3   de#eee   f   fd        Z=e$de1dee3   dede(fd!       Z>e$dee   d"e	eeeef   d#e8dee3   d$ee.   d%ee-   d&ee   de8de"fd'       Z?	 d-d)d(d(d(d(d*dee   d"e	eef   d#e8dee   d$ee/   d%ee-   d&ee   defd+Z@	 d-d)d(d(d(d(d*dee   d"e	eef   d#e8dee   d$ee.   d%ee-   d&ee   defd,ZAy().	apaginatepaginate    )Sequence)partial)AnyOptionalTypeVarUnioncast)AsyncCollectionReference
AsyncQueryAsyncTransactionCollectionReferenceDocumentSnapshotQueryTransaction)AggregationQuery)AsyncAggregationQuery)	TypeAlias)AbstractParamsCursorRawParams	RawParams)Config)generic_query_apply_params)AnyFlowFlowflowrun_async_flowrun_sync_flow)
CursorFlowLimitOffsetFlow	TotalFlowgeneric_flow)AdditionalDataItemsTransformerSyncItemsTransformerTQueryAnyQueryAnyTransactionqueryparamssnapshotreturnc                 z    || j                  |      } |j                  | j                  |j                        } | S N)start_aftersizelimit)r*   r+   r,   s      r/home/www/academy-backend.kofcorporation.com/venv/lib/python3.12/site-packages/fastapi_pagination/ext/firestore.py_apply_cursorr4   $   s;    
 !!(+{{FKK(L    itemsc                    | D cg c].  }|j                         xs i dt        |j                        iz  0 c}S c c}w )Nid)to_dictstrr8   )r6   docs     r3   _convert_raw_itemsr<   0   s3    CHICS[[] bT3svv;$77IIIs   3;async_transactionc              #      K   | rt         nt        } ||      j                  d      j                  |      }t	        t
        |d   d   j                        S wNtotalr>   r   r   r   countgetr   intvaluer=   r*   r>   
aggr_query	total_ress        r3   
_get_totalrK   4   T      +1&6FJ '--g6::{:SSIYq\!_**++   AAc              #      K   | rt         nt        } ||      j                  d      j                  |      }t	        t
        |d   d   j                        S wr@   rC   rH   s        r3   _total_flowrO   @   rL   rM   
raw_paramsc              #   N   K   t        | |      } | j                  |      }|S wNrB   )r   rE   )r*   r>   rP   r6   s       r3   _limit_offset_flowrS   L   s,      'uj9E)))44ELs   #%c              #      K   |j                   x}r=| j                  j                  |      j                  |      }t	        t
        |      S y wrR   )cursor_parentdocumentrE   r   r   )r*   r+   r>   rU   raw_docs        r3   _fetch_cursorrY   X   sM      v..v6::{:SS$g..s   AAc              #      K   t        | ||      E d {   }t        | ||      } | j                  |      }|r|d|d   j                  ifS |d fS 7 >w)NrB   next_)rY   r4   rE   r8   )r*   r>   rP   r,   r6   s        r3   _cursor_flowr]   e   se      (z;GGH%X6E)))44Ewb	---$; Hs   AA?Asrcrawtransformeradditional_dataconfigc            #   .  K   t        | t              rt        |       }nt        | t              rt	        |       }n| }d }	|st
        }	t        |t        t        |||      t        t        ||      t        t        ||      ||	|||	      E d {   }
|
S 7 w)N)	r=   
total_flowlimit_offset_flowcursor_flowr+   inner_transformerr`   ra   rb   )
isinstancer   r   r   r   r<   r#   r   rO   rS   r]   )r^   r+   r_   r>   r`   ra   rb   r=   r*   rg   pages              r3   _firebase_flowrj   u   s     & #/03	C,	-c
48.";{C!"4e[IL%=+'
 
D K
s   B
BBBNF)r_   r>   r`   ra   rb   c               :    t        t        | ||||||d            S )NFr+   r_   r>   r`   ra   rb   r=   )r   rj   r^   r+   r_   r>   r`   ra   rb   s          r3   r   r      s1     ##+		
 r5   c               V   K   t        t        | ||||||d             d {   S 7 w)NTrl   )r   rj   rm   s          r3   r   r      s?       ##+		
   s    )')r/   )B__all__collections.abcr   	functoolsr   typingr   r   r	   r
   r   google.cloud.firestore_v1r   r   r   r   r   r   r   %google.cloud.firestore_v1.aggregationr   +google.cloud.firestore_v1.async_aggregationr   typing_extensionsr   fastapi_pagination.basesr   r   r   fastapi_pagination.configr   fastapi_pagination.ext.utilsr   fastapi_pagination.flowr   r   r   r   r   fastapi_pagination.flowsr    r!   r"   r#   fastapi_pagination.typesr$   r%   r&   r'   r(   __annotations__r)   r4   dictr:   r<   boolrF   rK   rO   rS   rY   r]   rj   r   r    r5   r3   <module>r      s  
 %  6 6   C M ' O O , C V V Y Y [ [	5*	-E:-.) .!+/?"?@	 @			 '(	 		Jh'78 JcSVh@X J ,,, .), 
#s(^	, , ,,, .), 	, , .)  	  			 .)	 
#x()
)*		 	 .)   	  ) ^$)	 	
) 
) .)) *+) n-) V) )  !) )^ (,
 )-2604# ^$	"E)	*
 
 +& ./ n- V 	8 (,
 .2.204# ^$	'3	4
 
 *+ *+ n- V 	r5   