using System;
using System.Threading.Tasks;

namespace MyHN.Domain
{
  /// <summary>
  /// Représente l'accès aux données de type liens.
  /// </summary>
  public interface ILinkRepository
  {
    /// <summary>
    /// Persiste une entité lien.
    /// </summary>
    /// <param name="link"></param>
    /// <returns></returns>
    Task AddAsync(Link link);

    /// <summary>
    /// Met à jour un lien.
    /// </summary>
    /// <param name="link"></param>
    /// <returns></returns>
    Task UpdateAsync(Link link);

    /// <summary>
    /// Récupère un lien depuis un identifiant depuis la couche de persistance.
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    Link GetById(Guid id);
  }
}