import { DetectedFood, ImageAnalysisResult } from '../types';
import { FOOD_DATABASE } from '../utils/constants';

export class ImageAnalysisService {
  private apiKey?: string;

  constructor(apiKey?: string) {
    this.apiKey = apiKey;
  }

  async analyzeImage(imageBase64: string): Promise<ImageAnalysisResult> {
    try {
      // 이미지 분석 로직
      const detectedFoods = this.matchFoodsByKeywords();
      const totalCalories = detectedFoods.reduce((sum, food) => sum + food.calories, 0);

      return {
        imageUri: '', // 이미지 URI는 외부에서 처리
        detectedFoods,
        totalCalories,
      };
    } catch (error) {
      return {
        imageUri: '',
        detectedFoods: [],
        totalCalories: 0,
        error: error instanceof Error ? error.message : '이미지 분석 중 오류가 발생했습니다.',
      };
    }
  }

  private matchFoodsByKeywords(): DetectedFood[] {
    const matchedFoods: DetectedFood[] = [];

    Object.entries(FOOD_DATABASE).forEach(([name, data]) => {
      matchedFoods.push({
        name,
        calories: data.calories,
        confidence: 0.8,
        portion: data.standardPortion
      });
    });

    return matchedFoods;
  }
} 