428 lines
14 KiB
Go
428 lines
14 KiB
Go
package dto
|
||
|
||
// ==================== 通用响应结构 ====================
|
||
|
||
type XhsCommonRes struct {
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Success bool `json:"success"`
|
||
}
|
||
|
||
// ==================== 绑定/解绑账户通知(接收) ====================
|
||
|
||
type XhsBindAccountReq struct {
|
||
Content string `json:"content" v:"required"` // 加密后内容
|
||
}
|
||
|
||
type XhsBindAccountDecrypted struct {
|
||
UserId string `json:"user_id"`
|
||
NickName string `json:"nick_name"`
|
||
AppId int64 `json:"app_id"`
|
||
Token string `json:"token"`
|
||
}
|
||
|
||
type XhsUnbindAccountReq struct {
|
||
Content string `json:"content" v:"required"` // 加密后内容
|
||
}
|
||
|
||
type XhsUnbindAccountDecrypted struct {
|
||
UserId string `json:"user_id"`
|
||
AppId int64 `json:"app_id"`
|
||
AccountCode string `json:"account_code"`
|
||
}
|
||
|
||
type XhsBindKosUserReq struct {
|
||
Content string `json:"content" v:"required"` // 加密后内容
|
||
}
|
||
|
||
// KOS账户绑定事件
|
||
type XhsBindKosUserDecrypted struct {
|
||
UserId string `json:"user_id"`
|
||
AuthStatus int `json:"auth_status"` // 2-已生效,4-已取消
|
||
KosNickName string `json:"kos_nick_name"`
|
||
KosUserId string `json:"kos_user_id"`
|
||
KosAvatarImg string `json:"kos_avatar_img"`
|
||
}
|
||
|
||
// ==================== 查询KOS授权绑定列表(发送) ====================
|
||
|
||
type XhsQueryBindUsersReq struct {
|
||
UserId string `json:"user_id" v:"required"`
|
||
PageNum int `json:"page_num" v:"required"`
|
||
PageSize int `json:"page_size" v:"required"`
|
||
}
|
||
|
||
type XhsQueryBindUsersRes struct {
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Success bool `json:"success"`
|
||
Data struct {
|
||
Total int64 `json:"total"`
|
||
KosUserList []struct {
|
||
UserId string `json:"user_id"`
|
||
NickName string `json:"nick_name"`
|
||
AvatarImg string `json:"avatar_img"`
|
||
} `json:"kos_user_list"`
|
||
} `json:"data"`
|
||
}
|
||
|
||
// ==================== 发送消息接口(发送) ====================
|
||
|
||
type XhsSendMessageReq struct {
|
||
UserId string `json:"user_id" v:"required"`
|
||
RequestId string `json:"request_id" v:"required"`
|
||
MessageType string `json:"message_type" v:"required"` // TEXT/IMAGE/VIDEO/CARD/REVOKE
|
||
FromUserId string `json:"from_user_id" v:"required"`
|
||
ToUserId string `json:"to_user_id" v:"required"`
|
||
ThirdAccountId string `json:"third_account_id" v:"required"`
|
||
Timestamp int64 `json:"timestamp" v:"required"`
|
||
Content string `json:"content" v:"required"` // 加密后内容
|
||
}
|
||
|
||
type XhsSendMessageRes struct {
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Success bool `json:"success"`
|
||
Data struct {
|
||
RequestId string `json:"request_id"`
|
||
MessageId string `json:"message_id"`
|
||
} `json:"data"`
|
||
}
|
||
|
||
// 消息内容解密后结构
|
||
type XhsTextContent struct {
|
||
Text string `json:"text"`
|
||
}
|
||
|
||
type XhsImageContent struct {
|
||
Link string `json:"link"`
|
||
Size struct {
|
||
Width int `json:"width"`
|
||
Height int `json:"height"`
|
||
} `json:"size"`
|
||
}
|
||
|
||
type XhsVideoContent struct {
|
||
Duration int64 `json:"duration"`
|
||
VideoSize int64 `json:"video_size"`
|
||
Cover string `json:"cover"`
|
||
Link string `json:"link"`
|
||
Size struct {
|
||
Width int `json:"width"`
|
||
Height int `json:"height"`
|
||
} `json:"size"`
|
||
}
|
||
|
||
// 通用卡片内容(用于switch分支解析)
|
||
type XhsCardContent struct {
|
||
Id string `json:"id"`
|
||
ContentType string `json:"content_type"`
|
||
}
|
||
|
||
type XhsCardNoteContent struct {
|
||
NoteId string `json:"note_id"`
|
||
ContentType string `json:"content_type"` // note
|
||
}
|
||
|
||
type XhsCardPageContent struct {
|
||
PageId string `json:"page_id"`
|
||
ContentType string `json:"content_type"` // common
|
||
}
|
||
|
||
type XhsCardCommentContent struct {
|
||
CommentId string `json:"comment_id"`
|
||
Content string `json:"content"`
|
||
ContentType string `json:"content_type"` // purchaseComments
|
||
}
|
||
|
||
type XhsCardSocialContent struct {
|
||
Id string `json:"id"`
|
||
ContentType string `json:"content_type"` // social_card
|
||
}
|
||
|
||
type XhsCardLeadContent struct {
|
||
Id string `json:"id"`
|
||
ContentType string `json:"content_type"` // lead_card
|
||
}
|
||
|
||
type XhsCardTradeContent struct {
|
||
Id string `json:"id"`
|
||
ContentType string `json:"content_type"` // tradeBusinessCard
|
||
}
|
||
|
||
type XhsRevokeContent struct {
|
||
MessageId string `json:"message_id"`
|
||
}
|
||
|
||
// ==================== 接收消息接口(接收Webhook) ====================
|
||
|
||
type XhsReceiveMessageReq struct {
|
||
MessageId string `json:"message_id" v:"required"`
|
||
MessageType string `json:"message_type" v:"required"` // TEXT/IMAGE/VIDEO/CARD/HINT/REVOKE/SMILES
|
||
MessageSource int `json:"message_source" v:"required"` // 1-C2B用户,2-C2B系统,3-B2C系统
|
||
FromUserId string `json:"from_user_id" v:"required"`
|
||
ToUserId string `json:"to_user_id" v:"required"`
|
||
Timestamp int64 `json:"timestamp" v:"required"`
|
||
Content string `json:"content" v:"required"` // 加密后内容
|
||
UserInfo []XhsReceiveMessageUser `json:"user_info"`
|
||
}
|
||
|
||
type XhsReceiveMessageUser struct {
|
||
UserId string `json:"user_id"`
|
||
Nickname string `json:"nickname"`
|
||
HeaderImage string `json:"header_image"`
|
||
}
|
||
|
||
// 接收消息-卡片内容(笔记)
|
||
type XhsReceiveCardNoteContent struct {
|
||
Title string `json:"title"`
|
||
Cover string `json:"cover"`
|
||
Link string `json:"link"`
|
||
ContentType string `json:"content_type"` // note
|
||
UserInfo struct {
|
||
Nickname string `json:"nickname"`
|
||
HeaderImage string `json:"header_image"`
|
||
} `json:"user_info"`
|
||
}
|
||
|
||
// 接收消息-卡片内容(落地页)
|
||
type XhsReceiveCardPageContent struct {
|
||
Title string `json:"title"`
|
||
Cover string `json:"cover"`
|
||
Link string `json:"link"`
|
||
Desc string `json:"desc"`
|
||
ContentType string `json:"content_type"` // common
|
||
}
|
||
|
||
// 接收消息-卡片内容(名片)
|
||
type XhsReceiveCardSocialContent struct {
|
||
Id string `json:"id"`
|
||
Title string `json:"title"`
|
||
Name string `json:"name"`
|
||
Image string `json:"image"`
|
||
ContentType string `json:"content_type"` // social_card
|
||
}
|
||
|
||
// 接收消息-卡片内容(留资卡)
|
||
type XhsReceiveCardLeadContent struct {
|
||
Id string `json:"id"`
|
||
Title string `json:"title"`
|
||
Name string `json:"name"`
|
||
Image string `json:"image"`
|
||
ContentType string `json:"content_type"` // lead_card
|
||
}
|
||
|
||
// 接收消息-卡片内容(交易卡)
|
||
type XhsReceiveCardTradeContent struct {
|
||
Id string `json:"id"`
|
||
Title string `json:"title"`
|
||
SubTitle string `json:"sub_title"`
|
||
Image string `json:"image"`
|
||
LinkPlatform string `json:"link_platform"` // wx_mini/ctrip/meituan
|
||
ContentType string `json:"content_type"` // tradeBusinessCard
|
||
}
|
||
|
||
// 接收消息-HINT内容
|
||
type XhsReceiveHintContent struct {
|
||
Text string `json:"text"`
|
||
}
|
||
|
||
// ==================== 查询物料接口(发送) ====================
|
||
|
||
// 查询落地页列表
|
||
type XhsQueryPageListReq struct {
|
||
UserId string `json:"user_id" v:"required"`
|
||
PageNum int `json:"page_num" v:"required"`
|
||
PageSize int `json:"page_size" v:"required"`
|
||
}
|
||
|
||
type XhsQueryPageListRes struct {
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Success bool `json:"success"`
|
||
Data struct {
|
||
Total int64 `json:"total"`
|
||
List []struct {
|
||
Title string `json:"title"`
|
||
CreateTime int64 `json:"create_time"`
|
||
PageId string `json:"page_id"`
|
||
PageDesc string `json:"page_desc"`
|
||
PageUrl string `json:"page_url"`
|
||
Cover string `json:"cover"`
|
||
} `json:"list"`
|
||
} `json:"data"`
|
||
}
|
||
|
||
// 查询名片/留资卡/交易卡列表
|
||
type XhsQueryMaterialListReq struct {
|
||
UserId string `json:"user_id" v:"required"`
|
||
PageNum int `json:"page_num" v:"required"`
|
||
PageSize int `json:"page_size" v:"required"`
|
||
Type int `json:"type" v:"required"` // 4-名片 5-留资卡 7-交易卡
|
||
}
|
||
|
||
type XhsQueryMaterialListRes struct {
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Success bool `json:"success"`
|
||
Data struct {
|
||
Total int64 `json:"total"`
|
||
List []struct {
|
||
Id string `json:"id"`
|
||
Name string `json:"name"`
|
||
Title string `json:"title"`
|
||
Image string `json:"image"`
|
||
Ext struct {
|
||
SocialCardExt *struct {
|
||
CardType int `json:"card_type"` // 1-微信、2-钉钉、3-电话、4-企微 5-留资卡
|
||
} `json:"social_card_ext,omitempty"`
|
||
TradeCardExt *struct {
|
||
SubTitle string `json:"sub_title"`
|
||
LinkPlatform string `json:"link_platform"` // ctrip/meituan/wx_mini
|
||
} `json:"trade_card_ext,omitempty"`
|
||
} `json:"ext"`
|
||
} `json:"list"`
|
||
} `json:"data"`
|
||
}
|
||
|
||
// 查询笔记列表
|
||
type XhsQueryNoteListReq struct {
|
||
UserId string `json:"user_id" v:"required"`
|
||
NoteId string `json:"note_id,omitempty"`
|
||
PageNum int `json:"page_num" v:"required"`
|
||
PageSize int `json:"page_size" v:"required"`
|
||
}
|
||
|
||
type XhsQueryNoteListRes struct {
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Success bool `json:"success"`
|
||
Data struct {
|
||
Total int64 `json:"total"`
|
||
List []struct {
|
||
NoteId string `json:"note_id"`
|
||
PublishTime int64 `json:"publish_time"`
|
||
Link string `json:"link"`
|
||
Title string `json:"title"`
|
||
Cover string `json:"cover"`
|
||
UserInfo struct {
|
||
Nickname string `json:"nickname"`
|
||
HeaderImage string `json:"header_image"`
|
||
} `json:"user_info"`
|
||
} `json:"list"`
|
||
} `json:"data"`
|
||
}
|
||
|
||
// 查询意向评论列表
|
||
type XhsQueryCommentListReq struct {
|
||
UserId string `json:"user_id" v:"required"`
|
||
PageNum int `json:"page_num" v:"required"`
|
||
PageSize int `json:"page_size" v:"required"`
|
||
BeginTime string `json:"begin_time,omitempty"`
|
||
EndTime string `json:"end_time,omitempty"`
|
||
}
|
||
|
||
type XhsQueryCommentListRes struct {
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Success bool `json:"success"`
|
||
Data struct {
|
||
Total int64 `json:"total"`
|
||
List []struct {
|
||
NoteId string `json:"note_id"`
|
||
Cover string `json:"cover"`
|
||
NoteTitle string `json:"note_title"`
|
||
NoteAuthorUserId string `json:"note_author_user_id"`
|
||
CommentContent string `json:"comment_content"`
|
||
CommentTime int64 `json:"comment_time"`
|
||
CommentUserName string `json:"comment_user_name"`
|
||
CommentUserId string `json:"comment_user_id"`
|
||
CommentId string `json:"comment_id"`
|
||
UniqId string `json:"uniq_id"`
|
||
ReplyState int `json:"reply_state"`
|
||
ReplyThirdAccountId string `json:"reply_third_account_id"`
|
||
} `json:"list"`
|
||
} `json:"data"`
|
||
}
|
||
|
||
// ==================== 意向评论推送(接收Webhook) ====================
|
||
|
||
type XhsIntentCommentPushReq struct {
|
||
NoteId string `json:"note_id"`
|
||
Cover string `json:"cover"`
|
||
NoteTitle string `json:"note_title"`
|
||
NoteAuthorUserId string `json:"note_author_user_id"`
|
||
CommentContent string `json:"comment_content"`
|
||
CommentTime int64 `json:"comment_time"`
|
||
CommentUserName string `json:"comment_user_name"`
|
||
CommentUserId string `json:"comment_user_id"`
|
||
CommentId string `json:"comment_id"`
|
||
UniqId string `json:"uniq_id"`
|
||
ReplyState int `json:"reply_state"`
|
||
ReplyThirdAccountId string `json:"reply_third_account_id"`
|
||
}
|
||
|
||
// ==================== 留资数据回传(发送) ====================
|
||
|
||
type XhsBackLeadResultReq struct {
|
||
UserId string `json:"user_id" v:"required"`
|
||
RequestId string `json:"request_id" v:"required"`
|
||
BrandUserId string `json:"brand_user_id" v:"required"`
|
||
CUserId string `json:"c_user_id" v:"required"`
|
||
ThirdBackSource string `json:"third_back_source" v:"required"`
|
||
Timestamp int64 `json:"timestamp" v:"required"`
|
||
Content string `json:"content" v:"required"` // 加密后内容
|
||
}
|
||
|
||
type XhsBackLeadResultDecrypted struct {
|
||
PhoneNum string `json:"phone_num"`
|
||
Wechat string `json:"wechat"`
|
||
Remark string `json:"remark"`
|
||
Area string `json:"area"`
|
||
City string `json:"city"`
|
||
CustomerServiceName string `json:"customer_service_name"`
|
||
Time int64 `json:"time"`
|
||
ExtList []struct {
|
||
Key string `json:"key"`
|
||
Name string `json:"name"`
|
||
Value string `json:"value"`
|
||
} `json:"extList"`
|
||
}
|
||
|
||
type XhsBackLeadResultRes struct {
|
||
Code int `json:"code"`
|
||
Msg string `json:"msg"`
|
||
Success bool `json:"success"`
|
||
Data struct {
|
||
RequestId string `json:"request_id"`
|
||
} `json:"data"`
|
||
}
|
||
|
||
// ==================== 留资和广告归因数据推送(接收Webhook) ====================
|
||
|
||
type XhsPushLeadReq struct {
|
||
UserId string `json:"user_id"`
|
||
BrandUserId string `json:"brand_user_id"`
|
||
KosUserId string `json:"kos_user_id"`
|
||
ConvTime string `json:"conv_time"`
|
||
AdvertiserName string `json:"advertiser_name"`
|
||
AdvertiserId string `json:"advertiser_id"`
|
||
CampaignName string `json:"campaign_name"`
|
||
CampaignId string `json:"campaign_id"`
|
||
CreativityName string `json:"creativity_name"`
|
||
CreativityId string `json:"creativity_id"`
|
||
LeadsTag string `json:"leads_tag"`
|
||
Area string `json:"area"`
|
||
PhoneNum string `json:"phone_num"`
|
||
Wechat string `json:"wechat"`
|
||
Remark string `json:"remark"`
|
||
PushType int `json:"push_type"` // 1-进线 2-开口 3-留资 4-留资归因
|
||
WechatCopy int `json:"wechat_copy"`
|
||
LinkId string `json:"link_id"`
|
||
LinkName string `json:"link_name"`
|
||
CustomerChannel string `json:"customer_channel"`
|
||
MsgAppOpen int `json:"msg_app_open"`
|
||
WechatType int `json:"wechat_type"` // 1-文本 2-图片链接
|
||
DecryptUserId string `json:"decrypt_user_id"`
|
||
}
|