function getBBox(geometry) {
    let minLng = Infinity, minLat = Infinity;
    let maxLng = -Infinity, maxLat = -Infinity;

    function process(coords) {
        if (typeof coords[0] === "number") {
            const [lng, lat] = coords;

            minLng = Math.min(minLng, lng);
            minLat = Math.min(minLat, lat);
            maxLng = Math.max(maxLng, lng);
            maxLat = Math.max(maxLat, lat);
        } else {
            coords.forEach(process);
        }
    }

    // 🔥 handle theo type cho rõ ràng
    switch (geometry.type) {
        case "Point":
            process(geometry.coordinates);
            break;

        case "MultiPoint":
        case "LineString":
            process(geometry.coordinates);
            break;

        case "MultiLineString":
        case "Polygon":
            process(geometry.coordinates);
            break;

        case "MultiPolygon":
            process(geometry.coordinates);
            break;

        default:
            throw new Error("Unsupported geometry type: " + geometry.type);
    }

    return { minLng, minLat, maxLng, maxLat };
}

module.exports = { getBBox };