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 if err := r.db.Where("username = ?", username).First(&user).Error; err != nil { return nil, err } return &user, nil } 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 uint) (*User, error) { var user User if err := r.db.First(&user, id).Error; err != nil { return nil, err } return &user, nil } func (r *Repository) UpdateRole(id uint, role Role) error { return r.db.Model(&User{}).Where("id = ?", id).Update("role", role).Error } func (r *Repository) Delete(id uint) error { return r.db.Delete(&User{}, id).Error } func (r *Repository) FindBySsafyID(ssafyID string) (*User, error) { var user User if err := r.db.Where("ssafy_id = ?", ssafyID).First(&user).Error; err != nil { return nil, err } return &user, nil }