|
|
|
|
@@ -1,6 +1,10 @@
|
|
|
|
|
import UserParamType from '../models/type/user_param.js';
|
|
|
|
|
import SettingsType from '../models/type/settings.js';
|
|
|
|
|
import UserParamValue from '../models/type/user_param_value.js';
|
|
|
|
|
import Interest from '../models/type/interest.js';
|
|
|
|
|
import { Op, } from 'sequelize';
|
|
|
|
|
import InterestTranslation from '../models/type/interest_translation.js';
|
|
|
|
|
import { sequelize } from '../utils/sequelize.js';
|
|
|
|
|
|
|
|
|
|
const initializeTypes = async () => {
|
|
|
|
|
const settingsTypes = await SettingsType.findAll();
|
|
|
|
|
@@ -10,7 +14,7 @@ const initializeTypes = async () => {
|
|
|
|
|
}, {});
|
|
|
|
|
|
|
|
|
|
const getSettingsTypeId = (name) => settingsTypeMap[name];
|
|
|
|
|
const getUserParamTypeId = async(name) => {
|
|
|
|
|
const getUserParamTypeId = async (name) => {
|
|
|
|
|
const userParamType = await UserParamType.findOne({
|
|
|
|
|
where: {
|
|
|
|
|
description: name
|
|
|
|
|
@@ -19,26 +23,26 @@ const initializeTypes = async () => {
|
|
|
|
|
return userParamType.id;
|
|
|
|
|
};
|
|
|
|
|
const userParams = {
|
|
|
|
|
language: {type: 'singleselect', setting: 'personal'},
|
|
|
|
|
birthdate: { type: 'date', setting: 'personal' },
|
|
|
|
|
zip: { type: 'string', setting: 'personal' },
|
|
|
|
|
town: { type: 'string', setting: 'personal' },
|
|
|
|
|
bodyheight: { type: 'float', setting: 'view' },
|
|
|
|
|
weight: { type: 'float', setting: 'view' },
|
|
|
|
|
eyecolor: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
haircolor: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
hairlength: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
skincolor: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
freckles: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
piercings: { type: 'bool', setting: 'view' },
|
|
|
|
|
tattoos: { type: 'bool', setting: 'view' },
|
|
|
|
|
sexualpreference: { type: 'singleselect', 'setting': 'sexuality', minAge: 14 },
|
|
|
|
|
gender: { type: 'singleselect', setting: 'personal' },
|
|
|
|
|
pubichair: { type: 'singleselect', setting: 'sexuality', minAge: 14 },
|
|
|
|
|
penislenght: { type: 'int', setting: 'sexuality', minAge: 14, gender: 'male' },
|
|
|
|
|
language: { type: 'singleselect', setting: 'personal' },
|
|
|
|
|
birthdate: { type: 'date', setting: 'personal' },
|
|
|
|
|
zip: { type: 'string', setting: 'personal' },
|
|
|
|
|
town: { type: 'string', setting: 'personal' },
|
|
|
|
|
bodyheight: { type: 'float', setting: 'view' },
|
|
|
|
|
weight: { type: 'float', setting: 'view' },
|
|
|
|
|
eyecolor: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
haircolor: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
hairlength: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
skincolor: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
freckles: { type: 'singleselect', setting: 'view' },
|
|
|
|
|
piercings: { type: 'bool', setting: 'view' },
|
|
|
|
|
tattoos: { type: 'bool', setting: 'view' },
|
|
|
|
|
sexualpreference: { type: 'singleselect', 'setting': 'sexuality', minAge: 14 },
|
|
|
|
|
gender: { type: 'singleselect', setting: 'personal' },
|
|
|
|
|
pubichair: { type: 'singleselect', setting: 'sexuality', minAge: 14 },
|
|
|
|
|
penislenght: { type: 'int', setting: 'sexuality', minAge: 14, gender: 'male' },
|
|
|
|
|
brasize: { type: 'string', setting: 'sexuality', minAge: 14, gender: 'female' }
|
|
|
|
|
};
|
|
|
|
|
Object.keys(userParams).forEach(async(key) => {
|
|
|
|
|
Object.keys(userParams).forEach(async (key) => {
|
|
|
|
|
const item = userParams[key];
|
|
|
|
|
const createItem = { description: key, datatype: item.type, settingsId: getSettingsTypeId(item.setting) };
|
|
|
|
|
if (item.minAge) createItem.minAge = item.minAge;
|
|
|
|
|
@@ -59,12 +63,12 @@ const initializeTypes = async () => {
|
|
|
|
|
sexualpreference: ['straight', 'gay', 'bi', 'pan', 'asexual'],
|
|
|
|
|
pubichair: ['none', 'short', 'medium', 'long', 'hairy', 'waxed', 'landingstrip', 'bikinizone', 'other'],
|
|
|
|
|
};
|
|
|
|
|
Object.keys(valuesList).forEach(async(key) => {
|
|
|
|
|
Object.keys(valuesList).forEach(async (key) => {
|
|
|
|
|
const values = valuesList[key];
|
|
|
|
|
const userParamTypeId = await getUserParamTypeId(key);
|
|
|
|
|
values.forEach(async(value) => {
|
|
|
|
|
values.forEach(async (value) => {
|
|
|
|
|
await UserParamValue.findOrCreate({
|
|
|
|
|
where: {
|
|
|
|
|
where: {
|
|
|
|
|
userParamTypeId: userParamTypeId,
|
|
|
|
|
value: value
|
|
|
|
|
},
|
|
|
|
|
@@ -72,6 +76,91 @@ const initializeTypes = async () => {
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
const interestsList = {
|
|
|
|
|
music: { adult: false, translation: { value: 'Musik', language: 'de' } },
|
|
|
|
|
piano: { adult: false, translation: { value: 'Klavier', language: 'de' } },
|
|
|
|
|
art: { adult: false, translation: { value: 'Kunst', language: 'de' } },
|
|
|
|
|
photography: { adult: false, translation: { value: 'Fotografie', language: 'de' } },
|
|
|
|
|
gaming: { adult: false, translation: { value: 'Spielen', language: 'de' } },
|
|
|
|
|
sports: { adult: false, translation: { value: 'Sport', language: 'de' } },
|
|
|
|
|
tabletennis: { adult: false, translation: { value: 'Tischtennis', language: 'de' } },
|
|
|
|
|
soccer: { adult: false, translation: { value: 'Fußball', language: 'de' } },
|
|
|
|
|
tennis: { adult: false, translation: { value: 'Tennis', language: 'de' } },
|
|
|
|
|
swimming: { adult: false, translation: { value: 'Schwimmen', language: 'de' } },
|
|
|
|
|
hiking: { adult: false, translation: { value: 'Wandern', language: 'de' } },
|
|
|
|
|
cooking: { adult: false, translation: { value: 'Kochen', language: 'de' } },
|
|
|
|
|
travel: { adult: false, translation: { value: 'Reisen', language: 'de' } },
|
|
|
|
|
movies: { adult: false, translation: { value: 'Filme', language: 'de' } },
|
|
|
|
|
books: { adult: false, translation: { value: 'Bücher', language: 'de' } },
|
|
|
|
|
reading: { adult: false, translation: { value: 'Lesen', language: 'de' } },
|
|
|
|
|
pets: { adult: false, translation: { value: 'Haustiere', language: 'de' } },
|
|
|
|
|
dogs: { adult: false, translation: { value: 'Hunde', language: 'de' } },
|
|
|
|
|
cats: { adult: false, translation: { value: 'Katzen', language: 'de' } },
|
|
|
|
|
plants: { adult: false, translation: { value: 'Pflanzen', language: 'de' } },
|
|
|
|
|
gardening: { adult: false, translation: { value: 'Gartenarbeit', language: 'de' } },
|
|
|
|
|
yoga: { adult: false, translation: { value: 'Yoga', language: 'de' } },
|
|
|
|
|
meditation: { adult: false, translation: { value: 'Meditation', language: 'de' } },
|
|
|
|
|
spirituality: { adult: false, translation: { value: 'Spiritualität', language: 'de' } },
|
|
|
|
|
religion: { adult: false, translation: { value: 'Religion', language: 'de' } },
|
|
|
|
|
politics: { adult: false, translation: { value: 'Politik', language: 'de' } },
|
|
|
|
|
history: { adult: false, translation: { value: 'Geschichte', language: 'de' } },
|
|
|
|
|
science: { adult: false, translation: { value: 'Wissenschaft', language: 'de' } },
|
|
|
|
|
technology: { adult: false, translation: { value: 'Technologie', language: 'de' } },
|
|
|
|
|
fashion: { adult: false, translation: { value: 'Mode', language: 'de' } },
|
|
|
|
|
beauty: { adult: false, translation: { value: 'Schönheit', language: 'de' } },
|
|
|
|
|
fitness: { adult: false, translation: { value: 'Fitness', language: 'de' } },
|
|
|
|
|
health: { adult: false, translation: { value: 'Gesundheit', language: 'de' } },
|
|
|
|
|
nutrition: { adult: false, translation: { value: 'Ernährung', language: 'de' } },
|
|
|
|
|
wellness: { adult: false, translation: { value: 'Wellness', language: 'de' } },
|
|
|
|
|
finance: { adult: false, translation: { value: 'Finanzen', language: 'de' } },
|
|
|
|
|
business: { adult: false, translation: { value: 'Geschäft', language: 'de' } },
|
|
|
|
|
entrepreneurship: { adult: false, translation: { value: 'Unternehmertum', language: 'de' } },
|
|
|
|
|
education: { adult: false, translation: { value: 'Bildung', language: 'de' } },
|
|
|
|
|
learning: { adult: false, translation: { value: 'Lernen', language: 'de' } },
|
|
|
|
|
language: { adult: false, translation: { value: 'Sprache', language: 'de' } },
|
|
|
|
|
culture: { adult: false, translation: { value: 'Kultur', language: 'de' } },
|
|
|
|
|
family: { adult: false, translation: { value: 'Familie', language: 'de' } },
|
|
|
|
|
friends: { adult: false, translation: { value: 'Freunde', language: 'de' } },
|
|
|
|
|
social: { adult: false, translation: { value: 'Soziales', language: 'de' } },
|
|
|
|
|
nightlife: { adult: false, translation: { value: 'Nachtleben', language: 'de' } },
|
|
|
|
|
partying: { adult: false, translation: { value: 'Feiern', language: 'de' } },
|
|
|
|
|
comedy: { adult: false, translation: { value: 'Komödie', language: 'de' } },
|
|
|
|
|
humor: { adult: false, translation: { value: 'Humor', language: 'de' } },
|
|
|
|
|
sex: { adult: true, translation: { value: 'Sex', language: 'de' } },
|
|
|
|
|
romance: { adult: false, translation: { value: 'Romantik', language: 'de' } },
|
|
|
|
|
dating: { adult: true, translation: { value: 'Dating', language: 'de' } },
|
|
|
|
|
relationships: { adult: false, translation: { value: 'Beziehungen', language: 'de' } },
|
|
|
|
|
adventure: { adult: true, translation: { value: 'Abenteuer', language: 'de' } },
|
|
|
|
|
escapade: { adult: true, translation: { value: 'Eskapade', language: 'de' } },
|
|
|
|
|
sexuality: { adult: true, translation: { value: 'Sexualität', language: 'de' } }
|
|
|
|
|
};
|
|
|
|
|
const languages = await UserParamValue.findAll({where: { value: {[Op.in]: ['de', 'en']} } });
|
|
|
|
|
const languageId = (language) => {
|
|
|
|
|
const lang = languages.find((lang) => lang.value === language);
|
|
|
|
|
return lang ? lang.id : null;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
for (const key of Object.keys(interestsList)) {
|
|
|
|
|
try {
|
|
|
|
|
const value = interestsList[key];
|
|
|
|
|
const [item, created] = await Interest.findOrCreate({
|
|
|
|
|
where: { name: key },
|
|
|
|
|
defaults: { name: key, allowed: true, adultOnly: value.adult },
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (created) {
|
|
|
|
|
const langId = languageId('de');
|
|
|
|
|
console.log(item.id, langId, value.translation.value);
|
|
|
|
|
await InterestTranslation.create({
|
|
|
|
|
interestsId: item.id,
|
|
|
|
|
language: langId,
|
|
|
|
|
translation: value.translation.value
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default initializeTypes;
|
|
|
|
|
|