2026-06-23 16:55:10 +00:00
|
|
|
package persona
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
domusecase "haixun-backend/internal/model/persona/domain/usecase"
|
|
|
|
|
"haixun-backend/internal/types"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func toPersonaData(item domusecase.PersonaSummary) types.PersonaData {
|
|
|
|
|
return types.PersonaData{
|
2026-06-24 10:02:42 +00:00
|
|
|
ID: item.ID,
|
|
|
|
|
DisplayName: item.DisplayName,
|
|
|
|
|
Persona: item.Persona,
|
|
|
|
|
Brief: item.Brief,
|
|
|
|
|
StyleProfile: item.StyleProfile,
|
|
|
|
|
StyleBenchmark: item.StyleBenchmark,
|
|
|
|
|
SeedQuery: item.SeedQuery,
|
|
|
|
|
CopyResearchMap: toCopyResearchMapData(item.CopyResearchMap),
|
|
|
|
|
CreateAt: item.CreateAt,
|
|
|
|
|
UpdateAt: item.UpdateAt,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func toCopyResearchMapData(item domusecase.CopyResearchMapSummary) types.CopyResearchMapData {
|
|
|
|
|
return types.CopyResearchMapData{
|
|
|
|
|
AudienceSummary: item.AudienceSummary,
|
|
|
|
|
ContentGoal: item.ContentGoal,
|
|
|
|
|
Questions: item.Questions,
|
|
|
|
|
Pillars: item.Pillars,
|
|
|
|
|
Exclusions: item.Exclusions,
|
|
|
|
|
SuggestedTags: item.SuggestedTags,
|
|
|
|
|
BenchmarkNotes: item.BenchmarkNotes,
|
2026-06-23 16:55:10 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func toListData(result *domusecase.ListResult) *types.ListPersonasData {
|
|
|
|
|
if result == nil {
|
|
|
|
|
return &types.ListPersonasData{List: []types.PersonaData{}}
|
|
|
|
|
}
|
|
|
|
|
list := make([]types.PersonaData, 0, len(result.List))
|
|
|
|
|
for _, item := range result.List {
|
|
|
|
|
list = append(list, toPersonaData(item))
|
|
|
|
|
}
|
|
|
|
|
return &types.ListPersonasData{List: list}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func toPersonaPatch(req *types.UpdatePersonaReq) domusecase.PersonaPatch {
|
|
|
|
|
if req == nil {
|
|
|
|
|
return domusecase.PersonaPatch{}
|
|
|
|
|
}
|
|
|
|
|
return domusecase.PersonaPatch{
|
|
|
|
|
DisplayName: req.DisplayName,
|
|
|
|
|
Persona: req.Persona,
|
|
|
|
|
StyleProfile: req.StyleProfile,
|
|
|
|
|
StyleBenchmark: req.StyleBenchmark,
|
|
|
|
|
}
|
2026-06-24 10:02:42 +00:00
|
|
|
}
|