from sqlalchemy import Column, ForeignKey, Integer, String, Table from web.database import Base role_permissions = Table( "role_permissions", Base.metadata, Column("role_id", Integer, ForeignKey("roles.id", ondelete="CASCADE"), primary_key=True), Column("permission_id", Integer, ForeignKey("permissions.id", ondelete="CASCADE"), primary_key=True), ) class Role(Base): __tablename__ = "roles" id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(50), nullable=False, unique=True) description = Column(String(255), nullable=True) class Permission(Base): __tablename__ = "permissions" id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(100), nullable=False, unique=True) description = Column(String(255), nullable=True) class UserRole(Base): __tablename__ = "user_roles" user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), primary_key=True) role_id = Column(Integer, ForeignKey("roles.id", ondelete="CASCADE"), primary_key=True)