using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using TaxBaik.Domain.Entities;

namespace TaxBaik.Domain.Interfaces;

public interface ICommonCodeRepository
{
    Task<IEnumerable<string>> GetAllGroupsAsync(CancellationToken ct = default);
    Task<IEnumerable<CommonCode>> GetByGroupAsync(string codeGroup, CancellationToken ct = default);
    Task<IEnumerable<CommonCode>> GetAllActiveAsync(CancellationToken ct = default);
    Task<CommonCode?> GetAsync(string codeGroup, string codeValue, CancellationToken ct = default);
    Task UpsertAsync(CommonCode code, CancellationToken ct = default);
    Task DeleteAsync(string codeGroup, string codeValue, CancellationToken ct = default);
}
