
    ZThN	                        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mZ d dlmZ  G d dee      Z G d	 d
e      Zy)    )annotations)datetime)AnyListOptional)	BaseModel
ConfigDict)NotRequired	TypedDict)AsJsonc                      e Zd ZU dZ ed      Zded<   dZded<   dZded	<   dZ	d
ed<   dZ
ded<   g Zded<   dZded<   dZded<   ddZy)ReportTemplateConfiga  
    Configuration for a report template.

    - `name`: Name of the report template.
    - `template_client_key`: Unique client key to identify the report template.
    - `organization_id`: Organization ID that the report template belongs to.
    - `tags`: Tags to associate with the report template.
    - `description`: Description of the report template.
    - `rule_client_keys`: List of rule client keys associated with the report template.
    - `archived_date`: Date when the report template was archived. Setting this field
        will archive the report template, and unsetting it will unarchive the report template.
    - `archived`: True if the report template is archived, False otherwise.
    T)arbitrary_types_allowedstrnameNzOptional[str]template_client_keytemplate_idzOptional[List[str]]tagsdescriptionz	List[str]rule_client_keyszOptional[datetime]archived_dateFboolarchivedc                "    | j                         S )N)model_dump_json)selfs    d/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/sift_py/report_templates/config.pyas_jsonzReportTemplateConfig.as_json&   s    ##%%    )returnr   )__name__
__module____qualname____doc__r	   model_config__annotations__r   r   r   r   r   r   r   r    r   r   r   r      sg     d;L
I)--!%K% $D
$!%K%"$i$(,M%,Hd&r   r   c                  N    e Zd ZU dZded<   ded<   ded<   ded<   ded<   d	ed
<   y)ReportTemplateUpdatea  
    Represents a dictionary for updating properties of a report template. All fields are optional
    and only the provided fields will be updated.

    - `name`: Updated name of the report template.
    - `template_client_key`: Updated unique client key to identify the report template.
    - `organization_id`: Updated organization ID that the report template belongs to.
    - `tags`: Updated tags to associate with the report template.
    - `description`: Updated description of the report template.
    - `rule_client_keys`: Updated list of rule client keys associated with the report template.
    - `archived`: True if the report template is archived, False otherwise.
    zNotRequired[str]r   r   zNotRequired[List[str]]r   r   r   zNotRequired[bool]r   N)r!   r"   r#   r$   r&   r'   r   r   r)   r)   *   s-     ))
  !!,,r   r)   N)
__future__r   r   typingr   r   r   pydanticr   r	   typing_extensionsr
   r   sift_py._internal.convert.jsonr   r   r)   r'   r   r   <module>r/      s4    "  & & * 4 1&9f &< 9  r   