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"` }