package testfixture

import (
	"context"
	"testing"
	"time"

	"github.com/stretchr/testify/require"

	"github.com/tidbcloud/AgentTeam/internal/coredb"
)

func SeedWorkspaceOrganization(t testing.TB, ctx context.Context, db coredb.QueryExecer, workspaceID string, now time.Time) string {
	t.Helper()

	ownerUserID := "usr_owner_" + workspaceID
	organizationID := "org_" + workspaceID
	_, err := db.Exec(ctx, `
INSERT INTO users (id, email, name, display_name, avatar_url, is_admin, password_hash, email_verified_at, created_at, updated_at)
VALUES ($1, $2, $1, $1, '', FALSE, 'hash', $3, $3, $3)
ON DUPLICATE KEY UPDATE updated_at = VALUES(updated_at)
`, ownerUserID, ownerUserID+"@example.com", now)
	require.NoError(t, err)
	_, err = db.Exec(ctx, `
INSERT INTO organizations (id, slug, name, created_by_user_id, created_at, updated_at)
VALUES ($1, $2, $2, $3, $4, $4)
ON DUPLICATE KEY UPDATE updated_at = VALUES(updated_at)
`, organizationID, workspaceID, ownerUserID, now)
	require.NoError(t, err)
	return organizationID
}
