using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace Sozsoft.Notifications.NotificationRules;
public interface INotificationRuleAppService : ICrudAppService<
NotificationRuleDto,
Guid,
PagedAndSortedResultRequestDto,
CreateUpdateNotificationRuleDto>
{
///
/// Kullanicinin kurallarina konu olan bildirim tipleri. Tercih ekrani satirlari bu tiplerden
/// kurar; eslesme ad uzerinden degil Id uzerinden yapilir.
///
Task> GetMyNotificationTypesAsync();
Task> GetMyNotificationRules();
///
/// Elle bildirim diyaloguna kuralin ozetini verir. Parametre adi id olamaz: ABP o adi
/// gorunce ucu {id} rotasina tasir ve cagri CRUD'un Get ucuna duserdi.
///
Task GetRuleSummaryAsync(Guid ruleId);
/// Kullanicinin bir tur/kanal icin kendi tercihini yazar.
Task PostMyNotificationRule(CreateUpdateNotificationRuleDto Input);
/// Bir turdeki kullanici tercihlerini siler; kural yeniden varsayilana doner.
Task DeleteMyNotificationRules(Guid NotificationTypeId);
}