package com.qqchen.deploy.backend.framework.ssh.websocket.request;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.qqchen.deploy.backend.framework.enums.SSHMessageType;
import lombok.Data;

/**
 * SSH WebSocket请求基类（Framework层）
 * 
 * 所有前端发送到后端的请求消息都应该继承此类
 * 使用Jackson的@JsonTypeInfo和@JsonSubTypes实现多态反序列化
 */
@Data
@JsonTypeInfo(
    use = JsonTypeInfo.Id.NAME,
    property = "type",
    visible = true
)
@JsonSubTypes({
    @JsonSubTypes.Type(value = SSHInputRequest.class, name = "input"),
    @JsonSubTypes.Type(value = SSHResizeRequest.class, name = "resize")
})
public abstract class SSHBaseRequest {
    /**
     * 请求类型（使用枚举保证类型安全）
     */
    private SSHMessageType type;
}
