U
    .e                     @  s   d Z ddlm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.    )annotationsN)
BooleanColumnDateTime
ForeignKeyIndexIntegerSequenceSmallIntegerStringTextrelationship)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-48hrr5dg/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)r0      )r0   r.   Zversion_id_colc                 C  s   || _ || _d S r   )payloadr$   )r   r2   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"   A   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_idD   s    zMessage.queue_idN)r'   r(   r)   r*   r   r+   r   r   r	   r,   r   Zvisibler   datetimenowZsent_atr   r2   r
   versionZ__mapper_args__r    r"   r   r4   r   r   r   r   r#   +   s&   

 
r#   )r*   
__future__r   r5   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