package utils import ( "strconv" "github.com/google/uuid" "golang.org/x/crypto/bcrypt" ) func HashPassword(password string) (string, error) { bytes, err := bcrypt.GenerateFromPassword([]byte(password), 14) return string(bytes), err } func CheckPasswordHash(password, hash string) bool { err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password)) return err == nil } func StringToUint(s string) uint { id, err := strconv.ParseUint(s, 10, 64) if err != nil { return 0 } return uint(id) } func ParseInt(s string) int { i, err := strconv.Atoi(s) if err != nil { return 0 } return i } func ParseNullableUUID(s *string) *uuid.UUID { if s == nil || *s == "" { return nil } id := ParseUUID(*s) return &id } func ParseUUID(s string) uuid.UUID { id, err := uuid.Parse(s) if err != nil { return uuid.Nil } return id }