subscribe

This commit is contained in:
kislovdm
2026-03-10 16:24:21 +03:00
parent 4c60efd689
commit e768ee6604
9 changed files with 618 additions and 40 deletions
@@ -0,0 +1,30 @@
using PepperBot.Domain;
namespace PepperBot.Application.Interfaces;
public interface ISubscriptionRepository
{
Task InitializeAsync(CancellationToken cancellationToken);
/// <summary>
/// Получить все активные подписки.
/// </summary>
Task<IReadOnlyList<Subscription>> GetAllActiveAsync(CancellationToken cancellationToken);
/// <summary>
/// Добавить новое правило подписки для указанного чата.
/// Одно правило = один кейворд (но у одного чата может быть много правил).
/// </summary>
Task AddSubscriptionAsync(string chatId, string keyword, CancellationToken cancellationToken);
/// <summary>
/// Получить активные подписки для конкретного чата.
/// </summary>
Task<IReadOnlyList<Subscription>> GetByChatAsync(string chatId, CancellationToken cancellationToken);
/// <summary>
/// Удалить (деактивировать) подписку по идентификатору.
/// </summary>
Task DeleteSubscriptionAsync(long id, CancellationToken cancellationToken);
}
@@ -4,6 +4,19 @@ namespace PepperBot.Application.Interfaces;
public interface ITelegramNotifier
{
/// <summary>
/// Уведомление о новой скидке в общий чат (из переменной окружения TELEGRAM_CHAT_ID).
/// </summary>
Task NotifyNewDealAsync(Deal deal, CancellationToken cancellationToken);
/// <summary>
/// Уведомление о скидке в конкретный Telegram-чат (личная/персональная рассылка).
/// </summary>
Task NotifyDealToChatAsync(Deal deal, string chatId, CancellationToken cancellationToken);
/// <summary>
/// Запустить обработку входящих сообщений Telegram и регистрацию подписок.
/// </summary>
Task StartAsync(CancellationToken cancellationToken);
}