ai_scheduler/internal/data/mongo_model/advicer_talk_skill.go

138 lines
5.6 KiB
Go
Raw 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 mongo_model
import (
"time"
)
type AdvicerTalkSkillMongo struct {
ProjectId int32 `json:"projectId" bson:"projectId"`
AdvicerId int32 `json:"advicerId" bson:"advicerId"`
Desc string `json:"desc" bson:"desc"`
NeedsMining NeedsMining `json:"needsMining" bson:"needsMining"`
PainPointResponse PainPointResponse `json:"painPointResponse" bson:"painPointResponse"`
ValueBuilding ValueBuilding `json:"valueBuilding" bson:"valueBuilding"`
ClosingTechniques ClosingTechniques `json:"closingTechniques" bson:"closingTechniques"`
CommunicationRhythm CommunicationRhythm `json:"communicationRhythm" bson:"communicationRhythm"`
LastUpdateTime time.Time `json:"lastUpdateTime" bson:"lastUpdateTime"`
}
func NewAdvicerTalkSkillMongo() *AdvicerTalkSkillMongo {
return &AdvicerTalkSkillMongo{}
}
func (a *AdvicerTalkSkillMongo) MongoTableName() string {
return "advicer_talk_skill"
}
type AdvicerTalkSkillMongoEntity struct {
NeedsMining NeedsMining `json:"needsMining"`
PainPointResponse PainPointResponse `json:"painPointResponse"`
ValueBuilding ValueBuilding `json:"valueBuilding"`
ClosingTechniques ClosingTechniques `json:"closingTechniques"`
CommunicationRhythm CommunicationRhythm `json:"communicationRhythm"`
}
func (a *AdvicerTalkSkillMongo) Entity() *AdvicerTalkSkillMongoEntity {
return &AdvicerTalkSkillMongoEntity{
NeedsMining: a.NeedsMining,
PainPointResponse: a.PainPointResponse,
ValueBuilding: a.ValueBuilding,
ClosingTechniques: a.ClosingTechniques,
CommunicationRhythm: a.CommunicationRhythm,
}
}
// NeedsMining 需求挖掘话术
type NeedsMining map[string][]string
func (e *NeedsMining) Example() string {
return `{"预算需求":["你们总价想控制在多少以内?","是考虑按揭还是一次性?","月供能接受多少范围?"],"居住需求":["几个人住?有老人小孩吗?","主要是自住还是考虑投资?","现在住哪里?想改善哪些方面?"],"通勤需求":["在哪个位置上班?","主要开车还是坐地铁?","对地铁距离有要求吗?"]}`
}
func (e *NeedsMining) Copy() AdviceData {
return new(NeedsMining)
}
func (e *NeedsMining) Role() AdviceRole {
return RoleSkill
}
func (e *NeedsMining) Desc() string {
return "需求挖掘话术"
}
// PainPointResponse 痛点应对策略
type PainPointResponse map[string]map[string]string
func (e *PainPointResponse) Example() string {
return `{"地块太小":{"承认事实":"14亩确实不大","普遍现象":"2.5环内都是小地块万景13亩中铁建8.8亩","转化优势":"但人少安静,楼间距反而更开阔","对比竞品":"339的邦泰才11亩人家上千万豪宅"},"物业费高":{"理解感受":"我懂你,我们也觉得有点贵","价值分析":"但6块里3块是增值服务保洁、送外卖","价格补贴":"前三年补贴到5块跟其他盘差不多"}}`
}
func (e *PainPointResponse) Copy() AdviceData {
return new(PainPointResponse)
}
func (e *PainPointResponse) Role() AdviceRole {
return RoleSkill
}
func (e *PainPointResponse) Desc() string {
return "痛点应对策略"
}
// ValueBuilding 价值塑造技巧
type ValueBuilding map[string][]string
func (e *ValueBuilding) Example() string {
return `{"地段价值塑造":["买房最重要的是地段、地段、还是地段","核心地段的核心资产才保值增值","2.5环内的地卖一块少一块,不可再生"],"产品价值塑造":["我们是用改善的价格,买豪宅的标准","很多细节都是3000万豪宅才有的配置","外立面成本比竞品高30%,但单价差不多"]}`
}
func (e *ValueBuilding) Copy() AdviceData {
return new(ValueBuilding)
}
func (e *ValueBuilding) Role() AdviceRole {
return RoleSkill
}
func (e *ValueBuilding) Desc() string {
return "价值塑造技巧"
}
// ClosingTechniques 促单话术
type ClosingTechniques map[string]map[string][]string
func (e *ClosingTechniques) Example() string {
return `{"紧迫感营造":{"时间紧迫":["今天是月底最后一天,领导有压力价格可谈","我们刚刚开盘,还有额外优惠","月底冲业绩,价格最有弹性"],"房源稀缺":["118只剩20多套了好楼层不多","这栋楼就60户卖一套少一套","特价房只有这几套,今天不定可能就没了"]},"优惠策略":{"价格优惠":["今天定的话,我可以跟领导申请额外折扣","买车位的话,总价多给两个点优惠","一次性付款再优惠一个点"],"附加价值":["送一年物业费","送品牌家电礼包","优先选车位"]},"决策推动":{"小步推进":["要不先交个小定保留房源?","可以先排个号,有优惠优先通知你","今天不定的话,我帮你留意好楼层"]}}`
}
func (e *ClosingTechniques) Copy() AdviceData {
return new(ClosingTechniques)
}
func (e *ClosingTechniques) Role() AdviceRole {
return RoleSkill
}
func (e *ClosingTechniques) Desc() string {
return "促单话术"
}
// CommunicationRhythm 沟通节奏控制
type CommunicationRhythm map[string]map[string]string
func (e *CommunicationRhythm) Example() string {
return `{"开场阶段":{"时间占比":"5%","目标":"建立关系,了解需求","关键动作":"亲切称呼,简单寒暄,确认看房重点"},"沙盘讲解":{"时间占比":"30%","目标":"建立价值认知","关键动作":"板块价值→周边配套→项目亮点→开发商介绍"}}`
}
func (e *CommunicationRhythm) Copy() AdviceData {
return new(CommunicationRhythm)
}
func (e *CommunicationRhythm) Role() AdviceRole {
return RoleSkill
}
func (e *CommunicationRhythm) Desc() string {
return "沟通节奏控制"
}