using Journal.Core.Dtos; namespace Journal.Core.Services; public sealed class DisabledAiService : IAiService { private readonly string _provider; private readonly string _message; private readonly bool _healthy; public DisabledAiService(string provider, string message = "AI provider disabled.", bool healthy = true) { _provider = string.IsNullOrWhiteSpace(provider) ? "none" : provider.Trim(); _message = string.IsNullOrWhiteSpace(message) ? "AI provider disabled." : message.Trim(); _healthy = healthy; } public Task HealthAsync(CancellationToken cancellationToken = default) => Task.FromResult(new AiHealthDto(_provider, Enabled: false, Healthy: _healthy, Message: _message)); public Task SummarizeEntryAsync(string content, string? fileStem = null, CancellationToken cancellationToken = default) => Task.FromResult(_message); public Task SummarizeAllAsync(IReadOnlyList entries, CancellationToken cancellationToken = default) => Task.FromResult(_message); public Task ChatAsync(string prompt, CancellationToken cancellationToken = default) => Task.FromResult(_message); public Task> EmbedAsync(string content, CancellationToken cancellationToken = default) => Task.FromResult>([]); }