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

const studios = [
	// LegalPorno
	{
		slug: 'gonzocom',
		name: 'Gonzo.com',
		alias: ['sz'],
		url: 'https://www.legalporno.com/studios/gonzo_com',
		parent: 'legalporno',
	},
	{
		slug: 'giorgiograndi',
		name: 'Giorgio Grandi',
		url: 'https://www.legalporno.com/studios/giorgio-grandi',
		alias: ['gio'],
		parent: 'legalporno',
	},
	{
		slug: 'hardpornworld',
		name: 'Hard Porn World',
		url: 'https://www.legalporno.com/studios/hard-porn-world',
		alias: ['gp'],
		parent: 'legalporno',
	},
	{
		slug: 'interracialvision',
		name: 'Interracial Vision',
		url: 'https://www.legalporno.com/studios/interracial-vision',
		alias: ['iv'],
		parent: 'legalporno',
	},
	{
		slug: 'giorgioslab',
		name: 'Giorgio\'s Lab',
		url: 'https://www.legalporno.com/studios/giorgio--s-lab',
		alias: ['gl'],
		parent: 'legalporno',
	},
	{
		slug: 'americananal',
		name: 'American Anal',
		url: 'https://www.legalporno.com/studios/american-anal',
		alias: ['aa'],
		parent: 'legalporno',
	},
	{
		slug: 'assablanca',
		name: 'Assablanca',
		url: 'https://www.legalporno.com/studios/assablanca',
		alias: ['ab'],
		parent: 'legalporno',
	},
	{
		slug: 'focus',
		name: 'Focus',
		url: 'https://www.legalporno.com/studios/focus',
		alias: ['fs'],
		parent: 'legalporno',
	},
	{
		slug: 'anal4her',
		name: 'Anal 4 Her',
		url: 'https://www.legalporno.com/studios/anal-4-her',
		alias: ['af', 'anal forever'],
		parent: 'legalporno',
	},
	{
		slug: 'gonzoinbrazil',
		name: 'Gonzo in Brazil',
		url: 'https://www.legalporno.com/studios/gonzo-in-brazil',
		alias: ['bz'],
		parent: 'legalporno',
	},
	{
		slug: 'mranal',
		name: 'Mr Anal',
		url: 'https://www.legalporno.com/studios/mr-anal',
		alias: ['ma'],
		parent: 'legalporno',
	},
	{
		slug: 'tarrawhite',
		name: 'Tarra White',
		url: 'https://www.legalporno.com/studios/tarra-white',
		alias: ['tw'],
		parent: 'legalporno',
	},
	{
		slug: 'sineplexsos',
		name: 'Sineplex SOS',
		url: 'https://www.legalporno.com/studios/sineplex-sos',
		alias: ['rs'],
		parent: 'legalporno',
	},
	{
		slug: 'fmodels',
		name: 'F Models',
		url: 'https://www.legalporno.com/studios/f-models',
		alias: ['fm'],
		parent: 'legalporno',
	},
	{
		slug: 'sineplexcz',
		name: 'Sineplex CZ',
		url: 'https://www.legalporno.com/studios/sineplex-cz',
		alias: ['sz'],
		parent: 'legalporno',
	},
	{
		slug: 'gg',
		name: 'GG',
		url: 'https://www.legalporno.com/studios/gg',
		parent: 'legalporno',
	},
	{
		slug: 'firstgape',
		name: 'First Gape',
		url: 'https://www.legalporno.com/studios/first-gape',
		alias: ['sal'],
		parent: 'legalporno',
	},
	{
		slug: 'omargalantiproductions',
		name: 'Omar Galanti Productions',
		url: 'https://www.legalporno.com/studios/omar-galanti-productions',
		parent: 'legalporno',
	},
	{
		slug: 'marywet',
		name: 'Marywet',
		url: 'https://www.legalporno.com/studios/marywet',
		alias: ['ots'],
		parent: 'legalporno',
	},
	{
		slug: 'norestfortheass',
		name: 'No Rest For The Ass',
		url: 'https://www.legalporno.com/studios/no-rest-for-the-ass',
		alias: ['nr'],
		parent: 'legalporno',
	},
	{
		slug: 'hairygonzo',
		name: 'Hairy Gonzo',
		url: 'https://www.legalporno.com/studios/hairy-gonzo',
		alias: ['hg'],
		parent: 'legalporno',
	},
	{
		slug: 'sineplexclassic',
		name: 'Sineplex Classic',
		url: 'https://www.legalporno.com/studios/sineplex-classic',
		parent: 'legalporno',
	},
	{
		slug: 'sinemale',
		name: 'Sinemale',
		url: 'https://www.legalporno.com/studios/sinemale',
		parent: 'legalporno',
	},
	{
		slug: 'outsidethestudio',
		name: 'Outside The Studio',
		url: 'https://www.legalporno.com/studios/outside-the-studio',
		alias: ['ots'],
		parent: 'legalporno',
	},
	{
		slug: 'kinkysex',
		name: 'Kinky Sex',
		url: 'https://www.legalporno.com/studios/kinky-sex',
		alias: ['ks'],
		parent: 'legalporno',
	},
	{
		slug: 'sexyangelproductions',
		name: 'Sexy Angel Productions',
		url: 'https://www.legalporno.com/studios/sexy-angel-productions',
		alias: ['sa'],
		parent: 'legalporno',
	},
	{
		slug: 'nfstudio',
		name: 'N&F Studio',
		url: 'https://www.legalporno.com/studios/nf-studio',
		alias: ['nf'],
		parent: 'legalporno',
	},
	{
		slug: 'natashateenproductions',
		name: 'Natasha Teen Productions',
		url: 'https://www.legalporno.com/studios/natasha-teen-productions',
		alias: ['nt'],
		parent: 'legalporno',
	},
	{
		slug: 'mixedstudios',
		name: 'Mixed Studios',
		url: 'https://www.legalporno.com/studios/mixed-studios',
		alias: ['ms'],
		parent: 'legalporno',
	},
	{
		slug: 'claudiasclips',
		name: 'Claudia\'s Clips',
		url: 'https://www.legalporno.com/studios/claudia--s-clips',
		alias: ['cm'],
		parent: 'legalporno',
	},
	{
		slug: 'rebeccasclips',
		name: 'Rebecca\'s Clips',
		url: 'https://www.legalporno.com/studios/rebecca--s-clips',
		alias: ['rv'],
		parent: 'legalporno',
	},
	{
		slug: 'private',
		name: 'Private',
		url: 'https://www.legalporno.com/studios/private',
		parent: 'legalporno',
	},
	{
		slug: 'privatecastings',
		name: 'Private Castings',
		url: 'https://www.legalporno.com/studios/private-castings',
		parent: 'legalporno',
	},
	{
		slug: 'privateblack',
		name: 'Private Black',
		url: 'https://www.legalporno.com/studios/private-black',
		parent: 'legalporno',
	},
	{
		slug: 'nrxstudio',
		name: 'NRX Studio',
		url: 'https://www.legalporno.com/studios/nrx-studio',
		alias: ['nrx'],
		parent: 'legalporno',
	},
	{
		slug: 'lpggg',
		name: 'GGG by John Thompson',
		url: 'https://www.legalporno.com/studios/ggg-by-john-thompson',
		parent: 'legalporno',
	},
	{
		slug: 'yummyestudio',
		name: 'Yummy Estudio',
		url: 'https://www.legalporno.com/studios/yummy-estudio',
		alias: ['ye'],
		parent: 'legalporno',
	},
	{
		slug: 'bustedtgirls',
		name: 'Busted T-Girls',
		url: 'https://www.legalporno.com/studios/busted-t-girls',
		alias: ['btg'],
		tags: ['transsexual'],
		parent: 'legalporno',
	},
	{
		slug: 'lpbangbros',
		name: 'Bang Bros',
		url: 'https://www.legalporno.com/studios/bang-bros',
		parent: 'legalporno',
	},
	{
		slug: 'vkstudio',
		name: 'VK Studio',
		url: 'https://www.legalporno.com/studios/vk-studio',
		alias: ['vk'],
		parent: 'legalporno',
	},
	{
		slug: 'analmaniacs',
		name: 'Anal Maniacs by Lady Dee',
		url: 'https://www.legalporno.com/studios/anal-maniacs-by-lady-dee',
		alias: ['ld'],
		parent: 'legalporno',
	},
	{
		slug: 'pineapplestestkitchen',
		name: 'Pineapple\'s Test Kitchen',
		url: 'https://www.legalporno.com/studios/pineapple--s-test-kitchen',
		alias: ['ax'],
		parent: 'legalporno',
	},
	{
		slug: 'adelinelafouinestudio',
		name: 'Adeline Lafouine Studio',
		url: 'https://www.legalporno.com/studios/adeline-lafouine-studio',
		alias: ['al'],
		parent: 'legalporno',
	},
	{
		slug: 'jeanmariecordastudio',
		name: 'Jean Marie Corda Studio',
		url: 'https://www.legalporno.com/studios/jean-marie-corda-studio',
		alias: ['jmc'],
		parent: 'legalporno',
	},
	{
		slug: 'brianabanderasstudio',
		name: 'Briana Banderas Studio',
		url: 'https://www.legalporno.com/studios/briana-banderas-studio',
		alias: ['brb'],
		parent: 'legalporno',
	},
	{
		slug: 'rickangelstudio',
		name: 'Rick Angel Studio',
		url: 'https://www.legalporno.com/studios/rick-angel-studio',
		alias: ['ra'],
		parent: 'legalporno',
	},
	{
		slug: 'mamasitasavage',
		name: 'Mamasita Savage',
		url: 'https://www.legalporno.com/studios/mamasita-savage',
		alias: ['msv'],
		parent: 'legalporno',
	},
	{
		slug: 'badbardotclub',
		name: 'Bad Bardot Club',
		url: 'https://www.legalporno.com/studios/bad-bardot-club',
		alias: ['bbc'],
		parent: 'legalporno',
	},
	{
		slug: 'katerichstudio',
		name: 'Kate Rich Studio',
		url: 'https://www.legalporno.com/studios/kate-rich-studio',
		alias: ['krs'],
		parent: 'legalporno',
	},
	{
		slug: 'daddyenjoy',
		name: 'DaddyEnjoy',
		url: 'https://www.legalporno.com/studios/daddyenjoy',
		alias: ['de'],
		parent: 'legalporno',
	},
	{
		slug: 'laradesantisstudio',
		name: 'Lara De Santis Studio',
		url: 'https://www.legalporno.com/studios/lara-de-santis-studio',
		alias: ['lds'],
		parent: 'legalporno',
	},
	{
		slug: 'lutrosworld',
		name: 'Lutro\'s World',
		url: 'https://www.legalporno.com/studios/lutro--s-world',
		alias: ['lw'],
		parent: 'legalporno',
	},
	{
		slug: 'timeabellaproduction',
		name: 'Timea Bella Production',
		url: 'https://www.legalporno.com/studios/timea-bella-production',
		alias: ['tb'],
		parent: 'legalporno',
	},
	{
		slug: 'angelwickysproduction',
		name: 'Angel Wicky\'s Production',
		url: 'https://www.legalporno.com/studios/angel-wicky%E2%80%99s-production',
		alias: ['aw'],
		parent: 'legalporno',
	},
	{
		slug: 'bbcmaster',
		name: 'BBC Master',
		url: 'https://www.legalporno.com/studios/bbc-master',
		alias: ['jl'],
		parent: 'legalporno',
	},
	{
		slug: 'maxrajoysquad',
		name: 'Max Rajoy Squad',
		url: 'https://www.legalporno.com/studios/max-rajoy-squad',
		alias: ['mrs'],
		parent: 'legalporno',
	},
	{
		slug: 'queeneugenia',
		name: 'Queen Eugenia',
		url: 'https://www.legalporno.com/studios/queen-eugenia-studio',
		alias: ['qe'],
		parent: 'legalporno',
	},
	{
		slug: 'helenamoellerstudio',
		name: 'Helena Moeller Studio',
		url: 'https://www.legalporno.com/studios/helena-moeller-studio',
		alias: ['hms'],
		parent: 'legalporno',
	},
	{
		slug: 'allaboutsweetbunny',
		name: 'All About Sweet Bunny',
		url: 'https://www.legalporno.com/studios/all-about-sweet-bunny',
		alias: ['swb'],
		parent: 'legalporno',
	},
	{
		slug: 'clubcandyalexa',
		name: 'Club Candy Alexa',
		url: 'https://www.legalporno.com/studios/club-candy-alexa',
		alias: ['cca'],
		parent: 'legalporno',
	},
	{
		slug: 'stacybloomstudio',
		name: 'Stacy Bloom Studio',
		url: 'https://www.legalporno.com/studios/stacy-bloom-studio',
		alias: ['sbs'],
		parent: 'legalporno',
	},
	{
		slug: 'harleenvanhyntenstudio',
		name: 'Harleen Van Hynten Studio',
		url: 'https://www.legalporno.com/studios/harleen-van-hynten-studio',
		alias: ['hvh'],
		parent: 'legalporno',
	},
	{
		slug: 'cherryaleksastudio',
		name: 'Cherry Aleksa Studio',
		url: 'https://www.legalporno.com/studios/cherry-aleksa-studio',
		alias: ['ca'],
		parent: 'legalporno',
	},
	{
		slug: 'possiblyneighbours',
		name: 'Possibly Neighbours',
		url: 'https://www.legalporno.com/studios/possibly-neighbours',
		alias: ['pn'],
		parent: 'legalporno',
	},
	{
		slug: 'honourmaysmanorhouse',
		name: 'Honour Mays\' Manor House',
		url: 'https://www.legalporno.com/studios/honour-mays---manor-house',
		alias: ['hm'],
		parent: 'legalporno',
	},
	{
		slug: 'adaralovestudio',
		name: 'Adara Love Studio',
		url: 'https://www.legalporno.com/studios/adara-love-studio',
		parent: 'legalporno',
	},
];

/* eslint-disable max-len */
exports.seed = knex => Promise.resolve()
	.then(async () => {
		const networks = await knex('entities')
			.whereIn('slug', studios.map(studio => studio.parent));

		const networksMap = networks.reduce((acc, { id, slug }) => ({ ...acc, [slug]: id }), {});

		const studiosWithNetwork = studios.map(studio => ({
			slug: studio.slug,
			name: studio.name,
			url: studio.url,
			type: 'studio',
			parent_id: networksMap[studio.parent],
			has_logo: studio.hasLogo || false,
		}));

		return upsert('entities', studiosWithNetwork, ['slug', 'type'], knex);
	});