U
    d                     @   s   d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZ zddlmZmZ W n$ ek
r   ddlmZmZ Y nX i Ze ZeeedZG dd	 d	ZG d
d dZdS )z6Kombu transport using SQLAlchemy as the message store.    N)
BooleanColumnDateTime
ForeignKeyIndexIntegerSequenceSmallIntegerStringTextrelation)MetaData)declarative_basedeclared_attr)metadataclass_registryc                   @   sZ   e Zd ZdZdddZeeeddddZee	dddZ
d	d
 Zdd Zedd ZdS )QueuezThe queue class.TInnoDBZsqlite_autoincrementZmysql_engineZqueue_id_sequenceZprimary_keyZautoincrement   )uniquec                 C   s
   || _ d S Nname)selfr    r   E/tmp/pip-unpacked-wheel-hqfrjlvz/kombu/transport/sqlalchemy/models.py__init__   s    zQueue.__init__c                 C   s   d| j  dS )Nz<Queue(z)>r   r   r   r   r   __str__!   s    zQueue.__str__c                 C   s   t ddddS )NMessagequeueZnoload)ZbackrefZlazyr   )clsr   r   r   messages$   s    zQueue.messagesN)__name__
__module____qualname____doc____table_args__r   r   r   idr
   r   r   r!   r   r%   r   r   r   r   r      s   
r   c                   @   s   e Zd ZdZeddddddfZeeedddd	Z	ee
ddd
ZededdejjdZeeddZeedddZdeiZdd Zdd Zedd ZdS )r"   zThe message class.Zix_kombu_message_timestamp_id	timestampr+   Tr   r   Zmessage_id_sequencer   )defaultindex)nullabler.   ZonupdateF)r/      )r/   r-   Zversion_id_colc                 C   s   || _ || _d S r   )payloadr#   )r   r1   r#   r   r   r   r   ;   s    zMessage.__init__c                 C   s
   d | S )Nz/<Message: {0.sent_at} {0.payload} {0.queue_id}>)formatr    r   r   r   r!   ?   s    zMessage.__str__c                 C   s   t ttdtd j ddS )Nz%s.idr   ZFK_kombu_message_queuer   )r   r   r   r   Z__tablename__r    r   r   r   queue_idB   s    zMessage.queue_idN)r&   r'   r(   r)   r   r*   r   r   r   r+   r   Zvisibler   datetimenowZsent_atr   r1   r	   versionZ__mapper_args__r   r!   r   r3   r   r   r   r   r"   )   s&   

 
r"   )r)   r4   Z
sqlalchemyr   r   r   r   r   r   r   r	   r
   r   Zsqlalchemy.ormr   Zsqlalchemy.schemar   r   r   ImportErrorZsqlalchemy.ext.declarativer   r   Z	ModelBaser   r"   r   r   r   r   <module>   s   0