# FastAPI y servidor
fastapi>=0.115.0,<1.0
uvicorn[standard]>=0.32.0,<1.0
python-multipart>=0.0.9,<1.0

# Base de datos
sqlalchemy>=2.0.36,<3.0
psycopg2-binary>=2.9.9,<3.0
alembic>=1.13.0,<2.0

# ERP Database Access (Pivot 2026)
mysql-connector-python>=9.0.0,<10.0  # Farmanager adapter (MySQL)
# pyodbc>=5.0.0,<6.0  # Farmatic/Nixfarma adapter (SQL Server) - uncomment when needed

# Dropzone Folder Monitoring (Pivot 2026)
watchdog>=4.0.0,<5.0  # File system events (folder watching)

# Redis para cache
redis>=5.2.0,<6.0

# Autenticación - Modern stack
passlib[argon2]>=1.7.4,<2.0
argon2-cffi>=25.1.0,<26.0
python-jose[cryptography]>=3.3.0,<4.0
python-dotenv>=1.0.0,<2.0
authlib>=1.3.2,<2.0
itsdangerous>=2.2.0,<3.0
httpx>=0.28.0,<1.0

# Procesamiento de datos - Modern pandas stack (2025)
pandas>=2.3.0,<3.0
numpy>=2.3.0,<3.0
openpyxl>=3.1.0,<4.0
xlrd>=2.0.1,<3.0
reportlab>=4.0.0,<5.0  # PDF generation for reports (Issue #511)
python-docx>=1.1.0,<2.0  # Word document generation for action plans (Issue #513)
scikit-learn>=1.5.0,<2.0  # Clustering fallback (TF-IDF, KMeans)
statsmodels>=0.14.0,<0.15  # STL decomposition, Holt-Winters (Issue #489)

# Fuzzy matching para detección de duplicados (Issue #473)
rapidfuzz>=3.10.0,<4.0   # Fast fuzzy string matching
Unidecode>=1.3.8,<2.0    # Unicode to ASCII (acentos)

# LLM Enrichment Pipeline (Issue #456)
# NOTE: sentence-transformers, umap-learn, hdbscan ELIMINADOS (ADR-004)
# El clustering semántico se reemplaza por grupos curados manualmente
groq>=0.11.0,<1.0                  # Groq API client (L2 classification Tier 2)
ollama>=0.3.0,<1.0                 # Ollama Python client (local fallback)
tenacity>=8.0.0,<9.0               # Retry with backoff for LLM calls

# Celery para tareas asíncronas (Issue #456)
celery>=5.4.0,<6.0                 # Task queue
kombu>=5.4.0,<6.0                  # Celery messaging

# Integración CIMA API oficial
aempsconn>=1.1.1,<2.0

# Validación y serialización
pydantic>=2.10.0,<3.0
pydantic-settings>=2.5.0,<3.0
email-validator>=2.1.0,<3.0

# Utilidades
python-dateutil>=2.9.0,<3.0
pytz>=2024.1,<2025.0

# Testing (desarrollo)
pytest>=8.0.0,<9.0
pytest-asyncio>=0.23.0,<1.0  # Python 3.12 compatible
pytest-cov>=4.0.0,<5.0
pytest-xdist>=3.5.0,<4.0  # Ejecucion paralela de tests (-n auto)
httpx>=0.28.0,<1.0
memory-profiler>=0.61.0,<1.0
hypothesis>=6.100.0,<7.0
filelock>=3.15.0,<4.0  # Concurrent test session prevention

# Code quality and linting
black>=25.9.0,<26.0
isort>=5.13.0,<6.0
flake8>=7.0.0,<8.0
mypy>=1.10.0,<2.0
bandit>=1.8.0,<2.0

# HTTP client (security updates)
requests>=2.32.3,<3.0
urllib3>=2.2.3,<3.0

# Structured logging
structlog>=24.4.0,<25.0

# System monitoring
psutil>=5.9.0,<6.0
prometheus-client>=0.21.0,<1.0

# CORS para desarrollo (python-multipart ya está incluido arriba)

# Rate limiting
slowapi>=0.1.9,<1.0
