package services

import (
	"bssapp-backend/models"
	"strings"

	"golang.org/x/crypto/bcrypt"
)

// CheckPasswordWithLegacy
// - SADECE doğrulama yapar
// - DB write YAPMAZ
// - Migration kararını caller verir
func CheckPasswordWithLegacy(user *models.User, plain string) bool {
	if user == nil {
		return false
	}

	plain = strings.TrimSpace(plain)
	if plain == "" {
		return false
	}

	stored := strings.TrimSpace(user.Upass)
	if stored == "" {
		return false
	}

	// 1️⃣ bcrypt hash mi?
	if isBcryptHash(stored) {
		return bcrypt.CompareHashAndPassword([]byte(stored), []byte(plain)) == nil
	}

	// 2️⃣ TAM LEGACY — düz metin (eski kayıtlar)
	return stored == plain
}

func isBcryptHash(s string) bool {
	return strings.HasPrefix(s, "$2a$") ||
		strings.HasPrefix(s, "$2b$") ||
		strings.HasPrefix(s, "$2y$")
}
