45 lines
1.4 KiB
Go
45 lines
1.4 KiB
Go
package usecase
|
|
|
|
import (
|
|
"context"
|
|
|
|
"code.30cm.net/digimon/app-cloudep-permission-server/pkg/domain/permission"
|
|
)
|
|
|
|
type RoleUseCase interface {
|
|
List(ctx context.Context, param ListQuery) ([]Role, int64, error)
|
|
All(ctx context.Context, clientID *string) ([]Role, error)
|
|
GetByID(ctx context.Context, id string) (*Role, error)
|
|
GetByUID(ctx context.Context, uid string) (*Role, error) // -> 限定角色的管理範圍:查詢誰建立的,用某個角色管理,目前用不到
|
|
Create(ctx context.Context, role CreateRoleReq) error
|
|
Update(ctx context.Context, id string, data CreateRoleReq) error
|
|
Delete(ctx context.Context, id string) error
|
|
}
|
|
|
|
type ListQuery struct {
|
|
PageSize int64 // 必填
|
|
PageIndex int64 // 必填
|
|
ClientID *string
|
|
UID *string
|
|
Name *string
|
|
Status *permission.Status
|
|
Permission []string
|
|
}
|
|
|
|
type Role struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"` // 角色名稱
|
|
UID string `json:"uid"`
|
|
ClientID string `json:"client_id"`
|
|
Status permission.Status `json:"status"` // 例如 1: 啟用, 0: 停用
|
|
CreateAt int64 `json:"create_at"`
|
|
UpdateAt int64 `json:"update_at"`
|
|
}
|
|
|
|
type CreateRoleReq struct {
|
|
Name string `json:"name"` // 角色名稱
|
|
UID string `json:"uid"`
|
|
ClientID string `json:"client_id"`
|
|
Status permission.Status `json:"status"` // 例如 1: 啟用, 0: 停用
|
|
}
|