
    Ѯh                        d dl mZ ddg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LimitOffsetPageLimitOffsetParams)Sequence)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d      Zded<    eddd	
      Zded<   ddZy)r   2   r   d   zPage size limit)geledescriptionintlimitr   zPage offset)r   r   offsetc                D    t        | j                  | j                        S )N)r   r   )r   r   r   )selfs    q/home/www/academy-backend.kofcorporation.com/venv/lib/python3.12/site-packages/fastapi_pagination/limit_offset.pyto_raw_paramszLimitOffsetParams.to_raw_params   s    **;;
 	
    N)returnr   )__name__
__module____qualname__r
   r   __annotations__r   r"    r#   r!   r   r      s0    raC5FGE3Ga];FC;
r#   c                  P    e Zd ZU ded<   ded<   eZedd	 	 	 	 	 	 	 	 	 dd       Zy)	r   r   r   r   r   N)totalc                   |j                         j                         }t        | f|||j                  |j                  d|S )N)r+   itemsr   r   )r"   as_limit_offsetr   r   r   )clsr-   paramsr+   kwargs
raw_paramss         r!   createzLimitOffsetPage.create'   sR     ))+;;=
$
""$$
 
 	
r#   )
r-   zSequence[TAny]r0   r   r+   zOptional[int]r1   r   r$   zLimitOffsetPage[TAny])r%   r&   r'   r(   r   __params_type__classmethodr3   r)   r#   r!   r   r   !   sZ    'O  $

 

 
 
 

 
r#   N)
__future__r   __all__collections.abcr   typingr   r   r	   fastapir
   pydanticr   typing_extensionsr   basesr   r   r   typesr   r   utilsr   r   r   r   r)   r#   r!   <module>r@      sg    " 
 % ) )   % 6 6 4 (vs#
	> 

htngdm 
r#   