import uuid from sqlalchemy import Column, DateTime, func, ForeignKey, UniqueConstraint from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from app.config.database import Base class RoleModuleAccess(Base): __tablename__ = "role_module_accesses" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) role_id = Column(UUID(as_uuid=True), ForeignKey("roles.id"), nullable=False, index=True) module_access_id = Column(UUID(as_uuid=True), ForeignKey("module_accesses.id"), nullable=False, index=True) created_at = Column(DateTime(timezone=True), server_default=func.now()) role = relationship("Role", back_populates="role_module_accesses") module_access = relationship("ModuleAccess", back_populates="role_module_accesses") __table_args__ = ( UniqueConstraint('role_id', 'module_access_id', name='uq_role_module_access'), ) def __repr__(self): return f""