import { JiraClient } from './jira/jiraClient';
import { GitHubClient } from './github/githubClient';
import { FuelixClient } from './fuelix/fuelixClient';
import { DocumentationService } from './services/documentationService';
import { loadConfig } from './config';

export async function activate() {
  const config = loadConfig();
  const service = new DocumentationService(
    new GitHubClient(config.github.token),
    new JiraClient(config.jira.token),
    new FuelixClient()
  );

  // Your extension activation code here
}

async function handleIDEEvent(event: any) {
  const config = loadConfig();
  const service = new DocumentationService(
    new GitHubClient(config.github.token),
    new JiraClient(config.jira.token),
    new FuelixClient()
  );

  try {
    // Analyze the event content
    const analysis = await service.analyzeChanges(event.content);
    
    // Create documentation PR
    const prUrl = await service.createDocumentationPR(analysis);
    
    // Create Jira ticket
    await service.createJiraBacklogItem(analysis, prUrl);
  } catch (error) {
    console.error('Error handling IDE event:', error);
  }
}

// Simulate an IDE event for testing
handleIDEEvent({ type: 'file_edit', file: 'src/app.ts', changes: 'Added new authentication logic' }); 