/**
 * Сервис для работы с настройками интеграций
 * Хранит настройки в localStorage
 */

export interface DomaAISettings {
  apiUrl: string;
  /**
   * Токен доступа к Doma AI (предпочтительный способ авторизации)
   */
  token?: string;
  /**
   * Резервные поля для авторизации по логину/паролю (fallback)
   */
  email?: string;
  phone?: string;
  password?: string;
}

export interface IntegrationSettings {
  domaAI: DomaAISettings;
}

const SETTINGS_KEY = 'mkd_integration_settings';

export const settingsService = {
  /**
   * Получить настройки интеграций
   */
  getIntegrationSettings(): IntegrationSettings | null {
    try {
      const stored = localStorage.getItem(SETTINGS_KEY);
      if (stored) {
        return JSON.parse(stored);
      }
      return null;
    } catch (e) {
      console.error('[settingsService] Ошибка при чтении настроек:', e);
      return null;
    }
  },

  /**
   * Сохранить настройки интеграций
   */
  saveIntegrationSettings(settings: IntegrationSettings): void {
    try {
      localStorage.setItem(SETTINGS_KEY, JSON.stringify(settings));
    } catch (e) {
      console.error('[settingsService] Ошибка при сохранении настроек:', e);
    }
  },

  /**
   * Получить настройки Дома.АИ
   */
  getDomaAISettings(): DomaAISettings | null {
    const settings = this.getIntegrationSettings();
    return settings?.domaAI || null;
  },

  /**
   * Сохранить настройки Дома.АИ
   */
  saveDomaAISettings(domaAISettings: DomaAISettings): void {
    const currentSettings = this.getIntegrationSettings() || { domaAI: domaAISettings };
    currentSettings.domaAI = domaAISettings;
    this.saveIntegrationSettings(currentSettings);
  },

  /**
   * Очистить настройки интеграций
   */
  clearIntegrationSettings(): void {
    localStorage.removeItem(SETTINGS_KEY);
  },
};
