// tslint:disable:no-console
import * as mongoose from 'mongoose';
import * as redis from 'redis';
import { chevre } from '../../../../lib/index';

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

const redisClient = redis.createClient<redis.RedisDefaultModules, Record<string, never>, Record<string, never>>({
    socket: {
        port: Number(<string>process.env.REDIS_PORT),
        host: <string>process.env.REDIS_HOST
    },
    password: <string>process.env.REDIS_KEY,
    name: 'checkRedisKeyCount'
})
    .on('error', (err) => {
        // eslint-disable-next-line no-console
        console.error('createDefaultRedisClient: client onError:', err);
        // reject(err);
    });
redisClient.connect();
mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });

async function main() {
    const orderNumberRepo = await chevre.repository.OrderNumber.createInstance({
        redisClient,
        connection: mongoose.connection
    });
    const result = await orderNumberRepo.publishByTimestamp({
        project: { alternateName: 'CIN' },
        orderDate: new Date()
    });
    console.log(result);
}

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