// 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) };

// tslint:disable-next-line:max-func-body-length
async function main() {
    const client = 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
    });
    await client.connect();

    const itemAvailabilityRepo = await chevre.repository.StockHolder.createInstance(client, mongoose.connection);

    const result = await itemAvailabilityRepo.searchHolders({
        project,
        eventId: 'alckc9mlx',
        startDate: new Date(),
        hasTicketedSeat: true,
        offers: [
            {
                seatSection: 'Default',
                seatNumber: 'B-10'
            },
            {
                seatSection: 'xxx',
                seatNumber: 'xxx'
            }
        ]
    });
    console.log(result);
}

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