from sqlalchemy import Column, DateTime, Integer, MetaData, func from sqlalchemy.ext.declarative import declarative_base metadata = MetaData() class TimestampMixin: created_at = Column(DateTime, default=func.now()) updated_at = Column(DateTime, default=func.now(), onupdate=func.now()) UserDataBase = declarative_base() class Application(UserDataBase, TimestampMixin): """Application model. Specific application (or project) that is supported by the service. """ __tablename__ = "application" id = Column(Integer, primary_key=True, autoincrement=True) class Message(UserDataBase, TimestampMixin): __tablename__ = "messages" id = Column(Integer, primary_key=True, autoincrement=True) class FeedMessage(UserDataBase, TimestampMixin): __tablename__ = "feed_messages" id = Column(Integer, primary_key=True, autoincrement=True) class PushMessage(UserDataBase, TimestampMixin): __tablename__ = "push_messages" id = Column(Integer, primary_key=True, autoincrement=True) class Event(UserDataBase, TimestampMixin): __tablename__ = "events" id = Column(Integer, primary_key=True, autoincrement=True)