This commit is contained in:
2026-05-12 01:13:01 +02:00
commit bf304e17c9
46 changed files with 4358 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
package cart
import (
"context"
"fmt"
"gorm.io/gorm"
)
type Summary struct {
ID int64
TotalItems int64
}
type Service struct {
db *gorm.DB
prefix string
}
func NewService(db *gorm.DB, prefix string) *Service {
return &Service{db: db, prefix: prefix}
}
func (s *Service) SummaryByID(ctx context.Context, cartID int64) (*Summary, error) {
var summary Summary
query := fmt.Sprintf("SELECT id_cart AS id, COALESCE(SUM(quantity), 0) AS total_items FROM %scart_product WHERE id_cart = ? GROUP BY id_cart", s.prefix)
result := s.db.WithContext(ctx).Raw(query, cartID).Scan(&summary)
if result.Error != nil {
return nil, result.Error
}
if result.RowsAffected == 0 {
return &Summary{ID: cartID}, nil
}
return &summary, nil
}