
    =[jb                       d Z ddlmZ ddlmZ ddlmZ ddlmZ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  G d
 de          Z ed           G d d                      Z ed           G d d                      Z edd           G d d                      Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d d e          Z G d! d"e          Z G d# d$e          Z G d% d&e          Z G d' d(e          Z  G d) d*e          Z! G d+ d,e          Z"d1S )2z;Typed domain models for the modern Photos CloudKit service.    )annotations)	dataclass)datetime)AnyOptional)Field)CKQueryFilterByCKRecordCKZoneIDReq)CKModel)PyiCloudExceptionc                  ,     e Zd ZdZdddd fd
Z xZS )PhotosServiceExceptionzPhoto service exception.N)photoalbumr   'PhotoAsset | None'r   'BasePhotoAlbum | None'returnNonec               P     t                      j        |  || _        || _        d S )N)super__init__r   r   )selfr   r   args	__class__s       p/home/thesage/.hermes/hermes-agent/venv/lib/python3.11/site-packages/pyicloud/services/photos_cloudkit/models.pyr   zPhotosServiceException.__init__   s+     	$



    )r   r   r   r   r   r   )__name__
__module____qualname____doc__r   __classcell__)r   s   @r   r   r      sU        ""
 &*)-	           r   r   T)slotsc                  x    e Zd ZU dZded<   ded<   ded<   ded<   ded	<   d
Zded<   d
Zded<   d
Zded<   ddZd
S )PhotoResourcez,A downloadable photo/video resource variant.strkeyfilenameOptional[str]urlzOptional[int]sizetypeNchecksumwidthheightr   dict[str, Any]c                \    | j         | j        | j        | j        | j        | j        | j        dS )z5Return a compatibility dict for legacy callers/tests.r(   r*   r+   r,   r-   r.   r/   r2   )r   s    r   as_dictzPhotoResource.as_dict+   s6     8IIZk
 
 	
r   )r   r0   )	r   r   r    r!   __annotations__r-   r.   r/   r3    r   r   r%   r%      s         66HHHMMM"H""""E F    
 
 
 
 
 
r   r%   c                  F    e Zd ZU dZded<   ded<   ded<   ded<   d	ed
<   dS )PhotoChangeEventz:A zone change event surfaced by ``icloud photos changes``.r&   kindrecord_namer)   record_typebooldeletedzOptional[datetime]modifiedNr   r   r    r!   r4   r5   r   r   r7   r7   9   sN         DDIIIMMM      r   r7   )r#   frozenc                  @    e Zd ZU dZded<   ded<   ded<   dZd	ed
<   dS )SmartAlbumSpecz0Static configuration for one Photos smart album.z'ObjectTypeEnum'obj_typez'ListTypeEnum'	list_typez'DirectionEnum'	directionr5   ztuple[CKQueryFilterBy, ...]query_filtersN)r   r   r    r!   r4   rE   r5   r   r   rA   rA   D   sM         ::13M333333r   rA   c                      e Zd ZU dZded<   dS )PhotosBatchCountFieldValuez2Minimal wrapper for the Hyperion item count value.intvalueNr>   r5   r   r   rG   rG   N   s         <<JJJJJr   rG   c                      e Zd ZU dZded<   dS )PhotosBatchCountFieldsz5Fields envelope returned by the Hyperion count query.rG   	itemCountNr>   r5   r   r   rK   rK   T   s$         ??))))))r   rK   c                      e Zd ZU dZded<   dS )PhotosBatchCountRecordz2One record inside a Hyperion count batch response.rK   fieldsNr>   r5   r   r   rN   rN   Z   s$         <<""""""r   rN   c                  6    e Zd ZU dZ ee          Zded<   dS )PhotosBatchCountResponseBatchz8One batch entry returned by the Hyperion count endpoint.default_factoryzlist[PhotosBatchCountRecord]recordsN)r   r   r    r!   r   listrT   r4   r5   r   r   rQ   rQ   `   s6         BB,1E$,G,G,GGGGGGGGr   rQ   c                  6    e Zd ZU dZ ee          Zded<   dS )PhotosBatchCountResponsez;Response payload for Photos' internal batch count endpoint.rR   z#list[PhotosBatchCountResponseBatch]batchN)r   r   r    r!   r   rU   rX   r4   r5   r   r   rW   rW   f   s6         EE16t1L1L1LELLLLLLr   rW   c                  ,    e Zd ZU dZdZded<   ded<   dS )PhotosBatchCountStringListValuez<STRING_LIST filter value used by the Hyperion count request.STRING_LISTr&   r,   z	list[str]rI   N)r   r   r    r!   r,   r4   r5   r   r   rZ   rZ   l   s5         FFDr   rZ   c                  2    e Zd ZU dZded<   ded<   ded<   dS )PhotosBatchCountFilterz6Single filter envelope for the Hyperion count request.r&   	fieldName
comparatorrZ   
fieldValueNr>   r5   r   r   r]   r]   s   s6         @@NNNOOO//////r   r]   c                  (    e Zd ZU dZded<   ded<   dS )PhotosBatchCountQueryz5Internal Photos query object for album/member counts.r&   
recordTyper]   filterByNr>   r5   r   r   rb   rb   {   s-         ??OOO$$$$$$r   rb   c                  <    e Zd ZU dZded<   ded<   ded<   ded	<   d
S )PhotosBatchCountRequestBatchz6One batch entry posted to the Hyperion count endpoint.rH   resultsLimitrb   queryr;   zoneWider   zoneIDNr>   r5   r   r   rf   rf      sE         @@    NNNr   rf   c                      e Zd ZU dZded<   dS )PhotosBatchCountRequestz:Request payload for Photos' internal batch count endpoint.z"list[PhotosBatchCountRequestBatch]rX   Nr>   r5   r   r   rl   rl      s$         DD------r   rl   c                  0    e Zd ZU dZdZded<   dZded<   dS )PhotosUploadErrorzOne upload-image-ws error item.Nz
str | Nonecodemessage)r   r   r    r!   ro   r4   rp   r5   r   r   rn   rn      s:         ))DGr   rn   c                  f    e Zd ZU dZ ee          Zded<    ee          Zded<   dZ	ded	<   dS )
PhotosUploadResponsez!Upload-image-ws response payload.rR   zlist[CKRecord]rT   zlist[PhotosUploadError]errorsNzbool | NoneisDuplicate)
r   r   r    r!   r   rU   rT   r4   rs   rt   r5   r   r   rr   rr      se         ++#eD999G9999&+eD&A&A&AFAAAA#K######r   rr   F   )DirectionEnumListTypeEnumObjectTypeEnum)BasePhotoAlbum
PhotoAssetN)*r!   
__future__r   dataclassesr   r   typingr   r   pydanticr   pyicloud.common.cloudkitr	   r
   r   pyicloud.common.cloudkit.baser   pyicloud.exceptionsr   r   r%   r7   rA   rG   rK   rN   rQ   rW   rZ   r]   rb   rf   rl   rn   rr   	constantsrv   rw   rx   servicery   rz   r5   r   r   <module>r      s   A A " " " " " " ! ! ! ! ! !                             K K K K K K K K K K 1 1 1 1 1 1 1 1 1 1 1 1    .    
 
 
 
 
 
 
 
4 ! ! ! ! ! ! ! ! d###4 4 4 4 4 4 4 $#4       * * * * *W * * *# # # # #W # # #H H H H HG H H HM M M M Mw M M M    g   0 0 0 0 0W 0 0 0% % % % %G % % %    7   . . . . .g . . .       $ $ $ $ $7 $ $ $4 4r   