package ai

import (
	"context"
	"strings"

	"github.com/jackc/pgx/v5"
	"github.com/jackc/pgx/v5/pgxpool"
)

// ResolveExternalIDByEmail maps an Ultimail account email to users.external_id (Authentik sub).
func ResolveExternalIDByEmail(ctx context.Context, db *pgxpool.Pool, email string) (string, error) {
	email = strings.TrimSpace(email)
	if db == nil || email == "" {
		return "", nil
	}
	var externalID string
	err := db.QueryRow(ctx, `
		SELECT external_id FROM users
		WHERE lower(email) = lower($1) AND status != 'disabled'
		LIMIT 1
	`, email).Scan(&externalID)
	if err != nil {
		if err == pgx.ErrNoRows {
			return "", nil
		}
		return "", err
	}
	return strings.TrimSpace(externalID), nil
}
