using adas_core.Domain.Models.MongoModels;

namespace adas_core.Application.Repositories.Interfaces;

public interface IPoCMappingRepository
{
    /// <summary>
    /// Asynchronously retrieves a <see cref="PoCMapping"/> associated with the specified key.
    /// Returns <c>null</c> when no mapping exists for the given key.
    /// </summary>
    /// <param name="key">The key used to look up the <see cref="PoCMapping"/>.</param>
    /// <returns>A task that represents the asynchronous operation. The task result contains the <see cref="PoCMapping"/> if found, or <c>null</c> if no mapping exists for the specified key.</returns>
    Task<PoCMapping?> FindByKey(string key);
    /// <summary>
    /// Retrieves the name of the collection associated with the current context or entity.
    /// </summary>
    /// <returns>The collection name as a string.</returns>
    string GetCollectionName();
}