o
    Th(                     @   s   d Z ddlmZ ddlmZ ddlmZ G dd deeeZG dd	 d	eZG d
d deZ	G dd deZ
G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZdS )zlinebot.models.insight module.    )ABCMeta)with_metaclass   )Basec                       "   e Zd ZdZd fdd	Z  ZS )DemographicInsightz*Abstract Base Class of DemographicInsight.Nc                    s    t t| jdi | || _dS )z^__init__ method.

        :param float percentage: Percentage.
        :param kwargs:
        N )superr   __init__
percentage)selfr   kwargs	__class__r   V/home/air/segue/gpt/backup/venv/lib/python3.10/site-packages/linebot/models/insight.pyr
      s   
zDemographicInsight.__init__)N__name__
__module____qualname____doc__r
   __classcell__r   r   r   r   r          r   c                       r   )GenderInsightzGenderInsight.Nc                    $   t t| jdd|i| || _dS )z__init__ method.

        :param float percentage: Percentage.
        :param str gender: Gender
        :param kwargs:
        r   Nr   )r	   r   r
   gender)r   r   r   r   r   r   r   r
   )      
zGenderInsight.__init__NNr   r   r   r   r   r   &   r   r   c                       r   )
AgeInsightzAgeInsight.Nc                    r   )zz__init__ method.

        :param float percentage: Percentage.
        :param str age: Age
        :param kwargs:
        r   Nr   )r	   r   r
   age)r   r   r   r   r   r   r   r
   8   r   zAgeInsight.__init__r   r   r   r   r   r   r   5   r   r   c                       r   )AreaInsightzAreaInsight.Nc                    r   )z|__init__ method.

        :param float percentage: Percentage.
        :param str area: Area
        :param kwargs:
        r   Nr   )r	   r   r
   area)r   r   r    r   r   r   r   r
   G   r   zAreaInsight.__init__r   r   r   r   r   r   r   D   r   r   c                       r   )AppTypeInsightzAppTypeInsight.Nc                    r   )z~__init__ method.

        :param float percentage: Percentage.
        :param str app_type: OS
        :param kwargs:
        r   Nr   )r	   r!   r
   app_type)r   r   r"   r   r   r   r   r
   V   r   zAppTypeInsight.__init__r   r   r   r   r   r   r!   S   r   r!   c                       r   )SubscriptionPeriodInsightzSubscriptionPeriodInsight.Nc                    r   )z__init__ method.

        :param float percentage: Percentage.
        :param str subscription_period: Friendship duration
        :param kwargs:
        r   Nr   )r	   r#   r
   subscription_period)r   r   r$   r   r   r   r   r
   e   r   z"SubscriptionPeriodInsight.__init__r   r   r   r   r   r   r#   b   r   r#   c                       (   e Zd ZdZ			d fdd	Z  ZS )MessageStatisticszMessageStatistics.Nc           	         sD   t t| jdi | || _|| _|| _|| _|| _|| _|| _	dS )a  __init__ method.

        :param str request_id: Request ID.
        :param int timestamp: UNIX timestamp for message delivery time.
        :param int delivered: Number of messages delivered. This property shows values
            of less than 20.
        :param int unique_impression: Number of people who opened the message,
            meaning they displayed at least 1 bubble.
        :param int unique_click: Number of people who opened any URL in the message.
        :param int unique_media_played: Number of people who started playing any video
            or audio in the message.
        :param int unique_media_played_100_percent: Number of people who played the entirety of
            any video or audio in the message.
        Nr   )
r	   r&   r
   
request_id	timestamp	deliveredunique_impressionunique_clickunique_media_playedunique_media_played_100_percent)	r   r'   r(   r)   r*   r+   r,   r-   r   r   r   r   r
   t   s   
zMessageStatistics.__init__)NNNNNNNr   r   r   r   r   r&   q       r&   c                       &   e Zd ZdZ		d fdd	Z  ZS )(MessageStatisticsOfCustomAggregationUnitz)MessageStatisticsOfCustomAggregationUnit.Nc                    s2   t t| jdi | || _|| _|| _|| _dS )a  __init__ method.

        :param int unique_impression: Number of people who opened the message,
            meaning they displayed at least 1 bubble.
        :param int unique_click: Number of people who opened any URL in the message.
        :param int unique_media_played: Number of people who started playing any video
            or audio in the message.
        :param int unique_media_played_100_percent: Number of people who played the entirety of
            any video or audio in the message.
        Nr   )r	   r0   r
   r*   r+   r,   r-   )r   r*   r+   r,   r-   r   r   r   r   r
      s
   
