import '../entities/task.dart';

/// Repository interface for task operations.
abstract class TasksRepository {
  /// Fetches all tasks, optionally filtered by status.
  Future<List<Task>> getTasks({String? status});

  /// Fetches a single task by ID.
  Future<Task> getTaskById(String id);

  /// Creates a new task and returns the created entity.
  Future<Task> createTask({
    required String title,
    String? description,
    String? priority,
    String? serverId,
  });

  /// Updates an existing task.
  Future<Task> updateTask(String id, Map<String, dynamic> updates);

  /// Deletes a task by ID.
  Future<void> deleteTask(String id);
}
