class PreservationReportRepository {

    public MongoCursor<Document> findCollectionByProcessIdTenant(String processId, int tenantId) {
        return collection.aggregate(
            Arrays.asList(
                match(and(eq(PROCESS_ID, processId), eq(TENANT, tenantId))),
                Aggregates.project(Projections.fields(
                    new Document(PROCESS_ID, "$processId"),
                    new Document(CREATION_DATE_TIME, "$creationDateTime"),
                    new Document(UNIT_ID, "$unitId"),
                    new Document(OBJECT_GROUP_ID, "$objectGroupId"),
                    new Document(STATUS, "$status"),
                    new Document(ACTION, "$actions"),
                    new Document(ANALYSE_RESULT, "$analyseResult"),
                    new Document(INPUT_OBJECT_ID, "$inputObjectId"),
                    new Document(OUTPUT_OBJECT_ID, "$outputObjectId"),
                    new Document(GRIFFIN_ID, "$griffinId"),
                    new Document(SCENARIO_ID, "$preservationScenarioId")
                    )
                ))
        ).allowDiskUse(true).iterator();
    }

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

}