package testutil

import (
	"context"
	"tercul/internal/app/like"
	"tercul/internal/domain"

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

// MockLikeService is a mock implementation of the like.Commands interface.
type MockLikeService struct {
	mock.Mock
}

func (m *MockLikeService) CreateLike(ctx context.Context, input like.CreateLikeInput) (*domain.Like, error) {
	args := m.Called(ctx, input)
	if args.Get(0) == nil {
		return nil, args.Error(1)
	}
	return args.Get(0).(*domain.Like), args.Error(1)
}

func (m *MockLikeService) DeleteLike(ctx context.Context, likeID uint) error {
	args := m.Called(ctx, likeID)
	return args.Error(0)
}