using PhonebookService.Domain.Models;
using PhonebookService.Domain.Queries;
namespace PhonebookService.Domain.Repositories;
///
/// Interface for the phonebook repository
///
public interface IPhonebookRepository
{
///
/// Get items list based on the provided query
///
/// Parameters for filtering and pagination
/// Collection of
Task> GetItemsAsync(PhonebookFilterQuery query);
///
/// Get one item by its ID
///
/// Id of the item
/// Matched or null if none found
Task GetItemByIdAsync(int id);
///
/// Add new item to a database
///
/// entity
/// The result with assigned Id
Task CreateItemAsync(PhonebookRecord item);
///
/// Updates provided item in a database
///
/// item to update. Id is required
/// The result with assigned Id
Task UpdateItemAsync(PhonebookRecord item);
///
/// Deletes provided item from a database
///
/// to delete
Task DeleteItemAsync(PhonebookRecord item);
}