1
0
Fork 0
forked from sr2/cloud-api

feat: use Mapped syntax for columns

This commit is contained in:
Iain Learmonth 2026-06-20 18:42:36 +01:00
parent cb70f17ad5
commit 6397bd1316
9 changed files with 108 additions and 105 deletions

View file

@ -12,33 +12,32 @@ Models:
from collections import defaultdict
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import relationship
from sqlalchemy.orm import relationship, mapped_column, Mapped
from src.database import Base
from src.models import CustomBase
class User(Base):
class User(CustomBase):
__tablename__ = "user"
id = Column(Integer, primary_key=True)
email = Column(String)
first_name = Column(String)
last_name = Column(String)
oidc_id = Column(String, index=True, unique=True)
id: Mapped[int] = mapped_column(primary_key=True)
email: Mapped[str]
first_name: Mapped[str]
last_name: Mapped[str]
oidc_id: Mapped[str] = mapped_column(index=True, unique=True)
organisation_rel = relationship(
"Organisation", secondary="orgusers", back_populates="user_rel"
)
@property
def organisations(self):
return [{"name": org.name, "id": org.id} for org in self.organisation_rel]
group_rel = relationship(
"Group", secondary="user_groups", back_populates="user_rel"
)
@property
def organisations(self):
return [{"name": org.name, "id": org.id} for org in self.organisation_rel]
@property
def groups(self):
result = defaultdict(list)