import '../../../../core/errors/result.dart';
import '../entities/task_entity.dart';

abstract class TaskRepository {
  Future<Result<List<TaskEntity>>> getTasksByDate(DateTime date, {String? status});
  Future<Result<TaskEntity>> getTaskById(String id);
  Future<Result<TaskEntity>> createTask(TaskEntity task);
  Future<Result<TaskEntity>> updateTask(TaskEntity task);
  Future<Result<void>> deleteTask(String id);
  Future<Result<TaskEntity>> toggleTaskStatus(String id);
  Future<Result<TaskEntity>> rescheduleTask(String id, DateTime targetDate);
}
