25 lines
998 B
Go
25 lines
998 B
Go
package repository
|
|
|
|
import (
|
|
"backend/pkg/permission/domain/entity"
|
|
"context"
|
|
)
|
|
|
|
// 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)
|
|
}
|