package cn.iocoder.yudao.module.mqtt.api.path.task;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 发送任务给PP
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TaskToPathPlanningDTO {

    @Schema(description = "robot_task_detail/robot_charge_log 的 id")
    private String id;

    @Schema(description = "任务类型(TASK:robot_task的任务、CHARGE:充电任务)")
    private String type;

    //线库: LINE + 线库号
    //普通库位: POINT + 点位号
    @Schema(description = "取货的组编号")
    private String takeGroupId;

    @Schema(description = "取货任务, 组序号, 越大越先执行")
    private Long takeLocationNumber;

    @Schema(description = "取货任务的终点id")
    private Long takePointId;

    //线库: LINE + 线库号
    //普通库位: POINT + 点位号
    @Schema(description = "放货的组编号(可能为空)")
    private String releaseGroupId;

    @Schema(description = "放货任务, 组序号, 越大越先执行(可能为空)")
    private Long releaseLocationNumber;

    @Schema(description = "放货任务的终点id")
    private Long releasePointId;

    @Schema(description = "优先级(不同的组编号时:越大越先执行, 相同组编号时:组序号越大的越先执行)")
    private Long priority;

    @Schema(description = "能执行此任务的机器人编号， 和机器人不能行走的区域")
    private List<TaskRobotNoLimittationAreaDTO> robotNoLimitationAreaDTOS;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

}
