package repository import ( "backend/pkg/permission/domain/entity" "context" ) // PermissionRepository 權限 Repository 介面 type PermissionRepository interface { // Get 取得單一權限 FindOne(ctx context.Context, id string) (*entity.Permission, error) // GetByName 根據名稱取得權限 GetByName(ctx context.Context, name string) (*entity.Permission, error) // GetByNames 批量根據名稱取得權限 GetByNames(ctx context.Context, names []string) ([]*entity.Permission, error) // GetByHTTP 根據 HTTP Path 和 Method 取得權限 GetByHTTP(ctx context.Context, path, method string) (*entity.Permission, error) // List 列出所有權限 List(ctx context.Context, filter PermissionFilter) ([]*entity.Permission, error) // ListActive 列出所有啟用的權限 (常用,可快取) ListActive(ctx context.Context) ([]*entity.Permission, error) // GetChildren 取得子權限 GetChildren(ctx context.Context, parentID int64) ([]*entity.Permission, error) }