thread-master/backend/internal/logic/threads_account/content_formula_mapper.go

58 lines
1.8 KiB
Go

package threads_account
import (
cfentity "haixun-backend/internal/model/content_formula/domain/entity"
cfdom "haixun-backend/internal/model/content_formula/domain/usecase"
"haixun-backend/internal/types"
)
func toContentFormulaData(item cfdom.FormulaSummary) types.ContentFormulaData {
var metrics *types.ContentFormulaSourceMetricsData
if item.SourceMetrics != nil {
metrics = &types.ContentFormulaSourceMetricsData{
LikeCount: item.SourceMetrics.LikeCount,
ReplyCount: item.SourceMetrics.ReplyCount,
Views: item.SourceMetrics.Views,
RepostCount: item.SourceMetrics.RepostCount,
QuoteCount: item.SourceMetrics.QuoteCount,
Shares: item.SourceMetrics.Shares,
}
}
return types.ContentFormulaData{
ID: item.ID,
AccountID: item.AccountID,
Label: item.Label,
SourceType: item.SourceType,
SourceRef: item.SourceRef,
SourcePostText: item.SourcePostText,
SourceAuthor: item.SourceAuthor,
SourcePermalink: item.SourcePermalink,
SourceMetrics: metrics,
Summary: item.Summary,
Wins: item.Wins,
Improvements: item.Improvements,
Formula: item.Formula,
PostTemplate: item.PostTemplate,
HookPattern: item.HookPattern,
Structure: item.Structure,
ReplicationTips: item.ReplicationTips,
Avoid: item.Avoid,
Tags: item.Tags,
CreateAt: item.CreateAt,
UpdateAt: item.UpdateAt,
}
}
func toSourceMetrics(data *types.ContentFormulaSourceMetricsData) *cfentity.SourceMetrics {
if data == nil {
return nil
}
return &cfentity.SourceMetrics{
LikeCount: data.LikeCount,
ReplyCount: data.ReplyCount,
Views: data.Views,
RepostCount: data.RepostCount,
QuoteCount: data.QuoteCount,
Shares: data.Shares,
}
}