package auth import "gorm.io/gorm" type Repository struct { db *gorm.DB } func NewRepository(db *gorm.DB) *Repository { return &Repository{db: db} } func (r *Repository) FindByUsername(username string) (*User, error) { var user User err := r.db.Where("username = ?", username).First(&user).Error return &user, err } func (r *Repository) Create(user *User) error { return r.db.Create(user).Error } func (r *Repository) FindAll() ([]User, error) { var users []User err := r.db.Order("created_at asc").Find(&users).Error return users, err } func (r *Repository) FindByID(id string) (*User, error) { var user User err := r.db.First(&user, id).Error return &user, err } func (r *Repository) UpdateRole(id string, role Role) error { return r.db.Model(&User{}).Where("id = ?", id).Update("role", role).Error } func (r *Repository) Delete(id string) error { return r.db.Delete(&User{}, id).Error }