"""Request validation helpers for API endpoints."""
from flask import jsonify


def validate_request_body(data, required_fields):
    """
    Validate that required fields are present in request body.
    
    Args:
        data: Request JSON data
        required_fields: List of required field names
        
    Returns:
        tuple: (is_valid, error_response)
               If valid: (True, None)
               If invalid: (False, error_response)
    """
    if not data:
        return False, jsonify({
            'success': False,
            'message': 'Request body is required',
            'data': None
        }), 400
    
    missing_fields = [field for field in required_fields if field not in data or not data[field]]
    
    if missing_fields:
        return False, jsonify({
            'success': False,
            'message': f'Missing required fields: {", ".join(missing_fields)}',
            'data': None
        }), 400
    
    return True, None


def get_request_field(data, field, default=None):
    """
    Safely get a field from request data.
    
    Args:
        data: Request JSON data
        field: Field name
        default: Default value if field not present
        
    Returns:
        Field value or default
    """
    if not data:
        return default
    return data.get(field, default)