package placement

import (
	"testing"

	brandentity "haixun-backend/internal/model/brand/domain/entity"
)

func TestRecommendProductForPostPicksLaundryOverDefaultBodyWash(t *testing.T) {
	products := []brandentity.Product{
		{ID: "body", Label: "無香沐浴乳", MatchTags: []string{"沐浴乳", "無香", "敏感"}},
		{ID: "laundry", Label: "天然洗衣精", MatchTags: []string{"洗衣精", "衣物", "污漬"}},
	}
	post := "最近衣服洗不乾淨，洗衣精有推薦嗎？污漬一直洗不掉"
	got := RecommendProductForPost(products, "洗衣精 推薦", post, "body")
	if got == nil || got.ID != "laundry" {
		id := ""
		if got != nil {
			id = got.ID
		}
		t.Fatalf("expected laundry product, got %q", id)
	}
}

func TestRecommendProductForPostPicksBodyWashForShowerPost(t *testing.T) {
	products := []brandentity.Product{
		{ID: "body", Label: "無香沐浴乳", MatchTags: []string{"沐浴乳", "無香", "敏感"}},
		{ID: "laundry", Label: "天然洗衣精", MatchTags: []string{"洗衣精", "衣物", "污漬"}},
	}
	post := "化療後皮膚很乾，沐浴乳有推薦嗎？想要無香味"
	got := RecommendProductForPost(products, "沐浴乳 推薦", post, "laundry")
	if got == nil || got.ID != "body" {
		id := ""
		if got != nil {
			id = got.ID
		}
		t.Fatalf("expected body wash product, got %q", id)
	}
}
