package mf_calling

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"

	neModel "be.ems/src/modules/network_element/model"
)

func (s *MfCallingInfo) GetCallingInfoFromMF(neInfo neModel.NeInfo) ([]MfCallingInfo, int, error) {
	// 构造网元MF的API地址
	url := fmt.Sprintf("http://%s:%d/api/rest/psap/v1/mf/callingInfo", neInfo.IP, neInfo.Port)

	// 可根据querys拼接更多参数

	resp, err := http.Get(url)
	if err != nil {
		return nil, 0, err
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		return nil, 0, err
	}

	// 假设MF返回格式为 {"totalCalls": 10, "Data": [...]}
	var mfResp struct {
		TotalCalls int             `json:"totalCalls"`
		Data       []MfCallingInfo `json:"data"`
	}
	if err := json.Unmarshal(body, &mfResp); err != nil {
		return nil, 0, err
	}
	return mfResp.Data, mfResp.TotalCalls, nil
}
