// tslint:disable:no-console
import * as mongoose from 'mongoose';

import { chevre } from '../../../lib/index';

const project = { id: String(process.env.PROJECT_ID) };

async function main() {
    await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });

    const eventSellerMakesOfferRepo = await chevre.repository.EventSellerMakesOffer.createInstance(mongoose.connection);
    const result = await eventSellerMakesOfferRepo.aggregateMakesOffer(
        {
            limit: 10,
            page: 1,
            // id: { $eq: 'bm0f0cadu' },
            // typeOf: chevre.factory.eventType.ScreeningEvent,
            project: { id: { $eq: project.id } },
            availableAtOrFrom: { id: { $eq: '3eo6okferrsdpfd9j2ce1iv9k7' } },
            itemOffered: {
                serviceOutput: { reservationFor: { id: { $in: ['bm0f0cadu', 'blco2394l'] } } }
            }
        }
    );
    // tslint:disable-next-line:no-null-keyword
    console.dir(result, { depth: null });
    console.dir(result.length, 'results found');
}

main()
    .then(console.log)
    .catch(console.error);
