package handlers import ( "bugulma/backend/internal/domain" "gorm.io/gorm" ) // organizationHandler implements EntityHandler for Organization entities type organizationHandler struct{} func NewOrganizationHandler() domain.EntityHandler[*domain.Organization] { return &organizationHandler{} } func (h *organizationHandler) GetEntityID(entity *domain.Organization) string { return entity.GetEntityID() } func (h *organizationHandler) GetFieldValue(entity *domain.Organization, field string) string { switch field { case "name": return entity.Name case "description": return entity.Description case "sector": return string(entity.Sector) case "sub_type": return string(entity.Subtype) default: return "" } } func (h *organizationHandler) GetLocalizableFields() []string { return []string{"name", "description", "sector", "sub_type"} } func (h *organizationHandler) LoadEntities(db *gorm.DB, options domain.EntityLoadOptions) ([]*domain.Organization, error) { var organizations []*domain.Organization if err := db.Find(&organizations).Error; err != nil { return nil, err } return organizations, nil } func (h *organizationHandler) 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) case "sector": return db.Where("sector = ?", value) case "sub_type": return db.Where("subtype = ?", value) default: return db } } func (h *organizationHandler) GetEntityType() string { return "organization" }