29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
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})" |