backend/tmp/reborn/domain/usecase/user_role.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"`
}