annot-server/models.py
changeset 78 37bb8e326446
parent 43 e27c3c1c57f1
equal deleted inserted replaced
77:1b578edc1578 78:37bb8e326446
    21     __tablename__ = 'annotation'
    21     __tablename__ = 'annotation'
    22 
    22 
    23     id = Column(Integer, primary_key=True, nullable=False)
    23     id = Column(Integer, primary_key=True, nullable=False)
    24     uuid = Column(UUID, unique=True, nullable=False)
    24     uuid = Column(UUID, unique=True, nullable=False)
    25     created = Column(DateTime, nullable=False, server_default=text("(now() at time zone 'utc')") )
    25     created = Column(DateTime, nullable=False, server_default=text("(now() at time zone 'utc')") )
    26     ts = Column(DateTime(timezone=True), nullable=False)
    26     ts = Column(DateTime(timezone=True), nullable=False, index=True)
    27     event_code = Column(String(255), ForeignKey('event.code'), nullable=False)
    27     event_code = Column(String(255), ForeignKey('event.code'), nullable=False, index=True)
    28     channel = Column(String(255), nullable=False)
    28     channel = Column(String(255), nullable=False, index=True)
    29     content = Column(JSON)
    29     content = Column(JSON)
    30 
       
    31 Index('idx_annotation_event', Annotation.event_code)
       
    32 Index('idx_annotation_channel', Annotation.channel)
       
    33 Index('idx_annotation_ts', Annotation.ts)
       
    34 
    30 
    35 
    31 
    36 def insert_annot_async(params, conn):
    32 def insert_annot_async(params, conn):
    37 
    33 
    38     content = params.get('content', {})
    34     content = params.get('content', {})
    54 
    50 
    55 class Event(Base):
    51 class Event(Base):
    56     __tablename__ = 'event'
    52     __tablename__ = 'event'
    57 
    53 
    58     id = Column(Integer, primary_key=True, nullable=False)
    54     id = Column(Integer, primary_key=True, nullable=False)
    59     code = Column(String(255), unique=True, nullable=False)
    55     code = Column(String(255), unique=True, nullable=False, index=True)
    60     label = Column(String(2048), nullable=False)
    56     label = Column(String(2048), nullable=False)
    61     description = Column(Text(), nullable=True)
    57     description = Column(Text(), nullable=True)
    62     start_date = Column(DateTime(), nullable=True)
    58     start_date = Column(DateTime(), nullable=True, index=True)
    63     active = Column(Boolean(), nullable=False, default=True, server_default='1')
    59     active = Column(Boolean(), nullable=False, default=True, server_default='1', index=True)
    64 
    60 
    65     sessions = relationship("EventSession", order_by="EventSession.order", backref="event")
    61     sessions = relationship("EventSession", order_by="EventSession.order", backref="event")
    66 
    62 
    67     def __unicode__(self):
    63     def __unicode__(self):
    68         return self.code
    64         return self.code
    69 
    65 
    70 Index('idx_event_code', Event.code)
       
    71 Index('idx_event_active', Event.active)
       
    72 Index('idx_event_start_date', Event.start_date)
       
    73 
       
    74 class EventSession(Base):
    66 class EventSession(Base):
    75     __tablename__ = 'event_session'
    67     __tablename__ = 'event_session'
    76 
    68 
    77     id = Column(Integer, primary_key=True, nullable=False)
    69     id = Column(Integer, primary_key=True, nullable=False)
       
    70     uuid = Column(UUID, unique=True, nullable=False, default=uuid.uuid4)
       
    71     label = Column(String(2048), nullable=True)
    78     event_id = Column(Integer, ForeignKey(Event.id), nullable=False)
    72     event_id = Column(Integer, ForeignKey(Event.id), nullable=False)
    79     project_id = Column(String(2048), nullable=True)
    73     project_id = Column(String(2048), nullable=True)
    80     order = Column(Integer, nullable=False, default=0)
    74     order = Column(Integer, nullable=False, default=0, index=True)
    81     start_ts = Column(DateTime(timezone=True), nullable=True)
    75     start_ts = Column(DateTime(timezone=True), nullable=True, index=True)
    82     duration = Column(Integer, nullable=True)
    76     duration = Column(Integer, nullable=True)
    83     categories_json = Column(JSON, nullable=True)
    77     categories_json = Column(JSON, nullable=True)
    84 
       
    85 
       
    86 Index('idx_event_session_order', EventSession.order)
       
    87 Index('idx_event_session_start_ts', EventSession.start_ts)