using Managing.Application.Abstractions.Services;
using Managing.Common;
using Microsoft.Extensions.Logging;

namespace Managing.Application.Workers;

public class SpotlightWorker : BaseWorker<SpotlightWorker>
{
    private readonly IStatisticService _statisticService;

    public SpotlightWorker(
        ILogger<SpotlightWorker> logger,
        IServiceProvider serviceProvider,
        IStatisticService statisticService) : base(
        Enums.WorkerType.Spotlight,
        logger,
        TimeSpan.FromMinutes(5),
        serviceProvider)
    {
        _statisticService = statisticService;
    }

    protected override async Task Run(CancellationToken cancellationToken)
    {
        try
        {
            await _statisticService.UpdateSpotlight();
        }
        catch (Exception ex)
        {
            _logger.LogError("Enable to update spotlight", ex);
            throw;
        }
    }
} 