using System.IO;
using System.Threading;
using System.Threading.Tasks;

namespace AsbCloudApp.Services;

/// <summary>
/// Сервис импорта/экспорта для РТК вводимых вручную
/// </summary>
public interface IProcessMapPlanImportService
{
	/// <summary>
	/// Загрузить данные из файла
	/// </summary>
	/// <param name="idWell"></param>
	/// <param name="idUser"></param>
	/// <param name="deleteProcessMapPlansBeforeImport"></param>
	/// <param name="stream"></param>
	/// <param name="cancellationToken"></param>
	/// <returns></returns>
	Task ImportAsync(int idWell, int idUser, bool deleteProcessMapPlansBeforeImport, Stream stream, 
		CancellationToken cancellationToken);

	/// <summary>
	/// Сформировать файл с данными
	/// </summary>
	/// <param name="idWell"></param>
	/// <param name="cancellationToken"></param>
	/// <returns></returns>
	Task<Stream> ExportAsync(int idWell, CancellationToken cancellationToken);
	
	/// <summary>
	/// Получение шаблона для заполнения
	/// </summary>
	/// <returns></returns>
	Task<Stream> GetExcelTemplateStreamAsync(CancellationToken cancellationToken);
}