package com.dji.sample.manage.model.enums;

import lombok.Getter;

/**
 * Enumeration of all user-triggered operations recorded in {@code operate_record}.
 */
@Getter
public enum OperateRecordTypeEnum {

    // ---- Flight task (wayline job) ----
    FLIGHT_TASK_CREATE("FLIGHT_TASK_CREATE", "创建飞行任务"),
    FLIGHT_TASK_CANCEL("FLIGHT_TASK_CANCEL", "取消飞行任务"),
    FLIGHT_TASK_UPDATE("FLIGHT_TASK_UPDATE", "更新飞行任务状态"),
    IN_FLIGHT_TASK_CREATE("IN_FLIGHT_TASK_CREATE", "空中下发航线"),
    IN_FLIGHT_TASK_CANCEL("IN_FLIGHT_TASK_CANCEL", "取消空中航线"),

    // ---- One-key takeoff / direct control ----
    TAKEOFF_TO_POINT("TAKEOFF_TO_POINT", "一键起飞"),
    FLY_TO_POINT("FLY_TO_POINT", "飞向目标点"),
    FLY_TO_POINT_STOP("FLY_TO_POINT_STOP", "停止飞向目标点"),

    // ---- Return home ----
    RETURN_HOME("RETURN_HOME", "强制返航"),
    RETURN_HOME_CANCEL("RETURN_HOME_CANCEL", "取消返航"),

    // ---- Dock debug / remote control ----
    DOCK_DEBUG("DOCK_DEBUG", "机场调试指令"),
    SEIZE_FLIGHT_AUTHORITY("SEIZE_FLIGHT_AUTHORITY", "夺取飞行控制权"),
    SEIZE_PAYLOAD_AUTHORITY("SEIZE_PAYLOAD_AUTHORITY", "夺取负载控制权"),
    PAYLOAD_COMMANDS("PAYLOAD_COMMANDS", "负载控制指令"),
    RTK_CALIBRATION("RTK_CALIBRATION", "RTK标定"),

    // -- FIRMWARE
    FIRMWARE_UPLOAD("FIRMWARE_UPLOAD", "上传固件"),
    FIRMWARE_UPGRADE("FIRMWARE_UPGRADE", "下发固件升级"),

    ;

    private final String type;
    private final String description;

    OperateRecordTypeEnum(String type, String description) {
        this.type = type;
        this.description = description;
    }
}
