package ocr

import (
	"time"

	"github.com/google/uuid"
	"rmser/internal/domain/catalog"
)

// ProductMatch связывает текст из чека с конкретным товаром в iiko
type ProductMatch struct {
	// RawName - распознанный текст (ключ).
	// Лучше хранить в нижнем регистре и без лишних пробелов.
	RawName string `gorm:"type:varchar(255);primary_key"`

	ProductID uuid.UUID `gorm:"type:uuid;not null;index"`

	// Product - связь для GORM
	Product catalog.Product `gorm:"foreignKey:ProductID"`

	UpdatedAt time.Time
	CreatedAt time.Time
}

type Repository interface {
	// SaveMatch сохраняет или обновляет привязку
	SaveMatch(rawName string, productID uuid.UUID) error

	// FindMatch ищет товар по точному совпадению названия
	FindMatch(rawName string) (*uuid.UUID, error)
}
