package handlers import ( "bugulma/backend/internal/domain" "gorm.io/gorm" ) // productHandler implements EntityHandler for Product entities type productHandler struct{} func NewProductHandler() domain.EntityHandler[*domain.Product] { return &productHandler{} } func (h *productHandler) GetEntityID(entity *domain.Product) string { return entity.ID } func (h *productHandler) GetFieldValue(entity *domain.Product, field string) string { switch field { case "name": return entity.Name case "description": return entity.Description default: return "" } } func (h *productHandler) GetLocalizableFields() []string { return []string{"name", "description"} } func (h *productHandler) LoadEntities(db *gorm.DB, options domain.EntityLoadOptions) ([]*domain.Product, error) { var products []*domain.Product if err := db.Find(&products).Error; err != nil { return nil, err } return products, nil } func (h *productHandler) BuildFieldQuery(db *gorm.DB, field, value string) *gorm.DB { switch field { case "name": return db.Where("name = ?", value) case "description": return db.Where("description = ?", value) default: return db } } func (h *productHandler) GetEntityType() string { return "product" }