hybrid pagination

This commit is contained in:
Mazyar
2026-05-17 17:21:36 +03:30
parent 42d0a47226
commit 6dac5b482a
39 changed files with 696 additions and 386 deletions
+5 -7
View File
@@ -273,29 +273,27 @@ func (s *inquiryService) Search(ctx context.Context, form *SearchInquiriesForm,
"offset": pagination.Offset,
})
// Get inquiries
inquiries, total, err := s.repository.Search(ctx, form, pagination)
page, err := s.repository.Search(ctx, form, pagination)
if err != nil {
s.logger.Error("Failed to search inquiries", map[string]interface{}{
"error": err.Error(),
})
return nil, errors.New("failed to search inquiries")
return nil, err
}
// Convert to responses
var inquiryResponses []*InquiryResponse
for _, inquiry := range inquiries {
for _, inquiry := range page.Items {
inquiryResponses = append(inquiryResponses, inquiry.ToResponse())
}
s.logger.Info("Inquiries search completed successfully", map[string]interface{}{
"total_found": total,
"total_found": page.TotalCount,
"returned": len(inquiryResponses),
})
return &InquiryListResponse{
Inquiries: inquiryResponses,
Meta: pagination.Response(total),
Meta: pagination.ListMeta(page.TotalCount, page.NextCursor, page.HasMore, page.PageOffset),
}, nil
}