Files
customer-server/model/dto/xiaohongshu_dto.go
2026-03-14 10:02:49 +08:00

428 lines
14 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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"`
}