from sqlalchemy import Table, Column, String, MetaData, ForeignKey, JSON from sqlalchemy.sql import select, func from sqlalchemy.types import Integer, BigInteger, String, Boolean, TIMESTAMP, Numeric from sqlalchemy.dialects.postgresql import JSONB from .base import Base, Session class MetaProjectInfo(Base): __tablename__ = "project_metas" id = Column(Integer, primary_key=True) project = Column(String(36)) cycle = Column(JSONB) task = Column(JSONB) serial_number = Column(Integer) deleted = Column(Boolean, default = False) created_at = Column(TIMESTAMP(timezone=True), server_default=func.now()) updated_at = Column(TIMESTAMP(timezone=True), onupdate=func.now()) @classmethod def create_project_meta(cls, project): with Session() as session: project_meta = MetaProjectInfo(project = project['project'], cycle= project['cycle'], task=project['task'], serial_number=int(project['serial_number'])) session.add(project_meta) session.commit() return project_meta.id # def __repr__(self): # return f"User(id={self.id!r}, name={self.name!r}, fullname={self.task!r})"