"""Constants for Jana MCP Server."""
# Data Limits
DEFAULT_LIMIT = 100
MAX_LIMIT = 1000
TREND_DATA_LIMIT = 1000
# HTTP Status Codes
HTTP_OK = 200
HTTP_BAD_REQUEST = 400
HTTP_UNAUTHORIZED = 401
HTTP_NOT_FOUND = 404
HTTP_TOO_MANY_REQUESTS = 429
HTTP_INTERNAL_SERVER_ERROR = 500
HTTP_SERVICE_UNAVAILABLE = 503
# Timeouts
DEFAULT_TIMEOUT_SECONDS = 30
MIN_TIMEOUT_SECONDS = 1
MAX_TIMEOUT_SECONDS = 300
# Server Configuration
DEFAULT_SERVER_HOST = "0.0.0.0"
DEFAULT_SERVER_PORT = 8080
MIN_PORT = 1
MAX_PORT = 65535
# Logging
DEFAULT_LOG_LEVEL = "INFO"
# Rate Limiting
RATE_LIMIT_DEFAULT = "100/minute" # Default rate limit for endpoints
RATE_LIMIT_SSE = "10/minute" # Rate limit for SSE connections (more restrictive)
RATE_LIMIT_MESSAGES = "200/minute" # Rate limit for message endpoint
# Geographic Constants
MIN_LONGITUDE = -180
MAX_LONGITUDE = 180
MIN_LATITUDE = -90
MAX_LATITUDE = 90
# Coordinate Validation
POINT_COORDINATES_REQUIRED = 2 # lon, lat
BBOX_COORDINATES_REQUIRED = 4 # min_lon, min_lat, max_lon, max_lat
MIN_TREND_DATA_POINTS = 2 # Need at least 2 points for trend calculation
__all__ = [
"BBOX_COORDINATES_REQUIRED",
"DEFAULT_LIMIT",
"DEFAULT_LOG_LEVEL",
"DEFAULT_SERVER_HOST",
"DEFAULT_SERVER_PORT",
"DEFAULT_TIMEOUT_SECONDS",
"HTTP_BAD_REQUEST",
"HTTP_INTERNAL_SERVER_ERROR",
"HTTP_NOT_FOUND",
"HTTP_OK",
"HTTP_SERVICE_UNAVAILABLE",
"HTTP_TOO_MANY_REQUESTS",
"HTTP_UNAUTHORIZED",
"MAX_LATITUDE",
"MAX_LIMIT",
"MAX_LONGITUDE",
"MAX_PORT",
"MAX_TIMEOUT_SECONDS",
"MIN_LATITUDE",
"MIN_LONGITUDE",
"MIN_PORT",
"MIN_TIMEOUT_SECONDS",
"MIN_TREND_DATA_POINTS",
"POINT_COORDINATES_REQUIRED",
"RATE_LIMIT_DEFAULT",
"RATE_LIMIT_MESSAGES",
"RATE_LIMIT_SSE",
"TREND_DATA_LIMIT",
]