using Hcs.Broker.Api.Payload.HouseManagement;
using Hcs.Broker.Api.Request;
using Hcs.Service.Async.HouseManagement;
namespace Hcs.Broker.Api
{
// http://open-gkh.ru/HouseManagementServiceAsync/
public interface IHouseManagementApi
{
///
/// Экспорт лицевых счетов
///
/// Глобальный уникальный идентификатор дома по ФИАС
/// Токен отмены
/// Лицевые счета
Task> ExportAccountAsync(string fiasHouseGuid, CancellationToken token = default);
///
/// Возвращает информацию о доме
///
/// Глобальный уникальный идентификатор дома по ФИАС
/// Токен отмены
/// Информация о доме
Task> ExportHouseAsync(string fiasHouseGuid, CancellationToken token = default);
///
/// Возвращает все договора ресурсоснабжения
///
/// Токен отмены
/// Договора ресурсоснабжения
Task> ExportSupplyResourceContractDataAsync(CancellationToken token = default);
///
/// Запрашивает экспорт договоров ресурсоснабжения
///
/// Идентификатор экспорта, не заполняется при первичном экспорте
/// Токен отмены
/// Идентификатор сообщения операции экспорта
Task RequestExportSupplyResourceContractDataAsync(string? exportGuid = null, CancellationToken token = default);
///
/// Возвращает результат экспорта договоров ресурсоснабжения
///
/// Идентификатор сообщения операции экспорта
/// Результат запроса
Task> GetExportSupplyResourceContractDataResultAsync(string messageGuid);
///
/// Возвращает договор ресурсоснабжения по его идентификатору в ГИС ЖКХ
///
/// Идентификатор договора ресурсоснабжения в ГИС ЖКХ
/// Токен отмены
/// Договор ресурсоснабжения
Task ExportSupplyResourceContractDataAsync(Guid contractRootGuid, CancellationToken token = default);
///
/// Возвращает договор ресурсоснабжения по номеру договора в ГИС ЖКХ
///
/// Номер договора ресурсоснабжения в ГИС ЖКХ
/// Токен отмены
/// Договор ресурсоснабжения
Task ExportSupplyResourceContractDataAsync(string contractNumber, CancellationToken token = default);
///
/// Возвращает объекты жилищного фонда из договора ресурсоснабжения по его идентификатору
///
/// Идентификатор договора ресурсоснабжения в ГИС ЖКХ
/// Токен отмены
/// Объекты жилищного фонда
Task> ExportSupplyResourceContractObjectAddressDataAsync(Guid contractRootGuid, CancellationToken token = default);
///
/// Импорт лицевого счета
///
/// Пейлоад лицевого счета
/// Токен отмены
/// true, если операция выполнена успешно, иначе - false
Task ImportAccountDataAsync(ImportAccountDataPayload payload, CancellationToken token = default);
///
/// Импорт сведений о ДУ (создание ДУ)
///
/// Пейлоад ДУ
/// Токен отмены
/// Импортированный договор
Task ImportContractDataAsync(ImportContractDataPayload payload, CancellationToken token = default);
///
/// Импорт данных дома
///
/// Пейлоад данных дома
/// Токен отмены
/// true, если операция выполнена успешно, иначе - false
Task ImportHouseUODataAsync(ImportLivingHouseUODataPayload payload, CancellationToken token = default);
///
/// Импорт прибора учета
///
/// Прибор учета
/// Токен отмены
/// true, если операция выполнена успешно, иначе - false
Task ImportMeteringDeviceDataAsync(MeteringDeviceFullInformationType meteringDevice, CancellationToken token = default);
///
/// Импорт новости для информирования граждан
///
/// Пейлоад новости
/// Токен отмены
/// true, если операция выполнена успешно, иначе - false
Task ImportNotificationDataAsync(ImportNotificationDataPayload payload, CancellationToken token = default);
///
/// Импорт договора ресурсоснабжения с РСО
///
/// Пейлоад договора ресурсоснабжения
/// Токен отмены
/// Импортированный договор
Task ImportSupplyResourceContractDataAsync(ImportSupplyResourceContractDataPayload payload, CancellationToken token = default);
///
/// Импорт проекта договора ресурсоснабжения с РСО
///
/// Пейлоад проекта договора ресурсоснабжения
/// Токен отмены
/// Импортированный проект договора
Task ImportSupplyResourceContractProjectAsync(ImportSupplyResourceContractProjectPayload payload, CancellationToken token = default);
}
}