U
    YHg                     @   sx   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ d dlmZ G dd deZG d	d
 d
eejZdS )    )absolute_import)	BaseQuery)
app_loggerdbdb_model)replace_chars)TimestampMixin)ContentVersionc                   @   s$   e Zd Zdd Zdd Zdd ZdS )ContentQueryc                 C   s   |  tj|k S N)filterContentidfirst)self
content_id r   0/var/www/dostadmin/dostadmin/db_model/content.pyget_content_with_id
   s    z ContentQuery.get_content_with_idc                 C   s   |   S r   )allr   r   r   r   get_content_log   s    zContentQuery.get_content_logc                 C   s&   |  tjt|k }|r"|jS d S r   )r   r   namer   r   r   )r   content_namecontentr   r   r   find_content_id_with_name   s    z&ContentQuery.find_content_id_with_nameN)__name__
__module____qualname__r   r   r   r   r   r   r   r
   	   s   r
   c                   @   s   e Zd ZdZeZejejddZ	eje
ddddZeejedZeje
dddZejd	dd
dZejddddZejddddZejddddZdd Zedd ZdS )r   r   T)primary_key2   F)uniquenullableztopic.id)r"   Campaignz!Content.id == Campaign.content_id)backrefprimaryjoin
Programseqz#Content.id == Programseq.content_idProviderNumberz'Content.id == ProviderNumber.content_idr	   z'Content.id == ContentVersion.content_idc                 C   s   dt | j d | j S )NZContent_ )strr   r   r   r   r   r   __repr__3   s    zContent.__repr__c                 C   s  |D ]}t d| d }d }z4t|d }t|d }t|d }t|d }W nP tk
r } z2|rt d|  |d | }n|}W Y qW 5 d }~X Y nX ztjjj	|d}	W nV tk
r } z6|rt d	|  |d
 | }nd| }W Y qW 5 d }~X Y nX t
|d}
tj|
 tj  |
jrz0t|
j|	||ddd}tj| tj  W q tk
r } zt d|  W 5 d }~X Y qX q|S )Nzadding content %sr            z5Exception occurred while adding new contents. Error: z, )Zip_namezNException occurred while fetching language id for adding new contents. Error: z, No language named: zNo language named: )r   activeg      ?)r   language_idexotel_appidduration_secsstatusversionz@Exception occurred while adding content version. Error message: )r   infor   int	Exceptionerrorr   Languagequeryfind_language_id_with_namer   r   sessionaddcommitr   r	   )clsr   cerrorsr   r1   r0   languageer/   Zcontent_recZcontent_version_recr   r   r   add_new_contents6   sb    



zContent.add_new_contentsN)r   r   r   __tablename__r
   query_classr   ColumnIntegerr   Stringr   
ForeignKeyZtopic_idtyperelationship	campaigns
programseqprovidernumbercontent_versionr*   classmethodrC   r   r   r   r   r      s:     r   N)
__future__r   flask_sqlalchemyr   	dostadminr   r   r   utils.helpers.helpersr   dostadmin.mixinsr   Z"dostadmin.db_model.content_versionr	   r
   Modelr   r   r   r   r   <module>   s   