package com.erp.platformsync.service.orderpull;

import com.erp.platformsync.dto.orderpull.OrderPullConfigDTO;
import com.erp.platformsync.dto.orderpull.OrderPullConfigRequest;
import com.erp.platformsync.dto.orderpull.OrderPullLogDTO;
import com.erp.platformsync.dto.orderpull.OrderPullLogQueryRequest;

import java.util.List;

/**
 * 订单拉取服务接口
 */
public interface OrderPullService {

    /**
     * 获取拉单配置列表
     */
    List<OrderPullConfigDTO> getConfigList();

    /**
     * 获取单个拉单配置
     */
    OrderPullConfigDTO getConfig(Long id);

    /**
     * 保存拉单配置
     */
    OrderPullConfigDTO saveConfig(OrderPullConfigRequest request);

    /**
     * 删除拉单配置
     */
    boolean deleteConfig(Long id);

    /**
     * 触发拉单
     */
    OrderPullLogDTO triggerPull(Long id);

    /**
     * 立即拉单
     */
    OrderPullLogDTO pullNow(OrderPullConfigRequest request);

    /**
     * 查询拉单日志
     */
    List<OrderPullLogDTO> getLogs(OrderPullLogQueryRequest queryRequest);

    /**
     * 获取配置的最新日志
     */
    List<OrderPullLogDTO> getLatestLogs(Long configId, int limit);

    /**
     * 启用配置
     */
    boolean enableConfig(Long id);

    /**
     * 禁用配置
     */
    boolean disableConfig(Long id);
}
