using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
///
/// BC任务
///
public interface ITaskManageBCService
{
///
/// 获取BC详情
///
/// BC主键
/// 返回回执
Task GetInfo(string pkId);
///
/// 通过任务主键获取BC详情
///
/// BC任务主键
/// 返回回执
Task GetInfoByTaskId(string taskPkId);
///
/// 获取待处理的BC任务(来自邮件解析需要对应订舱,系统会根据用户的订舱台账预配)
///
/// 返回回执
Task GetToDoBCList();
///
/// 任务ID下载附件
///
/// BC任务主键
/// 附件分类代码
/// 返回数据流
Task DownloadFile(string taskPKId, string fileCategory = "BC");
///
/// 检索订舱信息
///
/// 检索条件
/// 返回回执
Task QueryBookingOrderList(BookingOrderBCQuery query);
///
/// 转移任务(将任务指定给其他人)
///
/// BC任务主键
/// 用户ID
/// 返回回执
Task TransferTask(string taskPKId,long userId);
///
/// 生成订舱或舱位
///
/// 生成订舱或者舱位请求
/// 返回回执
Task CreateBookingAndSlot(BookingOrSlotGenerateDto model);
///
/// 取消任务
///
/// BC任务主键
/// 返回回执
Task CancelTask(string taskPKId);
///
/// 获取服务项目列表
///
/// 返回回执
Task> GetProjectList();
///
/// 发送邮件
///
/// BC任务主键
/// 强制订单主键(非必填)
/// 是否默认使用用户个人邮箱发送
/// 返回回执
Task SendEmail(string taskPKId, Nullable mandatoryBookingId = null, bool usePersonalEmailSend = false);
///
/// 获取当前比对结果
///
/// BC任务主键
/// 返回回执
Task> GetCompareResult(string taskPKId);
///
/// 同步舱位变更
///
/// BC任务主键
/// 租户ID
/// 返回回执
Task SyncBookingSlotChange(string taskPKId,long tenantId);
///
/// 重新处理BC任务
/// 对未匹配订舱订单的任务记录重新对应订舱订单
///
/// BC任务主键
/// 返回回执
Task SearchAndConnectBookingInfo(string taskPkId);
///
/// 重新比对
///
/// BC任务主键
///
Task ReCompareResult(string taskPKId);
///
/// 获取BC关联的订舱详情
///
/// BC任务主键
/// 返回回执
Task GetBookingOrder(string taskPkId);
///
/// 同步更新船期表
///
/// BC任务主键
///
Task SyncDjyVesselInfo(string taskPKId);
}
}