class AuditReportRepository extends ReportCommonRepository {

    public MongoCursor<Document> findCollectionByProcessIdTenantAndStatus(String processId, int tenantId,
            String... status) {
        Bson eqProcessId = eq(AuditObjectGroupModel.PROCESS_ID, processId);
        Bson eqTenant = eq(AuditObjectGroupModel.TENANT, tenantId);
        Bson inStatus = or(in(AuditObjectGroupModel.METADATA + ".status", status),
                in(AuditObjectGroupModel.METADATA + ".objectVersions.status", status));

        return objectGroupReportCollection
                .aggregate(Arrays.asList(Aggregates.match(and(eqProcessId, eqTenant, inStatus)),
                        Aggregates.project(reportProjection())))
                // Aggregation query requires more than 100MB to proceed.
                .allowDiskUse(true).iterator();
    }

    @VisibleForTesting public  AuditReportRepository(MongoDbAccess mongoDbAccess, String collectionName);
    public  AuditReportRepository(MongoDbAccess mongoDbAccess);

}