const upsert = require('../src/utils/upsert');

function getStudios(networksMap) {
    return [
        // Bang!
        {
            name: 'Trickery',
            slug: 'bangtrickery',
            url: 'https://www.bang.com/original/4800/bang-trickery',
            network_id: networksMap.bang,
        },
        {
            name: 'Yngr',
            slug: 'yngrcom',
            url: 'https://www.bang.com/original/5010/bang-yngr',
            network_id: networksMap.bang,
        },
        {
            name: 'Roadside XXX',
            slug: 'bangroadsidexxx',
            url: 'https://www.bang.com/original/4864/roadside-xxx',
            network_id: networksMap.bang,
        },
        {
            name: 'Surprise',
            slug: 'bangsurprise',
            url: 'https://www.bang.com/original/5000/bang-surprise',
            network_id: networksMap.bang,
        },
        {
            name: 'Real Teens',
            slug: 'bangrealteens',
            url: 'https://www.bang.com/original/3366/bang-real-teens',
            network_id: networksMap.bang,
        },
        {
            name: 'FCK.news',
            slug: 'bangfcknews',
            url: 'https://www.bang.com/original/4998/bang-fckNews',
            network_id: networksMap.bang,
        },
        {
            name: 'Pretty & Raw',
            slug: 'prettyandraw',
            url: 'https://www.bang.com/original/4792/bang-pretty-and-raw',
            network_id: networksMap.bang,
        },
        {
            name: 'Japan',
            slug: 'bangjapan',
            url: 'https://www.bang.com/original/3079/bang-japan',
            network_id: networksMap.bang,
        },
        {
            name: 'Rammed',
            slug: 'bangrammed',
            url: 'https://www.bang.com/original/4836/bang-rammed',
            network_id: networksMap.bang,
        },
        {
            name: 'Glamkore',
            slug: 'bangglamkore',
            url: 'https://www.bang.com/original/4586/bang-glamkore',
            network_id: networksMap.bang,
        },
        {
            name: 'Screw The Cops',
            slug: 'bangscrewthecops',
            url: 'https://www.bang.com/original/4710/bang-screw-cops',
            network_id: networksMap.bang,
        },
        {
            name: 'Real MILFs',
            slug: 'bangrealmilfs',
            url: 'https://www.bang.com/original/4448/bang-real-milfs',
            network_id: networksMap.bang,
        },
        {
            name: 'Confessions',
            slug: 'bangconfessions',
            url: 'https://www.bang.com/original/4308/bang-confessions',
            network_id: networksMap.bang,
        },
        {
            name: 'Casting',
            slug: 'bangcasting',
            url: 'https://www.bang.com/original/3261/bang-casting',
            network_id: networksMap.bang,
        },
        // LegalPorno
        {
            slug: 'gonzocom',
            name: 'Gonzo.com',
            url: 'https://www.legalporno.com/studios/gonzo_com',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'giorgiograndi',
            name: 'Giorgio Grandi',
            url: 'https://www.legalporno.com/studios/giorgio-grandi',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'hardpornworld',
            name: 'Hard Porn World',
            url: 'https://www.legalporno.com/studios/hard-porn-world',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'interracialvision',
            name: 'Interracial Vision',
            url: 'https://www.legalporno.com/studios/interracial-vision',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'giorgioslab',
            name: 'Giorgio\'s Lab',
            url: 'https://www.legalporno.com/studios/giorgio--s-lab',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'americananal',
            name: 'American Anal',
            url: 'https://www.legalporno.com/studios/american-anal',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'assablanca',
            name: 'Assablanca',
            url: 'https://www.legalporno.com/studios/assablanca',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'focus',
            name: 'Focus',
            url: 'https://www.legalporno.com/studios/focus',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'analforever',
            name: 'Anal Forever',
            url: 'https://www.legalporno.com/studios/anal-forever',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'gonzoinbrazil',
            name: 'Gonzo in Brazil',
            url: 'https://www.legalporno.com/studios/gonzo-in-brazil',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'mranal',
            name: 'Mr Anal',
            url: 'https://www.legalporno.com/studios/mr-anal',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'tarrawhite',
            name: 'Tarra White',
            url: 'https://www.legalporno.com/studios/tarra-white',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'sineplexsos',
            name: 'Sineplex SOS',
            url: 'https://www.legalporno.com/studios/sineplex-sos',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'fmodels',
            name: 'F Models',
            url: 'https://www.legalporno.com/studios/f-models',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'sineplexcz',
            name: 'Sineplex CZ',
            url: 'https://www.legalporno.com/studios/sineplex-cz',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'gg',
            name: 'GG',
            url: 'https://www.legalporno.com/studios/gg',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'firstgape',
            name: 'First Gape',
            url: 'https://www.legalporno.com/studios/first-gape',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'omargalantiproductions',
            name: 'Omar Galanti Productions',
            url: 'https://www.legalporno.com/studios/omar-galanti-productions',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'norestfortheass',
            name: 'No Rest For The Ass',
            url: 'https://www.legalporno.com/studios/no-rest-for-the-ass',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'hairygonzo',
            name: 'Hairy Gonzo',
            url: 'https://www.legalporno.com/studios/hairy-gonzo',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'sineplexclassic',
            name: 'Sineplex Classic',
            url: 'https://www.legalporno.com/studios/sineplex-classic',
            network_id: networksMap.legalporno,
        },
        {
            slug: 'sinemale',
            name: 'Sinemale',
            url: 'https://www.legalporno.com/studios/sinemale',
            network_id: networksMap.legalporno,
        },
    ];
}

/* eslint-disable max-len */
exports.seed = knex => Promise.resolve()
    .then(async () => {
        const networks = await knex('networks').select('*');
        const networksMap = networks.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {});

        const studios = getStudios(networksMap);

        return upsert('studios', studios, 'slug', knex);
    });