package profile import ( "github.com/omnex/control-plane/api/internal/auth" "gorm.io/gorm" ) // GormStore : Store adossé à PostgreSQL via GORM. type GormStore struct { db *gorm.DB } func NewGormStore(db *gorm.DB) *GormStore { return &GormStore{db: db} } type Store interface { UpdateUsername(id, newUsername string) (auth.User, error) UpdatePassword(id, passwordHahs string) (auth.User, error) GetTelegram(id string) (auth.User, error) SetTelegram(id, telegram string) (auth.User, error) } func (s *GormStore) UpdateUsername(id, newUsername string) (auth.User, error) { result := s.db.Model(&auth.User{}). Where("id = ?", id). Update("username", newUsername) if result.Error != nil { return auth.User{}, result.Error } var user auth.User if err := s.db.First(&user, "id = ?", id).Error; err != nil { return auth.User{}, err } return user, nil } func (s *GormStore) GetTelegram(id string) (auth.User, error) { var user auth.User if err := s.db.First(&user, "id = ?", id).Error; err != nil { return auth.User{}, err } return user, nil } func (s *GormStore) SetTelegram(id, telegram string) (auth.User, error) { result := s.db.Model(&auth.User{}).Where("id = ?", id).Update("telegram", telegram) if result.Error != nil { return auth.User{}, result.Error } var user auth.User if err := s.db.First(&user, "id = ?", id).Error; err != nil { return auth.User{}, err } return user, nil }