package taskcompat

import (
	"testing"

	"github.com/stretchr/testify/require"
)

func TestEffectiveAssigneeRefSQLKeepsFrozenRollingPrecedence(t *testing.T) {
	require.Equal(t,
		"COALESCE(NULLIF(task.claimed_by_ref, ''), task.claimed_by_member_id, NULLIF(task.current_agent_ref, ''), NULLIF(task.suggested_assignee_ref, ''), NULLIF(task.reviewer_ref, ''))",
		EffectiveAssigneeRefSQL("task"),
	)
}

func TestEffectiveAssignedAtSQLUsesLegacyMutationTimestamps(t *testing.T) {
	sql := EffectiveAssignedAtSQL("task")
	require.Contains(t, sql, "WHEN COALESCE(NULLIF(task.claimed_by_ref, ''), task.claimed_by_member_id) IS NOT NULL")
	require.Contains(t, sql, "COALESCE(task.claimed_at, task.assigned_at, task.updated_at, task.created_at)")
	require.Contains(t, sql, "WHEN COALESCE(NULLIF(task.claimed_by_ref, ''), task.claimed_by_member_id, NULLIF(task.current_agent_ref, ''), NULLIF(task.suggested_assignee_ref, ''), NULLIF(task.reviewer_ref, '')) <> COALESCE(task.assignee_member_id, '')")
	require.Contains(t, sql, "COALESCE(task.updated_at, task.assigned_at, task.created_at)")
}
