import 'package:dartz/dartz.dart';
import '../../core/error/failures.dart';
import '../entities/contribution.dart';
import '../entities/contribution_record.dart';
import '../entities/contribution_stats.dart';

abstract class ContributionRepository {
  Future<Either<Failure, Contribution>> getUserContribution(String accountSequence);
  Future<Either<Failure, ContributionRecordsPage>> getContributionRecords(
    String accountSequence, {
    ContributionSourceType? sourceType,
    bool includeExpired = false,
    int page = 1,
    int pageSize = 50,
  });
  Future<Either<Failure, ContributionStats>> getContributionStats();
}
