"""
Training Progress Constants
Centralized constants for training progress tracking and timing
"""

# Progress Milestones (percentage)
PROGRESS_STARTED = 0
PROGRESS_DATA_VALIDATION = 10
PROGRESS_DATA_ANALYSIS = 20
PROGRESS_DATA_PREPARATION_COMPLETE = 30
PROGRESS_ML_TRAINING_START = 40
PROGRESS_TRAINING_COMPLETE = 85
PROGRESS_STORING_MODELS = 92
PROGRESS_STORING_METRICS = 94
PROGRESS_COMPLETED = 100

# Progress Ranges
PROGRESS_TRAINING_RANGE_START = 20  # After data analysis
PROGRESS_TRAINING_RANGE_END = 80    # Before finalization
PROGRESS_TRAINING_RANGE_WIDTH = PROGRESS_TRAINING_RANGE_END - PROGRESS_TRAINING_RANGE_START  # 60%

# Time Limits and Intervals (seconds)
MAX_ESTIMATED_TIME_REMAINING_SECONDS = 1800  # 30 minutes
WEBSOCKET_HEARTBEAT_INTERVAL_SECONDS = 30
WEBSOCKET_RECONNECT_MAX_ATTEMPTS = 3
WEBSOCKET_RECONNECT_INITIAL_DELAY_SECONDS = 1
WEBSOCKET_RECONNECT_MAX_DELAY_SECONDS = 10

# Training Timeouts (seconds)
TRAINING_SKIP_OPTION_DELAY_SECONDS = 120  # 2 minutes
HTTP_POLLING_INTERVAL_MS = 5000  # 5 seconds
HTTP_POLLING_DEBOUNCE_MS = 5000  # 5 seconds before enabling after WebSocket disconnect

# Frontend Display
TRAINING_COMPLETION_DELAY_MS = 2000  # Delay before navigating after completion