z1MessageStatisticsOfCustomAggregationUnit.__init__)NNNNr   r   r   r   r   r0      
    r0   c                       s.   e Zd ZdZ						d fdd	Z  ZS )MessageInsightzMessageInsight.Nc                    sb   t t| jdi | || _|| _|| _|| _|| _|| _|| _	|| _
|	| _|
| _|| _|| _dS )a  __init__ method.

        :param int seq: Bubble's serial number.
        :param int impression: Number of times the bubble was displayed.
        :param int media_played: Number of times audio or video in the bubble started playing.
        :param int media_played_25_percent: Number of times audio or video
            in the bubble was played from start to 25%.
        :param int media_played_50_percent: Number of times audio or video
            in the bubble was played from start to 50%.
        :param int media_played_75_percent: Number of times audio or video
            in the bubble was played from start to 75%.
        :param int media_played_100_percent: Number of times audio or video
            in the bubble was played in its entirety.
        :param int unique_media_played: Number of people that started playing
            audio or video in the bubble.
        :param int unique_media_played_25_percent: Number of people that played
            audio or video in the bubble from start to 25%.
        :param int unique_media_played_50_percent: Number of people that played
            audio or video in the bubble from start to 50%.
        :param int unique_media_played_75_percent: Number of people that played
            audio or video in the bubble from start to 75%.
        :param int unique_media_played_100_percent: Number of people that played
            audio or video in the bubble in its entirety.
        Nr   )r	   r2   r
   seq
impressionmedia_playedmedia_played_25_percentmedia_played_50_percentmedia_played_75_percentmedia_played_100_percentr,   unique_media_played_25_percentunique_media_played_50_percentunique_media_played_75_percentr-   )r   r3   r4   r5   r6   r7   r8   r9   r,   r:   r;   r<   r-   r   r   r   r   r
      s   
zMessageInsight.__init__)NNNNNNNNNNNNr   r   r   r   r   r2      s    r2   c                       r/   )ClickInsightClickInsight.Nc                    s8   t t| jdi | || _|| _|| _|| _|| _dS )ak  __init__ method.

        :param int seq: The URL's serial number.
        :param str url: URL.
        :param int click: Number of times the URL was opened.
        :param int unique_click: Number of people that opened the URL.
        :param int unique_click_of_request: Number of people who opened this url
            through any link in the message.
        Nr   )r	   r=   r
   r3   urlclickr+   unique_click_of_request)r   r3   r?   r@   r+   rA   r   r   r   r   r
      s   
zClickInsight.__init__)NNNNNr   r   r   r   r   r=      r1   r=   c                       r%   )
JobInsightr>   Nc	           
         sJ   t t| jdi |	 || _|| _|| _|| _|| _|| _|| _	|| _
dS )a  __init__ method.

        :param int audience_group_job_id: A job ID.
        :param int audience_group_id: An audience ID.
        :param str description: The job's description.
        :param str type: The job's type. One of: 'DIFF_ADD'
        :param str job_status: The job's status. One of: 'QUEUED', 'WORKING', 'FINISHED', 'FAILED'
        :param str failed_type: The reason why the operation failed. This is only included when
            jobs[].jobStatus is FAILED.
        :param int audience_count: The number of accounts (recipients) that were added or removed.
        :param int created: When the job was created (in UNIX time).
        :param kwargs:
        Nr   )r	   rB   r
   audience_group_job_idaudience_group_iddescriptiontype
job_statusfailed_typeaudience_countcreated)
r   rC   rD   rE   rF   rG   rH   rI   rJ   r   r   r   r   r
      s   
zJobInsight.__init__)NNNNNNNNr   r   r   r   r   rB      r.   rB   N)r   abcr   future.utilsr   baser   r   r   r   r   r!   r#   r&   r0   r2   r=   rB   r   r   r   r   <module>   s   1