package com.zcloud.safetyDutyList.command.tasklist;

import com.alibaba.cola.exception.BizException;
import com.zcloud.safetyDutyList.domain.enums.SwitchFlagEnum;
import com.zcloud.safetyDutyList.domain.enums.TaskStatusEnum;
import com.zcloud.safetyDutyList.domain.gateway.tasklist.TaskListGateway;
import com.zcloud.safetyDutyList.domain.model.tasklist.TaskListE;
import com.zcloud.safetyDutyList.dto.tasklist.TaskListSwitchCmd;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;

/**
 * 清单开关切换执行器
 * <p>
 * 处理安全责任清单的开启/关闭切换操作
 */
@Component
@AllArgsConstructor
public class TaskListSwitchExe {
    private final TaskListGateway taskListGateway;

    public void execute(TaskListSwitchCmd cmd) {
        TaskListE taskListE = taskListGateway.getInfoByTaskListId(cmd.getTaskListId());
        if (taskListE == null) {
            throw new BizException("任务清单不存在");
        }
        taskListE.setSwitchFlag(SwitchFlagEnum.OFF.getCode());
        taskListE.setStatus(TaskStatusEnum.CLOSED.getCode());
        boolean res = taskListGateway.update(taskListE);
        if (!res) {
            throw new BizException("操作失败");
        }
    }
}
