U
    >mh                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 G dd dejZG dd	 d	ejZG d
d dejZG dd dejZG dd dejZdS )    )models)timezone)Channel)Playlist)CampaignAdSpotc                   @   s   e Zd ZdZejdddZejeej	dddZ
ejeej	dddZejdddZejdddZejdddZejdddZejdddZejdddZejeej	dddZejddd	ZejdddZejdd
ZejddZG dd dZdS )VastRequestzTrack VAST ad requests   T)
max_lengthunique)	on_deletenullblankr   r   2   pending)r
   defaultauto_now_addauto_nowc                   @   s   e Zd ZdZdZdZdgZdS )zVastRequest.MetaZvast_requestszVAST RequestzVAST Requests-created_atN__name__
__module____qualname__db_tableverbose_nameverbose_name_pluralordering r    r    ,/var/www/html/Adtlas/src/apps/vast/models.pyMeta#   s   r"   N)r   r   r   __doc__r   	CharFieldZ
request_id
ForeignKeyr   CASCADEchannelr   playlist	TextField
user_agentGenericIPAddressField
ip_addressURLFieldZreferrerIntegerFieldwidthheightdurationr   Zselected_adspotZresponse_statusZresponse_time_msDateTimeField
created_at
updated_atr"   r    r    r    r!   r   	   s    r   c                   @   s   e Zd ZdZejeejddZe	 Z
ejeejdZejeejdZejdddZejdddZejdddZejdddZejdddZejdddZejdddZejddZG dd	 d	Zd
S )VastResponsezStore VAST XML responsesresponser   related_name)r   Tr   r   c                   @   s   e Zd ZdZdZdZdgZdS )zVastResponse.MetaZvast_responseszVAST ResponsezVAST Responsesr   Nr   r    r    r    r!   r"   =   s   r"   N)r   r   r   r#   r   OneToOneFieldr   r&   requestr)   Zvast_xmlr%   r   adspotr   campaignr-   Zimpression_urlZ	click_urlZ	start_urlZfirstquartile_urlZmidpoint_urlZthirdquartile_urlZcomplete_urlr2   r3   r"   r    r    r    r!   r5   *   s   r5   c                   @   s   e Zd ZdZdddddddd	d
dddddgZejeejddZ	ej
dedZejdddZejdddZejejdZejdddZej
ddddZejdddZejeddZejddZG dd dZdS )VastTrackingz2Track VAST events (impressions, clicks, quartiles))Z
impressionZ
Impression)startStart)ZfirstQuartilezFirst Quartile)ZmidpointZMidpoint)ZthirdQuartilezThird Quartile)completeZComplete)ZclickZClick)pauseZPause)ZresumeZResume)ZmuteZMute)ZunmuteZUnmute)Z
fullscreenZ
Fullscreen)ZexitFullscreenzExit Fullscreen)errorErrorZtracking_eventsr7      r
   choicesTr   r   
   )r
   r   r   )r   r   r   c                   @   s<   e Zd ZdZdZdZdgZejddgdejdgdgZ	d	S )
zVastTracking.MetaZvast_trackingzVAST Tracking EventzVAST Tracking Eventsz
-timestampr:   
event_type)fields	timestampN)
r   r   r   r   r   r   r   r   Indexindexesr    r    r    r!   r"   j   s   r"   N)r   r   r   r#   ZEVENT_TYPESr   r%   r   r&   r:   r$   rI   r)   r*   r+   r,   r2   r   nowrK   r.   Zvideo_position
error_codeerror_message	JSONFielddictmetadatar3   r"   r    r    r    r!   r=   D   s6   r=   c                   @   s   e Zd ZdZdddgZejddZejdedZe	 Z
ej	d	d	d
ZejeddZejd	dZejd	dZejd	dZG dd dZdS )VastTemplatez)VAST XML templates for different ad types)ZlinearzLinear Video Ad)Z	nonlinearzNon-Linear Ad)Z	companionzCompanion Adr	   r
   rD   rE   Tr   z2List of variables that can be replaced in template)r   	help_textrG   r   r   c                   @   s   e Zd ZdZdZdZdgZdS )zVastTemplate.MetaZvast_templateszVAST TemplatezVAST TemplatesnameNr   r    r    r    r!   r"      s   r"   N)r   r   r   r#   ZAD_TYPESr   r$   rW   Zad_typer)   Ztemplate_xmldescriptionrQ   list	variablesBooleanField	is_activer2   r3   r4   r"   r    r    r    r!   rT   u   s   rT   c                   @   s   e Zd ZdZdddddgZejddZejd	ed
Zej	e
dZejeddZejeddZejddZejddZejddZejddZG dd dZdS )AdDecisionEnginez#Configuration for ad decision logic)Zround_robinzRound Robin)ZweightedzWeighted Random)priorityzPriority Based)Zfrequency_capzFrequency Capping)ZdaypartzDaypart Targetingr	   rU   rD   rE   rG   T)r   r   r   r   c                   @   s    e Zd ZdZdZdZddgZdS )zAdDecisionEngine.MetaZad_decision_engineszAd Decision EnginezAd Decision Enginesz	-priorityrW   Nr   r    r    r    r!   r"      s   r"   N)r   r   r   r#   ZDECISION_TYPESr   r$   rW   Zdecision_typerQ   rR   ZconfigurationManyToManyFieldr   channelsr   	campaignsr[   r\   r.   r^   r2   r3   r4   r"   r    r    r    r!   r]      s"   r]   N)	django.dbr   django.utilsr   Zapps.channels.modelsr   Zapps.playlists.modelsr   Zapps.campaigns.modelsr   r   Modelr   r5   r=   rT   r]   r    r    r    r!   <module>   s   !1