package core

import "github.com/goWxHook/goWxHook/utils/json"

type VoiceToTextRequest struct {
	Msgid string `json:"msgid"`
}

type VoiceToTextResponseData struct {
	FromWxid string `json:"from_wxid"`
	Msgid    string `json:"msgid"`
	RoomWxid string `json:"room_wxid"`
	Status   int    `json:"status"`
	Text     string `json:"text"`
	ToWxid   string `json:"to_wxid"`
	WxType   int    `json:"wx_type"`
}

type VoiceToTextResponse struct {
	Data VoiceToTextResponseData `json:"data"`
	Type int                     `json:"type"`
}

// VoiceToText 语音转文字
func (w *WxApi) VoiceToText(request VoiceToTextRequest) (*VoiceToTextResponseData, error) {
	resp, err := w.internalCall(MtVoiceToTextMsg, 120, MtVoiceToTextMsg, request, nil)
	if err != nil {
		return nil, err
	}
	var rdata VoiceToTextResponse
	err = json.Unmarshal([]byte(resp), &rdata)
	if err != nil {
		return nil, WxError{-1, err.Error()}
	}
	return &rdata.Data, nil
}
