package handlers import ( "bugulma/backend/internal/domain" "gorm.io/gorm" ) // timelineItemHandler implements EntityHandler for TimelineItem entities type timelineItemHandler struct{} func NewTimelineItemHandler() domain.EntityHandler[*domain.TimelineItem] { return &timelineItemHandler{} } func (h *timelineItemHandler) GetEntityID(entity *domain.TimelineItem) string { return entity.GetEntityID() } func (h *timelineItemHandler) GetFieldValue(entity *domain.TimelineItem, field string) string { switch field { case "title": return entity.Title case "content": return entity.Content default: return "" } } func (h *timelineItemHandler) GetLocalizableFields() []string { return []string{"title", "content"} } func (h *timelineItemHandler) LoadEntities(db *gorm.DB, options domain.EntityLoadOptions) ([]*domain.TimelineItem, error) { var items []*domain.TimelineItem if err := db.Order(`"order" ASC`).Find(&items).Error; err != nil { return nil, err } return items, nil } func (h *timelineItemHandler) BuildFieldQuery(db *gorm.DB, field, value string) *gorm.DB { switch field { case "title": return db.Where("title = ?", value) case "content": return db.Where("content = ?", value) default: return db } } func (h *timelineItemHandler) GetEntityType() string { return "timeline_item" }