U
    YHg
                     @   s\   d dl Z d dl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 )	    N)	BaseQuery)db)TimestampMixinc                   @   s$   e Zd Zdd Zdd Zdd ZdS )MessageQueryc                 C   s   |  tj|k S N)filterMessageidfirst)self
content_id r   0/var/www/dostadmin/dostadmin/db_model/message.pyget_sms_with_id	   s    zMessageQuery.get_sms_with_idc                 C   s   |   S r   )allr   r   r   r   get_sms_log   s    zMessageQuery.get_sms_logc                 C   s    |  tj|k }|r|S d S r   )r   r   namer
   )r   Zsms_nameZsmsr   r   r   find_message_with_name   s    z#MessageQuery.find_message_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G dd dZG dd dZej	ej
ddZej	eddd	Ze	ed
Ze	ej
Ze	edZe	edZe	edZejddddZdd ZedejfddZedd ZdS )r   messagec                   @   s$   e Zd ZdZdZedfedffZdS )zMessage.TypeZWASMSWhatsAppN)r   r   r   WHATSAPPr   CHOICEr   r   r   r   Type   s   r   c                   @   sN   e Zd ZdZdZdZdZdZedfedfedfed	fed
ffZeeeegZ	dS )zMessage.MessageTypetextimageZvideoZaudioZdocumentTextZImageZVideoZAudioZDocumentN)
r   r   r   TEXTZIMAGEZVIDEOZAUDIOZDOCUMENTr   ZMEDIA_TYPESr   r   r   r   MessageType    s   r"   T)primary_keyd   )uniquei     i  ZMessageCampaignz(Message.id == MessageCampaign.message_id)backrefprimaryjoinc                 C   s"   dt | j d | j d | j S )NZSms_ )strr	   r   r   r   r   r   r   __repr__?   s    zMessage.__repr__Nc                 C   s,   t |||||d}tj| tj  d S )N)r   r   typeappidmessage_type)r   r   sessionaddcommit)clsmessage_namemessage_bodyr.   r-   message_categoryZmessage_recr   r   r   add_to_message_tableB   s    	zMessage.add_to_message_tablec                 C   s   t t|d}g }|D ]`}|d }|d }ztj||tjjtjj	d W q t
k
rx } z|| W 5 d }~X Y qX q|S )Nzutf-8r   message_text)r3   r4   r.   r5   )csv
DictReadercodecs
iterdecoder   r6   r   r   r"   r!   	Exceptionappend)r2   Z	data_file
csv_readerZerr_listrowr3   r7   errr   r   r   bulk_message_uploadU   s    
zMessage.bulk_message_upload)r   r   r   __tablename__r   query_classr   r"   r   ColumnIntegerr	   Stringr   r   r-   r,   r.   Zmedia_idrelationship	campaignsr+   classmethodr!   r6   rA   r   r   r   r   r      s.   r   )r8   r:   flask_sqlalchemyr   	dostadminr   dostadmin.mixinsr   r   Modelr   r   r   r   r   <module>   s   