using AuthorBuddy.Web.Data;

namespace AuthorBuddy.Web.Services;

public interface ISettingsService
{
    Task<string?> GetOllamaUrlAsync();
    Task<string?> GetRagModelAsync();
    Task<string?> GetStyleModelAsync();
    Task<string?> GetSpellingModelAsync();
    Task<string?> GetThemeAsync();
    Task SaveOllamaUrlAsync(string url);
    Task SaveRagModelAsync(string model);
    Task SaveStyleModelAsync(string model);
    Task SaveSpellingModelAsync(string model);
    Task SaveThemeAsync(string theme);

    Task<string?> GetLektorSystemPromptAsync();
    Task<string?> GetFactCheckTemplateAsync();
    Task<string?> GetSpellingPromptAsync();

    Task SaveLektorSystemPromptAsync(string prompt);
    Task SaveFactCheckTemplateAsync(string prompt);
    Task SaveSpellingPromptAsync(string prompt);

    Task<List<UserEntity>> GetUsersAsync();
    Task<UserEntity> GetCurrentUserAsync();
    Task SetCurrentUserAsync(int userId);
    Task<UserEntity> CreateUserAsync(string name);

    int? CurrentProjectId { get; set; }

    Task InitializeAsync();
}
