
    Ѯh;                        d dl mZ ddg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 d
dlmZmZmZ d
dlmZmZ d
dlmZ  ede      Z G d dee      Z G d dee   e	e         Zy)    )annotationsPageParams)Sequence)ceil)AnyGenericOptional)Query)	BaseModel)TypeVar   )AbstractParamsBasePage	RawParams)GreaterEqualOneGreaterEqualZero)create_pydantic_modelTAny)defaultc                  X    e Zd ZU  eddd      Zded<    edddd	      Zded
<   ddZy)r   r   zPage number)gedescriptionintpage2   d   z	Page size)r   ler   sizec                    t        | j                  | j                  nd | j                  -| j                  !| j                  | j                  dz
  z        S d       S )Nr   )limitoffset)r   r   r   )selfs    l/home/www/academy-backend.kofcorporation.com/venv/lib/python3.12/site-packages/fastapi_pagination/default.pyto_raw_paramszParams.to_raw_params   sT    #yy4$))$26))2GDIILa499		A.
 	
gk
 	
    N)returnr   )__name__
__module____qualname__r   r   __annotations__r   r%    r&   r$   r   r      s/    aA=9D#9bQ3K@D#@
r&   c                  Z    e Zd ZU ded<   ded<   ded<   eZedd	 	 	 	 	 	 	 	 	 d	d       Zy)
r   r   r   r   r   pagesN)totalc          	         t        |t              st        d      |j                  |j                  n|xs d }|j                  |j                  nd}|dv rd}n|t        ||z        }nd }t        | f|||||d|S )NzPage should be used with Paramsr   >   Nr   r   )r/   itemsr   r   r.   )
isinstancer   	TypeErrorr   r   r   r   )clsr1   paramsr/   kwargsr   r   r.   s           r$   createzPage.create)   s     &&)=>>$kk5v{{EMT$kk5v{{19E&EE$

 
 	
r&   )
r1   zSequence[TAny]r5   r   r/   zOptional[int]r6   r   r'   z
Page[TAny])r(   r)   r*   r+   r   __params_type__classmethodr7   r,   r&   r$   r   r   "   s`    

O  $

 

 
 
 

 
r&   N)
__future__r   __all__collections.abcr   mathr   typingr   r	   r
   fastapir   pydanticr   typing_extensionsr   basesr   r   r   typesr   r   utilsr   r   r   r   r,   r&   r$   <module>rE      sj    " 
 %  ) )   % 6 6 4 (vs#
Y 
%
8D>74= %
r&   