51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
package usecase
|
|
|
|
import (
|
|
"context"
|
|
"permission/reborn/domain/entity"
|
|
)
|
|
|
|
// UserRoleUseCase 使用者角色業務邏輯介面
|
|
type UserRoleUseCase interface {
|
|
// Assign 指派角色給使用者
|
|
Assign(ctx context.Context, req AssignRoleRequest) (*UserRoleResponse, error)
|
|
|
|
// Update 更新使用者角色
|
|
Update(ctx context.Context, userUID, roleUID string) (*UserRoleResponse, error)
|
|
|
|
// Remove 移除使用者角色
|
|
Remove(ctx context.Context, userUID string) error
|
|
|
|
// Get 取得使用者角色
|
|
Get(ctx context.Context, userUID string) (*UserRoleResponse, error)
|
|
|
|
// GetByRole 取得角色的所有使用者
|
|
GetByRole(ctx context.Context, roleUID string) ([]*UserRoleResponse, error)
|
|
|
|
// List 列出所有使用者角色
|
|
List(ctx context.Context, filter UserRoleFilterRequest) ([]*UserRoleResponse, error)
|
|
}
|
|
|
|
// AssignRoleRequest 指派角色請求
|
|
type AssignRoleRequest struct {
|
|
UserUID string `json:"user_uid" binding:"required"`
|
|
RoleUID string `json:"role_uid" binding:"required"`
|
|
Brand string `json:"brand"`
|
|
}
|
|
|
|
// UserRoleFilterRequest 使用者角色查詢過濾請求
|
|
type UserRoleFilterRequest struct {
|
|
Brand string `json:"brand"`
|
|
RoleID string `json:"role_id"`
|
|
Status *entity.Status `json:"status"`
|
|
}
|
|
|
|
// UserRoleResponse 使用者角色回應
|
|
type UserRoleResponse struct {
|
|
UserUID string `json:"user_uid"`
|
|
RoleUID string `json:"role_uid"`
|
|
Brand string `json:"brand"`
|
|
CreateTime string `json:"create_time"`
|
|
UpdateTime string `json:"update_time"`
|
|
}
|