50 lines
1.7 KiB
Go
50 lines
1.7 KiB
Go
|
package usecase
|
||
|
|
||
|
import (
|
||
|
"backend/pkg/permission/domain/entity"
|
||
|
"context"
|
||
|
)
|
||
|
|
||
|
// UserRoleUseCase 用戶角色用例介面
|
||
|
type UserRoleUseCase interface {
|
||
|
AssignRole(ctx context.Context, req AssignRoleRequest) (*entity.UserRole, error)
|
||
|
RevokeRole(ctx context.Context, uid, roleUID string) error
|
||
|
GetUserRole(ctx context.Context, id string) (*entity.UserRole, error)
|
||
|
UpdateUserRole(ctx context.Context, req UpdateUserRoleRequest) (*entity.UserRole, error)
|
||
|
ListUserRoles(ctx context.Context, req ListUserRolesRequest) ([]*entity.UserRole, error)
|
||
|
GetUserRoles(ctx context.Context, uid string) ([]*entity.UserRole, error)
|
||
|
GetUserRoleDetails(ctx context.Context, uid string) ([]*UserRoleDetail, error)
|
||
|
BatchAssignRoles(ctx context.Context, uid string, roleUIDs []string, brand string) error
|
||
|
BatchRevokeRoles(ctx context.Context, uid string, roleUIDs []string) error
|
||
|
ReplaceUserRoles(ctx context.Context, uid string, roleUIDs []string, brand string) error
|
||
|
}
|
||
|
|
||
|
// AssignRoleRequest 分配角色請求
|
||
|
type AssignRoleRequest struct {
|
||
|
Brand string `json:"brand"`
|
||
|
UID string `json:"uid"`
|
||
|
RoleUID string `json:"role_uid"`
|
||
|
}
|
||
|
|
||
|
// UpdateUserRoleRequest 更新用戶角色請求
|
||
|
type UpdateUserRoleRequest struct {
|
||
|
ID string `json:"id"`
|
||
|
Status *int `json:"status,omitempty"`
|
||
|
}
|
||
|
|
||
|
// ListUserRolesRequest 列出用戶角色請求
|
||
|
type ListUserRolesRequest struct {
|
||
|
Brand string `json:"brand,omitempty"`
|
||
|
UID string `json:"uid,omitempty"`
|
||
|
RoleUID string `json:"role_uid,omitempty"`
|
||
|
Status *int `json:"status,omitempty"`
|
||
|
Limit int `json:"limit"`
|
||
|
Skip int `json:"skip"`
|
||
|
}
|
||
|
|
||
|
// UserRoleDetail 用戶角色詳情
|
||
|
type UserRoleDetail struct {
|
||
|
UserRole *entity.UserRole `json:"user_role"`
|
||
|
Role *entity.Role `json:"role"`
|
||
|
}
|