"""
Global error handlers for the application.

This module provides centralized error handling functions for common HTTP errors.
"""
from flask import jsonify, request


def register_error_handlers(app):
    """
    Register global error handlers with the Flask application.

    Args:
        app: Flask application instance
    """

    @app.errorhandler(400)
    def bad_request(error):
        """Handle 400 Bad Request errors."""
        app.logger.warning(f"400 Bad Request error for URL: {request.url}")
        return jsonify({"success": False, "message": "Bad request"}), 400

    @app.errorhandler(404)
    def not_found_error(error):
        """Handle 404 Not Found errors."""
        app.logger.warning(f"404 Not Found error triggered for URL: {request.url}")
        return jsonify({"success": False, "message": "Resource not found"}), 404

    @app.errorhandler(405)
    def method_not_allowed(error):
        """Handle 405 Method Not Allowed errors."""
        app.logger.warning(f"405 Method Not Allowed error for URL: {request.url}")
        return jsonify({"success": False, "message": "Method not allowed"}), 405

    @app.errorhandler(500)
    def internal_error(error):
        """Handle 500 Internal Server errors."""
        # Note: The specific error causing the 500 might have already been logged
        app.logger.error(f"Global 500 Internal Server error handler triggered: {error}")
        return jsonify({"success": False, "message": "Internal server error"}), 500

    app.logger.info("Registered global error handlers")
