// tslint:disable:no-implicit-dependencies 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 paymentServiceRepo = await chevre.repository.PaymentService.createInstance(mongoose.connection);

    const limit = 10;
    const page = 1;
    const docs = await paymentServiceRepo.projectFields(
        {
            limit,
            page,
            project: { id: { $eq: project.id } },
            availableChannel: { id: { $eq: 'xxx' } }
        },
        ['availableChannel', 'productID']
    );
    // tslint:disable-next-line:no-null-keyword
    console.dir(docs, { depth: null });
    console.log(docs.length, 'docs found');
}

main()
    .then(() => {
        console.log('success!');
    })
    .catch(console.error);
