package usecase import ( "context" "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 Update(ctx context.Context, req UpdatePermissionReq) error Get(ctx context.Context, id string) (entity.Permission, error) List(ctx context.Context, param ListParam) ([]entity.Permission, int64, error) All(ctx context.Context, status *permission.Status) // FilterAll 用樹的結構,使得付節點若關閉,子節點也不會顯示 FilterAll(ctx context.Context) ([]entity.Permission, error) } 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 }