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

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

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

    const now = new Date();
    let updateResult: any;

    const transactionRepo = await chevre.repository.Transaction.createInstance(mongoose.connection);

    // tslint:disable-next-line:no-magic-numbers
    const hours = DAYS * 24;
    // tslint:disable-next-line:no-increment-decrement no-magic-numbers
    for (let index = 0; index < hours; index++) {
        updateResult = await transactionRepo.unsetUnnecessaryFields({
            filter: {
                // _id: { $eq: '649a7654ff1c885bcc40bbb7' },
                typeOf: { $eq: chevre.factory.transactionType.PlaceOrder },
                status: { $eq: chevre.factory.transactionStatusType.Confirmed },
                startDate: {
                    $gte: moment(now)
                        .add(-(index + 1), 'hours')
                        .toDate(),
                    $lt: moment(now)
                        .add(-index, 'hours')
                        .toDate()
                }
            },
            $unset: {
                'result.order.acceptedOffers': 1
            }
        });
        console.log('unset processed.', updateResult, -(index + 1), 'hours', -index, 'hours');
    }

    console.log(DAYS, 'days processed');
}

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