package service

import (
	"context"
	"errors"

	memorymodel "github.com/LoveLosita/smartflow/backend/memory/model"
	memoryrepo "github.com/LoveLosita/smartflow/backend/memory/repo"
)

// EnqueueService 是 Day1 的“任务入队门面”。
//
// 职责边界：
// 1. 只负责把抽取请求入 memory_jobs；
// 2. 不负责执行抽取、不负责写 memory_items。
type EnqueueService struct {
	jobRepo *memoryrepo.JobRepo
}

func NewEnqueueService(jobRepo *memoryrepo.JobRepo) *EnqueueService {
	return &EnqueueService{jobRepo: jobRepo}
}

func (s *EnqueueService) EnqueueExtractJob(
	ctx context.Context,
	payload memorymodel.ExtractJobPayload,
	sourceEventID string,
) error {
	if s == nil || s.jobRepo == nil {
		return errors.New("memory enqueue service is nil")
	}
	return s.jobRepo.CreatePendingExtractJob(ctx, payload, sourceEventID)
}
