namespace Distribution.Features.Region; public interface IRegionRepository { Task GetByIdAsync(Guid id); Task> GetAllAsync(); Task AddAsync(Models.Region entity); void Update(Models.Region entity); void Remove(Models.Region entity); Task GetTargetAsync(Guid regionId, string period); Task AddTargetAsync(Models.RegionalTarget target); void UpdateTarget(Models.RegionalTarget target); Task GetBudgetAsync(Guid regionId, string period); Task AddBudgetAsync(Models.RegionalBudget budget); void UpdateBudget(Models.RegionalBudget budget); Task GetAgencyMapAsync(Guid regionId, Guid agencyUserId); Task AddAgencyMapAsync(Models.RegionAgencyMap map); Task GetTaxRuleAsync(Guid regionId); Task AddTaxRuleAsync(Models.RegionalTaxRule rule); void UpdateTaxRule(Models.RegionalTaxRule rule); Task GetUserRoleLevelAsync(Guid userId); Task> GetRoutesAsync(Guid regionId); Task> GetStoresByRouteIdsAsync(List routeIds); Task> GetOrdersForDashboardAsync(Guid regionId, DateTime periodStart, DateTime periodEndExclusive); }