98 lines
4.2 KiB
Go
98 lines
4.2 KiB
Go
package mongo_model
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
type AdvicerClientMongo struct {
|
||
ProjectId int32 `json:"projectId" bson:"projectId"`
|
||
AdvicerId int32 `json:"advicerId" bson:"advicerId"`
|
||
PersonalInfo PersonalInfo `json:"personalInfo" bson:"personalInfo"`
|
||
PurchasePurpose PurchasePurpose `json:"purchasePurpose" bson:"purchasePurpose"`
|
||
CoreDemands CoreDemands `json:"coreDemands" bson:"coreDemands"`
|
||
Concerns []string `json:"concerns" bson:"concerns"`
|
||
DecisionProfile []string `json:"decisionProfile" bson:"decisionProfile"`
|
||
LastUpdateTime time.Time `json:"lastUpdateTime" bson:"lastUpdateTime"`
|
||
}
|
||
|
||
func NewAdvicerClientMongo() *AdvicerClientMongo {
|
||
return &AdvicerClientMongo{}
|
||
}
|
||
|
||
func (a *AdvicerClientMongo) MongoTableName() string {
|
||
return "advicer_client"
|
||
}
|
||
|
||
type AdvicerClientMongoEntity struct {
|
||
PersonalInfo PersonalInfo `json:"personalInfo"`
|
||
PurchasePurpose PurchasePurpose `json:"purchasePurpose"`
|
||
CoreDemands CoreDemands `json:"coreDemands"`
|
||
Concerns []string `json:"concerns"`
|
||
DecisionProfile []string `json:"decisionProfile"`
|
||
}
|
||
|
||
func (a *AdvicerClientMongo) Entity() *AdvicerClientMongoEntity {
|
||
return &AdvicerClientMongoEntity{
|
||
PersonalInfo: a.PersonalInfo,
|
||
PurchasePurpose: a.PurchasePurpose,
|
||
CoreDemands: a.CoreDemands,
|
||
Concerns: a.Concerns,
|
||
DecisionProfile: a.DecisionProfile,
|
||
}
|
||
}
|
||
|
||
// Customer 客户信息
|
||
type Customer []ClientInfo
|
||
type ClientInfo struct {
|
||
// 个人信息
|
||
PersonalInfo PersonalInfo `json:"personalInfo"`
|
||
|
||
// 购房目的
|
||
PurchasePurpose PurchasePurpose `json:"purchasePurpose"`
|
||
|
||
// 核心需求
|
||
CoreDemands CoreDemands `json:"coreDemands"`
|
||
|
||
// 关注点与顾虑
|
||
Concerns []string `json:"concerns"`
|
||
|
||
// 决策建议
|
||
DecisionProfile []string `json:"decisionProfile"`
|
||
}
|
||
|
||
type PersonalInfo struct {
|
||
Name string `json:"name"` // 姓氏
|
||
Gender string `json:"gender"` // 性别
|
||
Location string `json:"location"` // 来源地/当前居住地
|
||
IsFirstHome bool `json:"isFirstHome"` // 是否首套房
|
||
FamilyOrganize string `json:"familyOrganize"` // 家庭人数
|
||
}
|
||
|
||
type PurchasePurpose struct {
|
||
PrimaryPurpose string `json:"primaryPurpose"` // 主要目的
|
||
SecondaryPurpose string `json:"secondaryPurpose"` // 次要目的
|
||
DecisionMakers string `json:"decisionMakers"` // 决策人
|
||
}
|
||
|
||
type CoreDemands struct {
|
||
TotalBudget string `json:"totalBudget"` // 预算范围
|
||
PreferredLayout string `json:"preferredLayout"` // 偏好户型
|
||
CoreAppeal string `json:"coreAppeal"` // 核心述求
|
||
}
|
||
|
||
func (e *Customer) Example() string {
|
||
return `[{"personalInfo":{"name":"唐","gender":"男","location":"成都北门","isFirstHome":true,"familyOrganize":"夫妻"},"purchasePurpose":{"primaryPurpose":"首次置业,解决自住","secondaryPurpose":"资产保值,未来可出租","decisionMakers":"夫妻双方"},"coreDemands":{"totalBudget":"350-400"","preferredLayout":"118㎡四房三卫双套房","coreAppeal":"在有限预算内满足家庭居住功能,确保房产保值"},"concerns":["总价超预算风险","板块保值能力"],"decisionProfile":["预算导向,严格控制总价","重点关注户型功能性和实用性"]},{"personalInfo":{"name":"冯女士","gender":"女","location":"","isFirstHome":false,"familyOrganize":"夫妻+1孩+父母同住"},"purchasePurpose":{"primaryPurpose":"改善居住条件","secondaryPurpose":"子女教育质量提升","decisionMakers":"夫妻双方需家庭共同商议]},"coreDemands":{"totalBudget":"400-500","preferredLayout":"118㎡四房三卫(非全景户型)","coreAppeal":"安静舒适、学区有保障的改善型住房"},"concerns":["临路噪音影响老人休息","学区质量和稳定性","社区小,绿化空间有限","得房率是否足够","二八板块学区对比"],"decisionProfile":["对噪音敏感,需要安静环境","重视教育资源配置","关注社区品质和舒适度","需要详细对比不同板块学区优势"]}]`
|
||
}
|
||
|
||
func (e *Customer) Copy() AdviceData {
|
||
return new(Customer)
|
||
}
|
||
|
||
func (e *Customer) Role() AdviceRole {
|
||
return RoleClient
|
||
}
|
||
|
||
func (e *Customer) Desc() string {
|
||
return "客户信息"
|
||
}
|