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

27 lines
1.1 KiB
Go
Raw Permalink Normal View History

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