backend/pkg/permission/domain/repository/permission.go

27 lines
1.1 KiB
Go

package repository
import (
"backend/pkg/permission/domain/entity"
"context"
mongodriver "go.mongodb.org/mongo-driver/v2/mongo"
)
// PermissionRepository 權限 Repository 介面
type PermissionRepository interface {
// FindOne 取得單一權限
FindOne(ctx context.Context, id string) (*entity.Permission, error)
// FindByName 根據名稱取得權限
FindByName(ctx context.Context, name string) (*entity.Permission, error)
// GetByNames 批量根據名稱取得權限
GetByNames(ctx context.Context, names []string) ([]*entity.Permission, error)
// FindByHTTP 根據 HTTP Path 和 Method 取得權限
FindByHTTP(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)
Index20251009001UP(ctx context.Context) (*mongodriver.Cursor, error)
}