
    K:g                          d dl m Z  d dlmZmZmZ d dlZd dlmZmZm	Z	m
Z
 d dlmZ  G d de	edgd	
      Z G d de      Z G d de      Z e
 e              y)    )datetime)DictListOptionalN)AirtableModelCanDeleteModelCanUpdateModelrebuild_models)Collaboratorc                       e Zd ZU dZeed<   eed<   eed<   dZee   ed<   e	ed<    e
j                  e      Zeed	f   ed
<   dZee   ed<    e
j                  e      Zed   ed<   y)Commenta  
    A record comment that has been retrieved from the Airtable API.

    >>> comment = table.add_comment("recMNxslc6jG0XedV", "Hello, @[usrVMNxslc6jG0Xed]!")
    >>> table.comments("recMNxslc6jG0XedV")
    [
        Comment(
            id='comdVMNxslc6jG0Xe',
            text='Hello, @[usrVMNxslc6jG0Xed]!',
            created_time=datetime.datetime(...),
            last_updated_time=None,
            mentioned={
                'usrVMNxslc6jG0Xed': Mentioned(
                    display_name='Alice',
                    email='alice@example.com',
                    id='usrVMNxslc6jG0Xed',
                    type='user'
                )
            },
            author=Collaborator(
                id='usr0000pyairtable',
                email='pyairtable@example.com',
                name='Your pyairtable access token'
            )
        )
    ]
    >>> comment.text = "Never mind!"
    >>> comment.save()
    >>> comment.delete()
    idtextcreated_timeNlast_updated_timeauthor)default_factory	Mentioned	mentionedparent_comment_idReaction	reactions)__name__
__module____qualname____doc__str__annotations__r   r   r   r   pydanticFielddictr   r   r   listr   r        V/var/www/html/lionshead/venv/lib/python3.12/site-packages/pyairtable/models/comment.pyr   r      s    @ 	G I  -1x)0  )7t(LItC$%L (,x}+ #1(.."FItJFr$   r   r   z{record_url}/comments/{self.id})writableurlc                   D    e Zd ZU dZeed<   eed<   eed<   dZee   ed<   y)r   a  
    A user or group that was mentioned within a comment.
    Stored as a ``dict`` that is keyed by ID.

    >>> comment = table.add_comment(record_id, "Hello, @[usrVMNxslc6jG0Xed]!")
    >>> comment.mentioned
    {
        "usrVMNxslc6jG0Xed": Mentioned(
            display_name='Alice',
            email='alice@example.com',
            id='usrVMNxslc6jG0Xed',
            type='user'
        )
    }

    See `User mentioned <https://airtable.com/developers/web/api/model/user-mentioned>`_ for more details.
    r   typedisplay_nameNemail)r   r   r   r   r   r   r+   r   r#   r$   r%   r   r   M   s'    $ 	G
IE8C=r$   r   c                       e Zd ZU dZ G d de      Z G d de      Z ej                  d      Z	ee
d<   ee
d	<   ed
efd       Zy)r   z"
    A reaction to a comment.
    c                       e Zd ZU eed<   y)Reaction.EmojiInfounicode_characterN)r   r   r   r   r   r#   r$   r%   	EmojiInfor.   k   s    r$   r0   c                   @    e Zd ZU eed<   dZee   ed<   dZee   ed<   y)Reaction.ReactingUseruser_idNr+   name)r   r   r   r   r   r+   r   r4   r#   r$   r%   ReactingUserr2   n   s#    #x}#"hsm"r$   r5   emoji)alias
emoji_inforeacting_userreturnc                 T    t        t        | j                  j                  d            S )z<
        The emoji character used for the reaction.
           )chrintr8   r/   )selfs    r%   r6   zReaction.emojiv   s     
 3t88"=>>r$   N)r   r   r   r   r   r0   r5   r   r    r8   r   propertyr   r6   r#   r$   r%   r   r   f   sU    M #} #
 +HNN9J	9?s ? ?r$   r   )r   typingr   r   r   r   pyairtable.models._baser   r   r	   r
   pyairtable.models.collaboratorr   r   r   r   varsr#   r$   r%   <module>rE      s_     ' '   8;GX)	;G|   2?} ?0 tv r$   