from typing import Optional from db import db from sqlalchemy.sql import func from datetime import date class ProjectsImportInfo(db.Model): """ProjectsImportInfo model""" __tablename__ = "ProjectsImportInfo" id = db.Column(db.Integer, primary_key=True) imported_prs_date = db.Column(db.Date, nullable=False, server_default=func.current_date()) imported_ccp_date = db.Column(db.Date, nullable=True, server_default=func.current_date()) imported_streams_rate_date = db.Column(db.Date, nullable=True) @staticmethod def get_imported_prs_date() -> Optional[date]: info = db.session.query(ProjectsImportInfo).one_or_none() if info: return info.imported_prs_date return None @staticmethod def get_imported_ccp_date() -> Optional[date]: info = db.session.query(ProjectsImportInfo).one_or_none() if info: return info.imported_ccp_date return None @staticmethod def update_imported_ccp_date(): info = db.session.query(ProjectsImportInfo).one_or_none() if not info: info = ProjectsImportInfo() db.session.add(info) info.imported_ccp_date = date.today() db.session.commit() @staticmethod def update_imported_prs_date(): info = db.session.query(ProjectsImportInfo).one_or_none() if not info: info = ProjectsImportInfo() db.session.add(info) info.imported_prs_date = date.today() db.session.commit() @staticmethod def get_imported_streams_rate_date() -> Optional[date]: info = db.session.query(ProjectsImportInfo).one_or_none() if info: return info.imported_streams_rate_date return None @staticmethod def update_imported_streams_rate_date(imported_date=date.today()): info = db.session.query(ProjectsImportInfo).one_or_none() if not info: info = ProjectsImportInfo() db.session.add(info) info.imported_streams_rate_date = imported_date db.session.commit()