
    b?iG                     h    S SK JrJrJrJrJr  S SKJrJr  S SK	J
r
  S SKJr  SSKJr   " S S5      rg	)
    )AnyDictListOptionalcast)NotRequired	TypedDict)request)PaginationHelper   )Segmentc                       \ rS rSr " S S\5      r " S S\5      r " S S\5      r " S S	\5      r " S
 S\5      r	\
S\	S\4S j5       r\
SS\\   S\4S jj5       r\
S\S\4S j5       r\
S\S\4S j5       rSrg)Segments   c                   <    \ rS rSr% Sr\\S'    \\S'    \\S'   Srg)Segments.RemoveSegmentResponse   z
RemoveSegmentResponse is the type that wraps the response of the segment that was removed

Attributes:
    object (str): The object type, "audience"
    id (str): The ID of the removed segment
    deleted (bool): Whether the segment was deleted
objectiddeleted N)	__name__
__module____qualname____firstlineno____doc__str__annotations__bool__static_attributes__r       ]/var/www/html/livechat/backend/venv/lib/python3.13/site-packages/resend/segments/_segments.pyRemoveSegmentResponser      s+    	 	 	 	r!   r#   c                   J    \ rS rSr% \\   \S'    \\   \S'    \\   \S'   Srg)Segments.ListParams$   limitafterbeforer   N)	r   r   r   r   r   intr   r   r    r   r!   r"   
ListParamsr%   $   s6    3	 3	
 C  	r!   r+   c                   B    \ rS rSr% Sr\\S'    \\   \S'    \	\S'   Sr
g)Segments.ListResponse6   a  
ListResponse type that wraps a list of segment objects with pagination metadata

Attributes:
    object (str): The object type, always "list"
    data (List[Segment]): A list of segment objects
    has_more (bool): Whether there are more results available
r   datahas_morer   N)r   r   r   r   r   r   r   r   r   r   r    r   r!   r"   ListResponser-   6   s0    	 	 7m	 	r!   r1   c                   <    \ rS rSr% Sr\\S'    \\S'    \\S'   Srg)Segments.CreateSegmentResponseM   z
CreateSegmentResponse is the type that wraps the response of the segment that was created

Attributes:
    object (str): The object type, "audience"
    id (str): The ID of the created segment
    name (str): The name of the created segment
r   r   namer   N)r   r   r   r   r   r   r   r    r   r!   r"   CreateSegmentResponser3   M   s+    	 	 	 		r!   r6   c                        \ rS rSr% \\S'   Srg)Segments.CreateParamsd   r5   r   N)r   r   r   r   r   r   r    r   r!   r"   CreateParamsr8   d   s    		r!   r:   paramsreturnc                     Sn[         R                  [        R                     " U[	        [
        [        [        4   U5      SS9R                  5       nU$ )z
Create a segment.
see more: https://resend.com/docs/api-reference/segments/create-segment

Args:
    params (CreateParams): The segment creation parameters

Returns:
    CreateSegmentResponse: The created segment response
	/segmentspostpathr;   verb)r
   Requestr   r6   r   r   r   perform_with_content)clsr;   rA   resps       r"   createSegments.createj   sK     x==>d4S>6:



  	 r!   Nc                     SnU(       a  [        [        [        [        4   U5      OSn[        R                  " X#5      n[
        R                  [        R                     " U0 SS9R                  5       nU$ )a  
Retrieve a list of segments.
see more: https://resend.com/docs/api-reference/segments/list-segments

Args:
    params (Optional[ListParams]): Optional pagination parameters
        - limit: Number of segments to retrieve (max 100, min 1).
          If not provided, all segments will be returned without pagination.
        - after: ID after which to retrieve more segments
        - before: ID before which to retrieve more segments

Returns:
    ListResponse: A list of segment objects
r>   Ngetr@   )
r   r   r   r   build_paginated_pathr
   rC   r   r1   rD   )rE   r;   	base_pathquery_paramsrA   rF   s         r"   listSegments.list}   sd       	7=tDcNF3444YMx445bu



  	 r!   r   c                 f    SU 3n[         R                  [           " U0 SS9R                  5       nU$ )z
Retrieve a single segment.
see more: https://resend.com/docs/api-reference/segments/get-segment

Args:
    id (str): The segment ID

Returns:
    Segment: The segment object

/segments/rJ   r@   )r
   rC   r   rD   rE   r   rA   rF   s       r"   rJ   Segments.get   s=     B4 w'bu



  	 r!   c                 z    SU 3n[         R                  [        R                     " U0 SS9R	                  5       nU$ )z
Delete a single segment.
see more: https://resend.com/docs/api-reference/segments/delete-segment

Args:
    id (str): The segment ID

Returns:
    RemoveSegmentResponse: The removed segment response
rQ   deleter@   )r
   rC   r   r#   rD   rR   s       r"   removeSegments.remove   sC     B4 x==>bx



  	 r!   r   )N)r   r   r   r   r	   r#   r+   r1   r6   r:   classmethodrG   r   rN   r   r   rJ   rV   r    r   r!   r"   r   r      s    	 .Y $y .	 .y  L -B  $ (:. ,  . S W  "   5  r!   r   N)typingr   r   r   r   r   typing_extensionsr   r	   resendr
   resend.pagination_helperr   _segmentr   r   r   r!   r"   <module>r^      s#    2 2 4  5 l lr!   