package sql import ( "context" "tercul/internal/domain" "gorm.io/gorm" ) type localizationRepository struct { db *gorm.DB } func NewLocalizationRepository(db *gorm.DB) domain.LocalizationRepository { return &localizationRepository{db: db} } func (r *localizationRepository) GetTranslation(ctx context.Context, key string, language string) (string, error) { var localization domain.Localization err := r.db.WithContext(ctx).Where("key = ? AND language = ?", key, language).First(&localization).Error if err != nil { return "", err } return localization.Value, nil } func (r *localizationRepository) GetTranslations(ctx context.Context, keys []string, language string) (map[string]string, error) { var localizations []domain.Localization err := r.db.WithContext(ctx).Where("key IN ? AND language = ?", keys, language).Find(&localizations).Error if err != nil { return nil, err } result := make(map[string]string) for _, l := range localizations { result[l.Key] = l.Value } return result, nil }