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) |
|