import 'package:krow/core/entity/event_entity.dart';

abstract class EventsRepository {
  Stream<EventStatus> get statusStream;

  Future<List<EventEntity>> getEvents(
      {String? lastItemId, required EventStatus statusFilter});

  Future<EventEntity?> getEventById(String id);

  void dispose();

  Future<void> cancelClientEvent(String id, EventStatus? status);

  Future<void> completeClientEvent(String id, {String? comment});

  Future<void> trackClientClockin(String positionStaffId);

  Future<void> trackClientClockout(String positionStaffId);

  Future<void> notShowedPositionStaff(String positionStaffId);

  Future<void> replacePositionStaff(String positionStaffId, String reason);

  void refreshEvents(EventStatus status);
}
