#!/usr/bin/env python3
"""
Script de exemplo para testar o ImgBoost programaticamente.
"""

from imgboost import Engine
from imgboost.processors import ImageFilters, DocumentProcessor, SuperResolution
from imgboost.utils import ImageIO
import os


def example_basic():
    """Exemplo básico de uso."""
    print("🔧 Exemplo 1: Processamento básico")
    
    engine = Engine(output_dir='output_example')
    
    # Processar uma imagem
    # output_path = engine.run('input.jpg', mode='general', upscale=False)
    # print(f"✅ Imagem salva em: {output_path}")
    print("⚠️  Descomente as linhas acima e forneça uma imagem de entrada\n")


def example_custom_pipeline():
    """Exemplo de pipeline customizado."""
    print("🔧 Exemplo 2: Pipeline customizado")
    
    # Carregar imagem
    io = ImageIO()
    # img = io.load('input.jpg')
    
    # Criar processadores
    filters = ImageFilters(denoise_strength=15, contrast_clip=4.0)
    
    # Aplicar processamentos
    # img = filters.denoise(img)
    # img = filters.enhance_contrast(img)
    # img = filters.sharpen(img, strength=1.2)
    
    # Salvar
    # io.save(img, 'output_custom.jpg', quality=95)
    # print("✅ Pipeline customizado concluído")
    print("⚠️  Descomente as linhas acima e forneça uma imagem de entrada\n")


def example_document():
    """Exemplo de processamento de documento."""
    print("🔧 Exemplo 3: Processamento de documento")
    
    io = ImageIO()
    # img = io.load('documento.jpg')
    
    doc = DocumentProcessor()
    
    # Melhorar para OCR
    # img_enhanced = doc.enhance_for_ocr(img)
    # io.save(img_enhanced, 'documento_ocr.png')
    
    # Ou binarizar
    # img_binary = doc.binarize(img, method='adaptive')
    # io.save(img_binary, 'documento_binary.png')
    
    # print("✅ Documento processado")
    print("⚠️  Descomente as linhas acima e forneça uma imagem de entrada\n")


def example_super_resolution():
    """Exemplo de super-resolução."""
    print("🔧 Exemplo 4: Super-resolução")
    
    io = ImageIO()
    # img = io.load('baixa_resolucao.jpg')
    
    sr = SuperResolution()
    
    # Upscale 2x
    # img_upscaled = sr.upscale(img, scale=2)
    # io.save(img_upscaled, 'alta_resolucao.jpg', quality=100)
    
    # print("✅ Super-resolução aplicada")
    print("⚠️  Descomente as linhas acima e forneça uma imagem de entrada\n")


def example_batch():
    """Exemplo de processamento em lote."""
    print("🔧 Exemplo 5: Processamento em lote")
    
    io = ImageIO()
    
    # Carregar todas as imagens de um diretório
    # images = io.load_batch('input_folder/')
    
    engine = Engine(output_dir='output_batch')
    
    # Processar cada uma
    # for path, img in images:
    #     filename = os.path.basename(path)
    #     print(f"Processando: {filename}")
    #     engine.run(path, mode='general', upscale=False)
    
    # print("✅ Lote processado")
    print("⚠️  Descomente as linhas acima e forneça um diretório de entrada\n")


def main():
    """Executar todos os exemplos."""
    print("=" * 60)
    print("📦 ImgBoost - Exemplos de Uso")
    print("=" * 60)
    print()
    
    example_basic()
    example_custom_pipeline()
    example_document()
    example_super_resolution()
    example_batch()
    
    print("=" * 60)
    print("💡 Dica: Use 'imgboost --help' para ver todas as opções CLI")
    print("=" * 60)


if __name__ == '__main__':
    main()
