49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
|
|
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{
|
||
|
|
ID: item.ID,
|
||
|
|
DisplayName: item.DisplayName,
|
||
|
|
Persona: item.Persona,
|
||
|
|
Brief: item.Brief,
|
||
|
|
ProductBrief: item.ProductBrief,
|
||
|
|
TargetAudience: item.TargetAudience,
|
||
|
|
Goals: item.Goals,
|
||
|
|
StyleProfile: item.StyleProfile,
|
||
|
|
StyleBenchmark: item.StyleBenchmark,
|
||
|
|
CreateAt: item.CreateAt,
|
||
|
|
UpdateAt: item.UpdateAt,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
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,
|
||
|
|
Brief: req.Brief,
|
||
|
|
ProductBrief: req.ProductBrief,
|
||
|
|
TargetAudience: req.TargetAudience,
|
||
|
|
Goals: req.Goals,
|
||
|
|
StyleProfile: req.StyleProfile,
|
||
|
|
StyleBenchmark: req.StyleBenchmark,
|
||
|
|
}
|
||
|
|
}
|