""" Role ORM model """ from sqlalchemy import Column, String, Integer, Text, TIMESTAMP, Index from sqlalchemy.sql import func from sqlalchemy.orm import relationship from app.database import Base from app.models.db.user import user_roles class Role(Base): """User role (admin, user, etc.)""" __tablename__ = "roles" id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(50), unique=True, nullable=False, index=True, comment="Role name (e.g., 'admin', 'user')") display_name = Column(String(100), nullable=False, comment="Display name") description = Column(Text, nullable=True, comment="Role description") created_at = Column(TIMESTAMP, server_default=func.now()) updated_at = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now()) # Relationships users = relationship("User", secondary=user_roles, back_populates="roles") menus = relationship("RoleMenu", back_populates="role", cascade="all, delete-orphan") def __repr__(self): return f""