template-monorepo/internal/model/permission/domain/usecase/role_permission.go

18 lines
571 B
Go

package usecase
import (
"context"
"gateway/internal/model/permission/domain/entity"
)
// RolePermissionUseCase manages the role↔permission catalog assignments.
//
// Replace is the canonical "edit a role" call: the UI submits the full
// permission ID set the user wants, and the usecase computes parent
// closure + atomically rewrites role_permissions.
type RolePermissionUseCase interface {
List(ctx context.Context, tenantID, roleID string) ([]*entity.Permission, error)
Replace(ctx context.Context, tenantID, roleID string, permissionIDs []string) error
}