thread-master/backend/internal/logic/crm/mapper.go

49 lines
1.3 KiB
Go
Raw Normal View History

package crm
import (
crmusecase "haixun-backend/internal/model/crm_contact/domain/usecase"
"haixun-backend/internal/types"
)
func toCrmContactData(item *crmusecase.CRMContactSummary) *types.CrmContactData {
if item == nil {
return nil
}
return &types.CrmContactData{
ID: item.ID,
BrandID: item.BrandID,
AuthorID: item.AuthorID,
AuthorName: item.AuthorName,
AuthorAvatar: item.AuthorAvatar,
AuthorFollowers: item.AuthorFollowers,
ScanPostID: item.ScanPostID,
Notes: item.Notes,
Tags: item.Tags,
Status: item.Status,
OutreachCount: item.OutreachCount,
LastContactedAt: item.LastContactedAt,
CreateAt: item.CreateAt,
UpdateAt: item.UpdateAt,
}
}
func toCrmContactListData(items []crmusecase.CRMContactSummary, total, page, pageSize int) *types.CrmContactListData {
totalPages := 0
if total > 0 {
totalPages = (total + pageSize - 1) / pageSize
}
data := make([]types.CrmContactData, 0, len(items))
for _, item := range items {
data = append(data, *toCrmContactData(&item))
}
return &types.CrmContactListData{
List: data,
Pagination: types.PaginationData{
Total: int64(total),
Page: int64(page),
PageSize: int64(pageSize),
TotalPages: int64(totalPages),
},
}
}