using Forwarder.Domain;

using Microsoft.EntityFrameworkCore;

namespace Forwarder.Data;

/// <summary>
/// Интерфейс контекста данных.
/// </summary>
public interface IDataContext
{
	/// <summary>
	/// Маппинг идентификаторов объектов.
	/// </summary>
	DbSet<AssetMap> Maps { get; }

	/// <summary>
	/// Сообщения.
	/// </summary>
	DbSet<Message> Messages { get; }

	/// <summary>
	/// Сохранение изменений.
	/// </summary>
	/// <param name="cancellationToken">Токен отмены.</param>
	/// <returns>Число записанных с базу данных изменений.</returns>
	Task<int> SaveChangesAsync(CancellationToken cancellationToken);
}
