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: 停用 }