package wechat

import (
	"encoding/xml"
	"gitee.ltd/lxh/wechat-robot/internal/types"
)

// AppMessage APP消息
type AppMessage struct {
	XMLName xml.Name `xml:"msg"`
	Text    string   `xml:",chardata"`
	AppMsg  struct {
		Text          string               `xml:",chardata"`
		Appid         string               `xml:"appid,attr"`
		SdkVer        string               `xml:"sdkver,attr"`
		Title         string               `xml:"title"`
		Des           string               `xml:"des"`
		Action        string               `xml:"action"`
		Type          types.AppMessageType `xml:"type"`
		ShowType      string               `xml:"showtype"`
		SoundType     string               `xml:"soundtype"`
		MediaTagName  string               `xml:"mediatagname"`
		MessageExt    string               `xml:"messageext"`
		MessageAction string               `xml:"messageaction"`
		Content       string               `xml:"content"`
		ContentAttr   string               `xml:"contentattr"`
		URL           string               `xml:"url"`
		LowUrl        string               `xml:"lowurl"`
		DataUrl       string               `xml:"dataurl"`
		LowDataUrl    string               `xml:"lowdataurl"`
		SongAlbumUrl  string               `xml:"songalbumurl"`
		SongLyric     string               `xml:"songlyric"`
		AppAttach     struct {
			Text           string `xml:",chardata"`
			TotalLen       string `xml:"totallen"`
			AttachId       string `xml:"attachid"`
			EmoticonMd5    string `xml:"emoticonmd5"`
			FileExt        string `xml:"fileext"`
			CdnThumbAeskey string `xml:"cdnthumbaeskey"`
			CdnAttachUrl   string `xml:"cdnattachurl"`
			FileKey        string `xml:"filekey"`
			AesKey         string `xml:"aeskey"`
		} `xml:"appattach"`
		ExtInfo           string `xml:"extinfo"`
		SourceUsername    string `xml:"sourceusername"`
		SourceDisplayName string `xml:"sourcedisplayname"`
		ThumbUrl          string `xml:"thumburl"`
		Md5               string `xml:"md5"`
		StaTextStr        string `xml:"statextstr"`
		DirectShare       string `xml:"directshare"`
		ReferMsg          struct {
			Text        string `xml:",chardata"`
			Type        string `xml:"type"`
			SvrId       int64  `xml:"svrid"`
			FromUsr     string `xml:"fromusr"`
			ChatUsr     string `xml:"chatusr"`
			DisplayName string `xml:"displayname"`
			Content     string `xml:"content"`
			MsgSource   struct {
				Text      string `xml:",chardata"`
				MsgSource struct {
					Text        string `xml:",chardata"`
					SequenceID  string `xml:"sequence_id"`
					Silence     string `xml:"silence"`
					MemberCount string `xml:"membercount"`
					Signature   string `xml:"signature"`
				} `xml:"msgsource"`
			} `xml:"msgsource"`
		} `xml:"refermsg"`
	} `xml:"appmsg"`
	FromUsername string `xml:"fromusername"`
	Scene        string `xml:"scene"`
	AppInfo      struct {
		Text    string `xml:",chardata"`
		Version string `xml:"version"`
		AppName string `xml:"appname"`
	} `xml:"appinfo"`
	CommentUrl string `xml:"commenturl"`
}
