fix(BE): add missing product json in transfer get all & support flag param filter in product warehouses

This commit is contained in:
aguhh18
2025-10-17 12:04:19 +07:00
parent c9b4b3008e
commit 79700420d4
5 changed files with 66 additions and 24 deletions
@@ -34,7 +34,11 @@ func NewProductWarehouseService(repo repository.ProductWarehouseRepository, vali
}
func (s productWarehouseService) withRelations(db *gorm.DB) *gorm.DB {
return db.Preload("Product.Flags").Preload("Product").Preload("Warehouse").Preload("CreatedUser")
return db.
Preload("Product.Flags").
Preload("Product").
Preload("Warehouse").
Preload("CreatedUser")
}
func (s productWarehouseService) GetAll(c *fiber.Ctx, params *validation.Query) ([]entity.ProductWarehouse, int64, error) {
@@ -55,6 +59,12 @@ func (s productWarehouseService) GetAll(c *fiber.Ctx, params *validation.Query)
db = db.Where("warehouse_id = ?", params.WarehouseId)
}
if params.Flag != "" {
db = db.Joins("JOIN products ON products.id = product_warehouses.product_id")
db = db.Joins("JOIN flags ON flags.flagable_id = products.id AND flags.flagable_type = ?", "products")
db = db.Where("flags.name = ?", params.Flag)
}
return db.Order("created_at DESC").Order("updated_at DESC")
})