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), }, } }