Source code for app.model.orm.project
import re
from typing import List
import sqlalchemy as sql
from sqlalchemy.orm import (
Mapped,
mapped_column,
relationship,
)
from app.model.orm.orm_base import OrmBase
[docs]
class Project(OrmBase):
"""
A collection of studies.
It has a fixed ``publicId`` identifier starting with the prefix "PMGDB".
"""
@property
@property
@staticmethod
[docs]
def generate_public_id(db_session):
last_string_id = db_session.scalars(
sql.select(Project.publicId)
.order_by(Project.publicId.desc())
.limit(1)
).one_or_none()
if last_string_id:
last_numeric_id = int(re.sub(r'PMGDB0*', '', last_string_id))
else:
last_numeric_id = 0
return "PMGDB{:06d}".format(last_numeric_id + 1)