using PARR.Core.Repositories.Base;

namespace PARR.Core.Repositories.Interfaces.Unit
{
    public interface IUnitRepository : IBaseRepository<Domain.Entities.Unit.Unit>
    {
        IQueryable<Guid> GetInitialUnitIds(string dbValueMask);

        /// <summary>
        /// Получить юниты по Id атрибута и маски значения
        /// </summary>
        /// <param name="query"></param>
        /// <param name="fieldId"></param>
        /// <param name="valueMask"></param>
        /// <param name="isInverse">true - не содержит, false - содержит</param>
        /// <returns></returns>
        IQueryable<Domain.Entities.Unit.Unit> GetUnitByFieldAndValue(IQueryable<Domain.Entities.Unit.Unit> query, Guid fieldId, string valueMask, bool isInverse = false);
        
        IQueryable<Domain.Entities.Unit.Unit> GetWithIncludes();
    }
}
