package data

import (
	"actatempus_backend/internal/domain/entities"
	"context"

	E "github.com/IBM/fp-go/either"
)

// ProjectTaskDataSource defines the operations for interacting with project task data.
type ProjectTaskDataSource interface {
	Create(ctx context.Context, task entities.ProjectTaskCreate) E.Either[error,entities.ProjectTask]
	FindByID(ctx context.Context, id string) E.Either[error,entities.ProjectTask]
	FindByProjectID(ctx context.Context, projectID string) E.Either[error,[]entities.ProjectTask]
	Update(ctx context.Context, task entities.ProjectTaskUpdate) E.Either[error,entities.ProjectTask]
	Delete(ctx context.Context, id string) E.Either[error,entities.ProjectTask]
	FindAll(ctx context.Context) E.Either[error,[]entities.ProjectTask]
}
