groupe-meditation/backend/app/models/instance_admin.py

31 lines
1.1 KiB
Python
Raw Permalink Normal View History

"""Administrateurs globaux de l'instance."""
import uuid
from datetime import datetime, timezone
from sqlalchemy import String, Boolean, DateTime
from sqlalchemy.orm import Mapped, mapped_column
from app.core.database import Base
class InstanceAdmin(Base):
__tablename__ = "instance_admins"
id: Mapped[uuid.UUID] = mapped_column(primary_key=True, default=uuid.uuid4)
identifiant: Mapped[str] = mapped_column(String(80), unique=True, nullable=False)
prenom: Mapped[str] = mapped_column(String(50), nullable=False, default="Sysadmin")
pin_hash: Mapped[str] = mapped_column(String(255), nullable=False)
actif: Mapped[bool] = mapped_column(Boolean, default=True)
cree_le: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc))
modifie_le: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc))
@property
def courriel(self) -> str:
return self.identifiant
@property
def groupe_id(self):
return None
@property
def is_sysadmin(self) -> bool:
return True