package models import ( "log" "os" "airwallex-admin/config" "golang.org/x/crypto/bcrypt" "gorm.io/gorm" ) func InitializeDefaults(db *gorm.DB) { // Set admin password hash if not already set if GetSetting(db, "admin_password_hash") == "" { hash, err := bcrypt.GenerateFromPassword([]byte(config.Cfg.AdminPassword), bcrypt.DefaultCost) if err != nil { log.Fatalf("failed to hash admin password: %v", err) } SetSetting(db, "admin_password_hash", string(hash), false) } // Set default daily card limit if GetSetting(db, "daily_card_limit") == "" { SetSetting(db, "daily_card_limit", "100", false) } // Store Airwallex credentials from environment if not already set envSettings := map[string]string{ "airwallex_client_id": os.Getenv("AIRWALLEX_CLIENT_ID"), "airwallex_api_key": os.Getenv("AIRWALLEX_API_KEY"), "airwallex_base_url": os.Getenv("AIRWALLEX_BASE_URL"), } for key, value := range envSettings { if value != "" && GetSetting(db, key) == "" { SetSetting(db, key, value, key != "airwallex_base_url") } } }