/**
 * Copyright IBM Corp. 2024, 2025
 */

import { IRange } from '@apic/compliance-core';
import { AiCodeAugmentationsGroup } from '../models/ai-augmentations.model.js';
import {
  AiErrorRemediationsGroup,
  CommonLintResponse,
} from '../models/ai-error-remediations.model.js';
import { ApiMConfig } from '../models/api-m-config.model.js';
import { AiValidationErrorsGroup } from '../models/ai-validation-errors.model.js';

export type AIDataStoreModel = {
  isAiEnabled: boolean; // To be set when isAiEnabledUser && openapi3.0
  isAiEnabledApiMAccount: boolean; // To be set when api-m/user account has access to ai features
  apiMConfig: ApiMConfig | null; // To be set with relevent api-m/user info
  aiCodeAugmentations: AiCodeAugmentationsGroup; // To be set after the requesting data from AI
  aiErrorRemediations: AiErrorRemediationsGroup; // To be set after the requesting data from AI
  aiValidationErrors: AiValidationErrorsGroup; // To be set after receiving validation errors from rulesets
  commonErrorRemediations: CommonLintResponse[]; // To be updated whenever lint results/error remediations are updated
  isDataLoading: boolean;
  aiAddedLines: Array<IRange>; // To be used for AI added lines in the editor
  isLoading: boolean;
  // Save the AI error remediations and other data
};
