package domain

import (
	"context"

	"lune/talentscale/internal/features/psikotest"

	"github.com/google/uuid"
)

type ResultServiceUsecase interface {
	CalculateAndSave(ctx context.Context, sessionID uuid.UUID, candidateID uuid.UUID, testTypeID uuid.UUID) (float64, error)
}

type ResultServiceRepository interface {
	GetTestTypeCode(ctx context.Context, testTypeID uuid.UUID) (string, error)
	GetQuestionsWithItems(ctx context.Context, testTypeID uuid.UUID) ([]psikotest.Question, error)
	GetAnswers(ctx context.Context, sessionID uuid.UUID) ([]psikotest.CandidateAnswer, error)
	UpsertResult(ctx context.Context, res *psikotest.CandidateResult) error
}
