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

25 lines
998 B
Go
Raw Normal View History

2025-10-07 09:29:47 +00:00
package repository
import (
"backend/pkg/permission/domain/entity"
"context"
)
// 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)
}