module.exports = {
	title: 'traxxx',
	database: {
		owner: {
			host: '127.0.0.1',
			user: 'traxxx',
			password: 'password',
			database: 'traxxx',
		},
		query: {
			host: '127.0.0.1',
			user: 'visitor',
			password: 'password',
			database: 'traxxx',
		},
		manticore: {
			host: '127.0.0.1',
			sqlPort: 9306,
			httpPort: 9308,
			forceSql: true,
			maxMatches: 2000, // high match count needed primarily for actor aggregations
			maxAggregateSize: 2000, // must be lower or equal to maxMatches
			maxQueryTime: 10000,
		},
		timeout: 5000,
		pool: {
			min: 0,
			max: 20,
			acquireTimeoutMillis: 300000,
			createTimeoutMillis: 300000,
			destroyTimeoutMillis: 300000,
		},
	},
	web: {
		host: '0.0.0.0',
		port: 5000,
		sfwHost: '0.0.0.0',
		sfwPort: 5001,
		session: {
			secret: '12345678abcdefghij',
			resave: false,
			saveUninitialized: false,
			cookie: {
				secure: true,
				maxAge: 2629800000, // 1 month
			},
		},
	},
	redis: {
		host: 'localhost',
		port: 6379,
		username: null,
		password: null,
	},
	analytics: {
		enabled: false,
		address: 'http://localhost:3000/script.js',
		siteId: '1b28ac3b-d229-43bf-aec9-75cf0a72a466',
	},
	auth: {
		login: true,
		signup: true,
		usernameLength: [2, 24],
		usernamePattern: /^[a-zA-Z0-9_-]+$/,
	},
	bans: {
		defaultExpiry: 60 * 24 * 3, // in minutes, 3 days
	},
	socials: {
		urls: {
			cashapp: 'https://cash.app/${handle}', // eslint-disable-line no-template-curly-in-string
			fansly: 'https://fansly.com/{handle}',
			instagram: 'https://www.instagram.com/{handle}',
			linktree: 'https://linktr.ee/{handle}',
			loyalfans: 'https://www.loyalfans.com/{handle}',
			manyvids: 'https://{handle}.manyvids.com',
			onlyfans: 'https://onlyfans.com/{handle}',
			pornhub: 'https://www.pornhub.com/model/{handle}',
			reddit: 'https://www.reddit.com/u/{handle}',
			twitter: 'https://x.com/{handle}',
		},
		prefix: {
			default: '@',
			cashapp: '$',
			reddit: 'u/',
		},
	},
	apiAccess: {
		graphqlEnabled: true,
		keySize: 24, // bytes
		keyLimit: 5, // max keys per user
		keyCooldown: 1, // minutes between key generation
	},
	revisions: {
		unapprovedLimit: 3,
	},
	psa: {
		text: 'Welcome to traxxx!', // html enabled
		type: 'notice', // notice, alert
		enabled: false,
	},
	links: {
		content: 'mailto:content@traxxx.me',
		discord: 'https://discord.gg/gY6fnq6jJV',
	},
	stashes: {
		nameLength: [2, 24],
		namePattern: /^[a-zA-Z0-9!?$&\s_-]+$/,
		viewRefreshCron: '* * * * *', // every minute
		viewRefreshCooldowns: {
			actors: 60, // minutes
			stashes: 1,
		},
	},
	media: {
		path: './media',
		assetPath: '/img',
		mediaPath: '/media',
		s3Path: 'https://s3.wasabisys.com',
	},
};