package com.multictrl.modules.business.dto.command;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * Drc虚拟摇杆
 *
 * @author Sdy
 * @since 1.0.0 2026/4/27
 */
@Schema(name = "Drc虚拟摇杆参数")
@Data
public class DrcStick {

    @Schema(description = """
            方向
            roll 横滚通道（对应遥控器A通道，控制飞行器横滚（表现为左右平移）。数值增大表示向右倾斜，减小表示向左倾斜。）
            pitch 俯仰通道（对应遥控器E通道，控制飞行器俯仰（表现为前后平移）。数值增大表示向前俯冲，减小表示向后抬头。）
            throttle 升降通道（对应遥控器T通道，控制飞行器升降。数值增大表示升高，减小表示降低。）
            yaw 偏航通道（对应遥控器R通道，控制飞行器偏航（表现为左右旋转）。数值增大表示顺时针旋转，减小表示逆时针旋转。）""")
    @NotBlank(message = "杆量方向不能为空")
    private String stickDirection;

    @Schema(description = """
            杆量值，-100~100
            正值和负值看上面参数解释，例如：当stickDirection为roll时，>0会向右倾斜，<0 会向左倾斜。
            100是杆量的比例，绝对值越大，杆量越大，飞机动作的越快。""")
    @NotNull(message = "杆量值不能为空")
    private Integer stickInput;
}
