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

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import static com.fasterxml.jackson.annotation.JsonProperty.Access.WRITE_ONLY;

/**
 * Q20航线任务 - 上传航线顶层DTO（route_upload）
 *
 * @author 938693313@qq.com
 * @since 1.0.0 2026/5/20
 */
@Data
@Schema(description = "上传航线请求体（route_upload）")
public class Q20RouteUploadDTO {

    @Schema(description = "航线名称（仅本地存储用，不下发给设备）")
    @JsonProperty(value = "routeName", access = WRITE_ONLY)
    private String routeName;

    @Schema(description = "全局飞行高度(m)，仅本地存储用，不下发给设备")
    @JsonProperty(value = "flight_height", access = WRITE_ONLY)
    private Float flightHeight;

    @Schema(description = "是否精准导入，仅本地存储用，不下发给设备")
    @JsonProperty(value = "accurate_import", access = WRITE_ONLY)
    private Boolean accurateImport;

    @Schema(description = "航线ID（存储用）")
    private String wayline;

    @Schema(description = "任务配置信息")
    @JsonProperty("mission_config")
    private Q20RouteMissionConfigDTO missionConfig;

    @Schema(description = "航线文件夹，包含所有航点信息")
    private Q20RouteFolderDTO folder;

    @Schema(description = "飞机配置信息")
    @JsonProperty("vehicle_config")
    private Q20RouteVehicleConfigDTO vehicleConfig;
}
