feat: add configuration option to enable/disable Chatika integration

This commit is contained in:
masoodafar-web
2025-12-23 23:09:18 +03:30
parent 288b85a59b
commit ef8d5d4d97
2 changed files with 14 additions and 1 deletions
@@ -2,6 +2,7 @@ using CMSMicroservice.Application.Common.Interfaces;
using CMSMicroservice.Domain.Entities.Club;
using CMSMicroservice.Domain.Enums;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Polly;
@@ -15,6 +16,7 @@ public class ChatikaAccountActivationJob
{
private readonly IApplicationDbContext _context;
private readonly IChatikaApiService _chatikaApiService;
private readonly IConfiguration _configuration;
private readonly ILogger<ChatikaAccountActivationJob> _logger;
private readonly ResiliencePipeline _retryPipeline;
@@ -32,10 +34,12 @@ public class ChatikaAccountActivationJob
public ChatikaAccountActivationJob(
IApplicationDbContext context,
IChatikaApiService chatikaApiService,
IConfiguration configuration,
ILogger<ChatikaAccountActivationJob> logger)
{
_context = context;
_chatikaApiService = chatikaApiService;
_configuration = configuration;
_logger = logger;
// Polly Retry: 3 تلاش با فاصله نمایی
@@ -63,6 +67,14 @@ public class ChatikaAccountActivationJob
/// </summary>
public async Task ExecuteAsync(CancellationToken cancellationToken = default)
{
// Check if Chatika integration is enabled
var enabled = _configuration.GetValue<bool>("Chatika:Enabled");
if (!enabled)
{
_logger.LogDebug("Chatika integration is disabled (Chatika:Enabled = false). Skipping job.");
return;
}
var executionId = Guid.NewGuid();
_logger.LogInformation(
"🚀 [{ExecutionId}] Starting Chatika account activation job",