ifixkart-backend/Backend/app/models/PermissionModel.py

27 lines
1.2 KiB
Python

from sqlalchemy import Column, String, Boolean, DateTime, ForeignKey, UniqueConstraint
from sqlalchemy.sql import func
from app.core.database.db_session import Base
class Permission(Base):
__tablename__ = "permissions"
permission_id = Column(String(26), primary_key=True)
module = Column(String(50), nullable=False)
resource = Column(String(50), nullable=False)
action = Column(String(50), nullable=False)
permission_code = Column(String(150), unique=True, nullable=False) # module.resource.action
description = Column(String(255), nullable=True)
is_active = Column(Boolean, default=True)
created_at = Column(DateTime, server_default=func.now())
class RolePermission(Base):
__tablename__ = "role_permissions"
id = Column(String(26), primary_key=True)
role_id = Column(String(26), ForeignKey("roles.role_id", ondelete="CASCADE"), nullable=False)
permission_id = Column(String(26), ForeignKey("permissions.permission_id", ondelete="CASCADE"), nullable=False)
created_at = Column(DateTime, server_default=func.now())
__table_args__ = (
UniqueConstraint("role_id", "permission_id", name="uq_role_permission"),
)