package com.fizz.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fizz.business.domain.BizSendJob;
import com.fizz.business.domain.dto.SendJobCreateDTO;
import com.fizz.business.domain.dto.SendJobQueryDTO;
import com.fizz.business.domain.vo.SendJobDetailVO;

import java.util.List;

/**
 * 发送任务 Service
 */
public interface ISendJobService extends IService<BizSendJob> {

    /**
     * 创建发送任务（包含分组与明细）
     */
    Integer createSendJob(SendJobCreateDTO dto);

    /**
     * 查询发送任务列表（分页由 Controller 的 startPage() 控制）
     */
    List<BizSendJob> selectSendJobList(SendJobQueryDTO query);

    /**
     * 查询发送任务详情（包含分组与明细）
     */
    SendJobDetailVO selectSendJobDetail(Integer jobId);

    /**
     * 删除任务（逻辑删除：status=DELETED）
     */
    Boolean deleteSendJobByJobIds(Integer[] jobIds);

    /**
     * 执行发送：写入 OPC，并将发送结果保存为历史（更新 job/group/item 状态）
     */
    Boolean executeSendJob(Integer jobId);
}

