package repositories import ( "errors" "github.com/muety/wakapi/config" "github.com/muety/wakapi/models" "gorm.io/gorm" ) type LanguageMappingRepository struct { config *config.Config db *gorm.DB } func NewLanguageMappingRepository(db *gorm.DB) *LanguageMappingRepository { return &LanguageMappingRepository{config: config.Get(), db: db} } func (r *LanguageMappingRepository) GetAll() ([]*models.LanguageMapping, error) { var mappings []*models.LanguageMapping if err := r.db.Find(&mappings).Error; err != nil { return nil, err } return mappings, nil } func (r *LanguageMappingRepository) GetById(id uint) (*models.LanguageMapping, error) { mapping := &models.LanguageMapping{} if err := r.db.Where(&models.LanguageMapping{ID: id}).First(mapping).Error; err != nil { return mapping, err } return mapping, nil } func (r *LanguageMappingRepository) GetByUser(userId string) ([]*models.LanguageMapping, error) { var mappings []*models.LanguageMapping if userId == "" { return mappings, nil } if err := r.db. Where(&models.LanguageMapping{UserID: userId}). Find(&mappings).Error; err != nil { return mappings, err } return mappings, nil } func (r *LanguageMappingRepository) Insert(mapping *models.LanguageMapping) (*models.LanguageMapping, error) { if !mapping.IsValid() { return nil, errors.New("invalid mapping") } result := r.db.Create(mapping) if err := result.Error; err != nil { return nil, err } return mapping, nil } func (r *LanguageMappingRepository) Delete(id uint) error { return r.db. Where("id = ?", id). Delete(models.LanguageMapping{}).Error }