app-cloudep-permission-server/pkg/domain/usecase/permission.go

45 lines
1.6 KiB
Go
Raw Normal View History

2025-02-24 01:04:06 +00:00
package usecase
import (
2025-02-26 15:29:00 +00:00
"context"
2025-02-24 01:04:06 +00:00
"code.30cm.net/digimon/app-cloudep-permission-server/pkg/domain/entity"
"code.30cm.net/digimon/app-cloudep-permission-server/pkg/domain/permission"
)
type PermissionUseCase interface {
Insert(ctx context.Context, req CreatePermissionReq) error
Del(ctx context.Context, id string) error
2025-02-28 01:39:42 +00:00
Update(ctx context.Context, id string, req UpdatePermissionReq) error
All(ctx context.Context, status *permission.Status) ([]entity.Permission, error)
2025-02-24 01:04:06 +00:00
// FilterAll 用樹的結構,使得付節點若關閉,子節點也不會顯示
FilterAll(ctx context.Context) ([]entity.Permission, error)
2025-02-28 01:39:42 +00:00
// Get(ctx context.Context, id string) (entity.Permission, error)
// List(ctx context.Context, param ListParam) ([]entity.Permission, int64, error)
2025-02-24 01:04:06 +00:00
}
type CreatePermissionReq struct {
Parent *string // 父權限的 ID (用字串儲存 ObjectID 的 Hex)
Name string // 權限名字
HTTPMethod string // 視作操作Action
HTTPPath string // 視作資源Object
Status permission.Status // 例如 1: 啟用, 0: 停用
Type permission.Type
}
type UpdatePermissionReq struct {
Parent *string // 父權限的 ID (用字串儲存 ObjectID 的 Hex)
Name *string // 權限名字
HTTPMethod *string // 視作操作Action
HTTPPath *string // 視作資源Object
Status *permission.Status // 例如 1: 啟用, 0: 停用
Type *permission.Type
}
type ListParam struct {
PageIndex int64
PageSize int64
Parent *string
}