"""
Configuration for Case AI Extraction System
Phase 3 - Python Processing
"""

import os
from pathlib import Path
from dotenv import load_dotenv

# Load environment variables
env_path = Path(__file__).parent.parent / '.env'
load_dotenv(env_path)

class Config:
    # Base paths
    BASE_DIR = Path(__file__).parent.parent
    STORAGE_DIR = BASE_DIR / 'storage'
    ORIGINAL_PDFS_DIR = STORAGE_DIR / 'original_pdfs'
    PROCESSED_DIR = STORAGE_DIR / 'processed'
    OCR_DIR = STORAGE_DIR / 'ocr'
    EXTRACTED_JSON_DIR = STORAGE_DIR / 'extracted_json'
    LOGS_DIR = STORAGE_DIR / 'logs'
    
    # Database
    DB_HOST = os.getenv('DB_HOST', 'localhost')
    DB_PORT = os.getenv('DB_PORT', '3306')
    DB_NAME = os.getenv('DB_DATABASE', 'case_ai')
    DB_USER = os.getenv('DB_USERNAME', 'root')
    DB_PASS = os.getenv('DB_PASSWORD', '')
    
    # DeepSeek API
    DEEPSEEK_API_KEY = os.getenv('DEEPSEEK_API_KEY', '')
    DEEPSEEK_API_URL = os.getenv('DEEPSEEK_API_URL', 'https://api.deepseek.com/v1/chat/completions')
    DEEPSEEK_MODEL = os.getenv('DEEPSEEK_MODEL', 'deepseek-chat')
    
    # OCR Settings
    TESSERACT_PATH = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    OCR_LANGUAGE = 'eng'
    
    # Processing
    MIN_TEXT_LENGTH = 50  # Minimum characters to consider page has text
    OCR_DPI = 300  # DPI for OCR rendering
    
    @classmethod
    def ensure_directories(cls):
        """Create all required directories"""
        directories = [
            cls.STORAGE_DIR,
            cls.ORIGINAL_PDFS_DIR,
            cls.PROCESSED_DIR,
            cls.OCR_DIR,
            cls.EXTRACTED_JSON_DIR,
            cls.LOGS_DIR
        ]
        for directory in directories:
            directory.mkdir(parents=True, exist_ok=True)