add query param get customer has marketing

This commit is contained in:
giovanni
2026-04-13 14:47:00 +07:00
parent 45e430f01d
commit bca02800d6
3 changed files with 34 additions and 4 deletions
@@ -53,7 +53,28 @@ func (s customerService) GetAll(c *fiber.Ctx, params *validation.Query) ([]entit
customers, total, err := s.Repository.GetAll(c.Context(), offset, params.Limit, func(db *gorm.DB) *gorm.DB {
db = s.withRelations(db)
if params.Search != "" {
return db.Where("name ILIKE ?", "%"+params.Search+"%")
db = db.Where("name ILIKE ?", "%"+params.Search+"%")
if params.HasMarketing != nil && *params.HasMarketing {
db = db.Where(`
EXISTS (
SELECT 1
FROM marketings
WHERE marketings.customer_id = customers.id
AND marketings.deleted_at IS NULL
)
`)
}
return db
}
if params.HasMarketing != nil && *params.HasMarketing {
db = db.Where(`
EXISTS (
SELECT 1
FROM marketings
WHERE marketings.customer_id = customers.id
AND marketings.deleted_at IS NULL
)
`)
}
return db.Order("created_at DESC").Order("updated_at DESC")
})