
    ZTh                         d dl mZmZ d dlmZmZmZ d dlmZ 	  G d de      Z	 G d de      Z
 G d d	e	      Z G d
 de
e	      Z G d de      Z G d de      Zy)    )ListOptional)	BaseModelFieldmodel_validator)Selfc                   Z    e Zd ZU dZee   ed<   dZee   ed<    ed      de	fd       Z
y)ChannelN	channelIdchannelIdentifieraftermodereturnc                 T    | j                   }| j                  }||t        d      | S )Nz/channelId or channelIdentifier must be provided)r   r   
ValueError)self
channel_idchannel_identifiers      b/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/sift_grafana/sift_query_model.pycheck_passwords_matchzChannel.check_passwords_match   s4    ^^
!33"4"<NOO    )__name__
__module____qualname__r   r   str__annotations__r   r   r   r    r   r   r
   r
      s=    #Ix}#'+x}+'"t  #r   r
   c                   Z    e Zd ZU dZee   ed<   dZee   ed<    ed      de	fd       Z
y)AssetNassetId	assetNamer   r   r   c                 T    | j                   }| j                  }||t        d      | S )Nz%assetId or assetName must be provided)r!   r"   r   )r   asset_id
asset_names      r   r   zAsset.check_passwords_match   s0    <<^^

 2DEEr   )r   r   r   r!   r   r   r   r"   r   r   r   r   r   r   r    r       s<    !GXc]!#Ix}#'"t  #r   r    c                   ,    e Zd ZU  edd      Zeed<   y)ChannelReference.z^\$\d+$)patternchannelReferenceN)r   r   r   r   r)   r   r   r   r   r   r'   r'   %   s    !#z:c:r   r'   c                       e Zd Zy)AssetChannelQueryN)r   r   r   r   r   r   r+   r+   *   s    r   r+   c                   <    e Zd ZU eed<   eed<   ee   ed<   eed<   y)CalculatedChannelQuerynameassetchannelReferences
expressionN)r   r   r   r   r   r    r   r'   r   r   r   r-   r-   .   s    
IL,--Or   r-   c                   `    e Zd ZU ee   ed<   dZee   ed<   e	ed<    e
d      defd       Zy)		SiftQueryqueriesNcalculatedChannelQuery
groupByRunr   r   r   c                 l    | j                   }| j                  }t        |      dkD  r|t        d      | S )Nr   z:queries and calculatedChannelQuery cannot both be provided)r4   r5   lenr   )r   r4   calculated_channel_querys      r   r   zSiftQuery.check_passwords_match:   s:    ,,#'#>#> w<! 8 DYZZr   )r   r   r   r   r+   r   r5   r   r-   boolr   r   r   r   r   r   r3   r3   5   sC    #$$?CH%;<C'"t  #r   r3   N)typingr   r   pydanticr   r   r   typing_extensionsr   r
   r    r'   r+   r-   r3   r   r   r   <module>r>      s`    ! 6 6 "

i 

I 
;w ;
	w 	Y 	 r   