Start implementation of branches, new form element tabledropdown, model improvements
This commit is contained in:
341
backend/utils/falukant/initializeFalukantPredefines.js
Normal file
341
backend/utils/falukant/initializeFalukantPredefines.js
Normal file
@@ -0,0 +1,341 @@
|
||||
import FalukantPredefineFirstname from "../../models/falukant/predefine/firstname.js";
|
||||
import FalukantPredefineLastname from "../../models/falukant/predefine/lastname.js";
|
||||
import BranchType from "../../models/falukant/type/branch.js";
|
||||
import ProductType from "../../models/falukant/type/product.js";
|
||||
import FalukantStockType from "../../models/falukant/type/stock.js";
|
||||
import TitleOfNobility from "../../models/falukant/type/title_of_nobility.js";
|
||||
import TitleRequirement from "../../models/falukant/type/title_requirement.js";
|
||||
|
||||
export const initializeFalukantPredefines = async () => {
|
||||
await initializeFalukantFirstnames();
|
||||
await initializeFalukantLastnames();
|
||||
await initializeFalukantStockTypes();
|
||||
await initializeFalukantProducts();
|
||||
await initializeFalukantTitles();
|
||||
await initializeFalukantTitleRequirements();
|
||||
await initializeFalukantBranchTypes();
|
||||
}
|
||||
|
||||
const initializeFalukantFirstnames = async () => {
|
||||
await FalukantPredefineFirstname.bulkCreate([
|
||||
{ name: "Alexander", gender: "male" },
|
||||
{ name: "Ben", gender: "male" },
|
||||
{ name: "Christian", gender: "male" },
|
||||
{ name: "Daniel", gender: "male" },
|
||||
{ name: "Elias", gender: "male" },
|
||||
{ name: "Felix", gender: "male" },
|
||||
{ name: "Gabriel", gender: "male" },
|
||||
{ name: "Hans", gender: "male" },
|
||||
{ name: "Ismail", gender: "male" },
|
||||
{ name: "Jakob", gender: "male" },
|
||||
{ name: "Kai", gender: "male" },
|
||||
{ name: "Lukas", gender: "male" },
|
||||
{ name: "Maximilian", gender: "male" },
|
||||
{ name: "Niklas", gender: "male" },
|
||||
{ name: "Oliver", gender: "male" },
|
||||
{ name: "Paul", gender: "male" },
|
||||
{ name: "Quentin", gender: "male" },
|
||||
{ name: "Robert", gender: "male" },
|
||||
{ name: "Sebastian", gender: "male" },
|
||||
{ name: "Thomas", gender: "male" },
|
||||
{ name: "Ulf", gender: "male" },
|
||||
{ name: "Vincent", gender: "male" },
|
||||
{ name: "Thorsten", gender: "male" },
|
||||
{ name: "Ulrich", gender: "male" },
|
||||
{ name: "Torben", gender: "male" },
|
||||
{ name: "Torsten", gender: "male" },
|
||||
{ name: "Uwe", gender: "male" },
|
||||
{ name: "Viktor", gender: "male" },
|
||||
{ name: "Wolfgang", gender: "male" },
|
||||
{ name: "Xaver", gender: "male" },
|
||||
{ name: "Yannik", gender: "male" },
|
||||
{ name: "Zacharias", gender: "male" },
|
||||
{ name: "Aaron", gender: "male" },
|
||||
{ name: "Bruno", gender: "male" },
|
||||
{ name: "Carl", gender: "male" },
|
||||
{ name: "David", gender: "male" },
|
||||
{ name: "Emil", gender: "male" },
|
||||
{ name: "Fabian", gender: "male" },
|
||||
{ name: "Georg", gender: "male" },
|
||||
{ name: "Heinrich", gender: "male" },
|
||||
{ name: "Ian", gender: "male" },
|
||||
{ name: "Jonas", gender: "male" },
|
||||
{ name: "Karl", gender: "male" },
|
||||
{ name: "Leon", gender: "male" },
|
||||
{ name: "Matthias", gender: "male" },
|
||||
{ name: "Nils", gender: "male" },
|
||||
{ name: "Oskar", gender: "male" },
|
||||
{ name: "Peter", gender: "male" },
|
||||
{ name: "Ralf", gender: "male" },
|
||||
{ name: "Simon", gender: "male" },
|
||||
{ name: "Tobias", gender: "male" },
|
||||
{ name: "Ulrich", gender: "male" },
|
||||
{ name: "Vince", gender: "male" },
|
||||
{ name: "Walter", gender: "male" },
|
||||
{ name: "Xeno", gender: "male" },
|
||||
{ name: "Yves", gender: "male" },
|
||||
{ name: "Zeno", gender: "male" },
|
||||
{ name: "Anna", gender: "female" },
|
||||
{ name: "Berit", gender: "female" },
|
||||
{ name: "Charlotte", gender: "female" },
|
||||
{ name: "Diana", gender: "female" },
|
||||
{ name: "Emilia", gender: "female" },
|
||||
{ name: "Fiona", gender: "female" },
|
||||
{ name: "Greta", gender: "female" },
|
||||
{ name: "Hanna", gender: "female" },
|
||||
{ name: "Isabelle", gender: "female" },
|
||||
{ name: "Johanna", gender: "female" },
|
||||
{ name: "Katharina", gender: "female" },
|
||||
{ name: "Lena", gender: "female" },
|
||||
{ name: "Marie", gender: "female" },
|
||||
{ name: "Nina", gender: "female" },
|
||||
{ name: "Olivia", gender: "female" },
|
||||
{ name: "Paula", gender: "female" },
|
||||
{ name: "Quirina", gender: "female" },
|
||||
{ name: "Rebecca", gender: "female" },
|
||||
{ name: "Sophia", gender: "female" },
|
||||
{ name: "Theresa", gender: "female" },
|
||||
{ name: "Ulrike", gender: "female" },
|
||||
{ name: "Valeria", gender: "female" },
|
||||
{ name: "Wilma", gender: "female" },
|
||||
{ name: "Xenia", gender: "female" },
|
||||
{ name: "Yara", gender: "female" },
|
||||
{ name: "Zoe", gender: "female" },
|
||||
{ name: "Antonia", gender: "female" },
|
||||
{ name: "Beate", gender: "female" },
|
||||
{ name: "Carla", gender: "female" },
|
||||
{ name: "Dorothea", gender: "female" },
|
||||
{ name: "Elisabeth", gender: "female" },
|
||||
{ name: "Franziska", gender: "female" },
|
||||
{ name: "Gerda", gender: "female" },
|
||||
{ name: "Helena", gender: "female" },
|
||||
{ name: "Irene", gender: "female" },
|
||||
{ name: "Julia", gender: "female" },
|
||||
{ name: "Klara", gender: "female" },
|
||||
{ name: "Leonie", gender: "female" },
|
||||
{ name: "Marlene", gender: "female" },
|
||||
{ name: "Nele", gender: "female" },
|
||||
{ name: "Petra", gender: "female" },
|
||||
{ name: "Renate", gender: "female" },
|
||||
{ name: "Sandra", gender: "female" },
|
||||
{ name: "Tanja", gender: "female" },
|
||||
{ name: "Ursula", gender: "female" },
|
||||
{ name: "Vanessa", gender: "female" },
|
||||
{ name: "Waltraud", gender: "female" },
|
||||
{ name: "Xaveria", gender: "female" },
|
||||
{ name: "Yvonne", gender: "female" },
|
||||
{ name: "Zora", gender: "female" },
|
||||
], {
|
||||
ignoreDuplicates: true,
|
||||
});
|
||||
}
|
||||
|
||||
const initializeFalukantLastnames = async () => {
|
||||
await FalukantPredefineLastname.bulkCreate([
|
||||
{ name: "Adler" },
|
||||
{ name: "Bauer" },
|
||||
{ name: "Becker" },
|
||||
{ name: "Bergmann" },
|
||||
{ name: "Braun" },
|
||||
{ name: "Busch" },
|
||||
{ name: "Dreyer" },
|
||||
{ name: "Eberhardt" },
|
||||
{ name: "Fischer" },
|
||||
{ name: "Franke" },
|
||||
{ name: "Friedrich" },
|
||||
{ name: "Geiger" },
|
||||
{ name: "Gärtner" },
|
||||
{ name: "Hartmann" },
|
||||
{ name: "Hoffmann" },
|
||||
{ name: "Hofmann" },
|
||||
{ name: "Horn" },
|
||||
{ name: "Huber" },
|
||||
{ name: "Jäger" },
|
||||
{ name: "Jung" },
|
||||
{ name: "Kaiser" },
|
||||
{ name: "Keller" },
|
||||
{ name: "Klein" },
|
||||
{ name: "Koch" },
|
||||
{ name: "König" },
|
||||
{ name: "Krüger" },
|
||||
{ name: "Lang" },
|
||||
{ name: "Lehmann" },
|
||||
{ name: "Ludwig" },
|
||||
{ name: "Maier" },
|
||||
{ name: "Meyer" },
|
||||
{ name: "Müller" },
|
||||
{ name: "Neumann" },
|
||||
{ name: "Neff" },
|
||||
{ name: "Obermeier" },
|
||||
{ name: "Otto" },
|
||||
{ name: "Peters" },
|
||||
{ name: "Ritter" },
|
||||
{ name: "Richter" },
|
||||
{ name: "Rosen" },
|
||||
{ name: "Schäfer" },
|
||||
{ name: "Schmidt" },
|
||||
{ name: "Schneider" },
|
||||
{ name: "Schulz" },
|
||||
{ name: "Schulze" },
|
||||
{ name: "Schwarz" },
|
||||
{ name: "Schuster" },
|
||||
{ name: "Sommer" },
|
||||
{ name: "Stein" },
|
||||
{ name: "Tanner" },
|
||||
{ name: "Thiel" },
|
||||
{ name: "Ullmann" },
|
||||
{ name: "Ullrich" },
|
||||
{ name: "Vogel" },
|
||||
{ name: "Voigt" },
|
||||
{ name: "Wagner" },
|
||||
{ name: "Walter" },
|
||||
{ name: "Weber" },
|
||||
{ name: "Weiß" },
|
||||
{ name: "Winter" },
|
||||
{ name: "Wolf" },
|
||||
{ name: "Xaver" },
|
||||
{ name: "Xavier" },
|
||||
{ name: "Zimmer" },
|
||||
{ name: "Zimmermann" },
|
||||
{ name: "Albrecht" },
|
||||
{ name: "Arnold" },
|
||||
{ name: "Baumann" },
|
||||
{ name: "Dietrich" },
|
||||
{ name: "Engel" },
|
||||
{ name: "Graf" },
|
||||
{ name: "Kirsch" },
|
||||
{ name: "Lenz" },
|
||||
{ name: "Schirmer" },
|
||||
{ name: "Vogt" },
|
||||
{ name: "Ziegler" },
|
||||
], {
|
||||
ignoreDuplicates: true,
|
||||
});
|
||||
}
|
||||
|
||||
async function initializeFalukantStockTypes() {
|
||||
await FalukantStockType.bulkCreate([
|
||||
{ labelTr: 'wood', cost: 15 },
|
||||
{ labelTr: 'stone', cost: 25 },
|
||||
{ labelTr: 'iron', cost: 100 },
|
||||
{ labelTr: 'field', cost: 5 },
|
||||
]);
|
||||
}
|
||||
|
||||
async function initializeFalukantProducts() {
|
||||
await ProductType.bulkCreate([
|
||||
{ labelTr: 'wheat', category: 1, productionTime: 2, sellCost: 7 },
|
||||
{ labelTr: 'grain', category: 1, productionTime: 2, sellCost: 7 },
|
||||
{ labelTr: 'carrot', category: 1, productionTime: 1, sellCost: 4 },
|
||||
{ labelTr: 'fish', category: 1, productionTime: 2, sellCost: 7 },
|
||||
{ labelTr: 'meat', category: 1, productionTime: 2, sellCost: 7 },
|
||||
{ labelTr: 'leather', category: 1, productionTime: 2, sellCost: 7 },
|
||||
{ labelTr: 'wood', category: 1, productionTime: 2, sellCost: 7 },
|
||||
{ labelTr: 'stone', category: 1, productionTime: 2, sellCost: 7 },
|
||||
{ labelTr: 'milk', category: 1, productionTime: 1, sellCost: 4 },
|
||||
{ labelTr: 'cheese', category: 1, productionTime: 1, sellCost: 4 },
|
||||
{ labelTr: 'bread', category: 1, productionTime: 1, sellCost: 4 },
|
||||
{ labelTr: 'beer', category: 1, productionTime: 1, sellCost: 4 },
|
||||
{ labelTr: 'iron', category: 2, productionTime: 4, sellCost: 15 },
|
||||
{ labelTr: 'copper', category: 2, productionTime: 4, sellCost: 15 },
|
||||
{ labelTr: 'spices', category: 2, productionTime: 8, sellCost: 30 },
|
||||
{ labelTr: 'salt', category: 2, productionTime: 4, sellCost: 15 },
|
||||
{ labelTr: 'sugar', category: 2, productionTime: 4, sellCost: 15 },
|
||||
{ labelTr: 'vinegar', category: 2, productionTime: 4, sellCost: 15 },
|
||||
{ labelTr: 'cotton', category: 2, productionTime: 4, sellCost: 15 },
|
||||
{ labelTr: 'wine', category: 2, productionTime: 4, sellCost: 15 },
|
||||
{ labelTr: 'gold', category: 3, productionTime: 4, sellCost: 30 },
|
||||
{ labelTr: 'diamond', category: 3, productionTime: 4, sellCost: 30 },
|
||||
{ labelTr: 'furniture', category: 3, productionTime: 4, sellCost: 30 },
|
||||
{ labelTr: 'clothing', category: 3, productionTime: 4, sellCost: 30 },
|
||||
{ labelTr: 'jewelry', category: 4, productionTime: 5, sellCost: 60 },
|
||||
{ labelTr: 'painting', category: 4, productionTime: 5, sellCost: 60 },
|
||||
{ labelTr: 'book', category: 4, productionTime: 5, sellCost: 60 },
|
||||
{ labelTr: 'weapon', category: 4, productionTime: 5, sellCost: 60 },
|
||||
{ labelTr: 'armor', category: 4, productionTime: 5, sellCost: 60 },
|
||||
{ labelTr: 'shield', category: 4, productionTime: 5, sellCost: 60 },
|
||||
{ labelTr: 'horse', category: 5, productionTime: 5, sellCost: 60 },
|
||||
{ labelTr: 'ox', category: 5, productionTime: 5, sellCost: 60 },
|
||||
], {
|
||||
ignoreDuplicates: true,
|
||||
});
|
||||
}
|
||||
|
||||
async function initializeFalukantTitles() {
|
||||
await TitleOfNobility.bulkCreate([
|
||||
{ labelTr: "noncivil" },
|
||||
{ labelTr: "civil" },
|
||||
{ labelTr: "sir" },
|
||||
{ labelTr: "townlord" },
|
||||
{ labelTr: "by" },
|
||||
{ labelTr: "landlord" },
|
||||
{ labelTr: "knight" },
|
||||
{ labelTr: "baron" },
|
||||
{ labelTr: "count" },
|
||||
{ labelTr: "palsgrave" },
|
||||
{ labelTr: "margrave" },
|
||||
{ labelTr: "landgrave" },
|
||||
{ labelTr: "ruler" },
|
||||
{ labelTr: "elector" },
|
||||
{ labelTr: "imperial-prince" },
|
||||
{ labelTr: "duke" },
|
||||
{ labelTr: "grand-duke" },
|
||||
{ labelTr: "prince-regent" },
|
||||
{ labelTr: "king" },
|
||||
], {
|
||||
updateOnDuplicate: ['labelTr'],
|
||||
});
|
||||
}
|
||||
|
||||
async function initializeFalukantTitleRequirements() {
|
||||
const titleRequirements = [
|
||||
{ labelTr: "civil", requirements: [{ type: "money", value: 500 }] },
|
||||
{ labelTr: "sir", requirements: [{ type: "branches", value: 2 }] },
|
||||
{ labelTr: "townlord", requirements: [] },
|
||||
{ labelTr: "by", requirements: [] },
|
||||
{ labelTr: "landlord", requirements: [] },
|
||||
{ labelTr: "knight", requirements: [] },
|
||||
{ labelTr: "baron", requirements: [{ type: "branches", value: 4 }] },
|
||||
{ labelTr: "count", requirements: [] },
|
||||
{ labelTr: "palsgrave", requirements: [] },
|
||||
{ labelTr: "margrave", requirements: [] },
|
||||
{ labelTr: "landgrave", requirements: [] },
|
||||
{ labelTr: "ruler", requirements: [] },
|
||||
{ labelTr: "elector", requirements: [] },
|
||||
{ labelTr: "imperial-prince", requirements: [] },
|
||||
{ labelTr: "duke", requirements: [] },
|
||||
{ labelTr: "grand-duke", requirements: [] },
|
||||
{ labelTr: "prince-regent", requirements: [] },
|
||||
{ labelTr: "king", requirements: [] },
|
||||
];
|
||||
const titles = await TitleOfNobility.findAll();
|
||||
const requirementsToInsert = [];
|
||||
for (let i = 0; i < titleRequirements.length; i++) {
|
||||
const titleRequirement = titleRequirements[i];
|
||||
const title = titles.find(t => t.labelTr === titleRequirement.labelTr);
|
||||
if (!title) continue;
|
||||
if (i > 1) {
|
||||
const moneyRequirement = {
|
||||
type: "money",
|
||||
value: 5000 * Math.pow(3, i - 1),
|
||||
};
|
||||
titleRequirement.requirements.push(moneyRequirement);
|
||||
}
|
||||
for (const requirement of titleRequirement.requirements) {
|
||||
requirementsToInsert.push({
|
||||
titleId: title.id,
|
||||
requirementType: requirement.type,
|
||||
requirementValue: requirement.value,
|
||||
});
|
||||
}
|
||||
}
|
||||
await TitleRequirement.bulkCreate(requirementsToInsert, { ignoreDuplicates: true });
|
||||
}
|
||||
|
||||
async function initializeFalukantBranchTypes() {
|
||||
await BranchType.bulkCreate([
|
||||
{ labelTr: 'production', baseCost: 3000 },
|
||||
{ labelTr: 'store', baseCost: 2000 },
|
||||
{ labelTr: 'fullstack', baseCost: 4500},
|
||||
], { ignoreDuplicates: true });
|
||||
}
|
||||
Reference in New Issue
Block a user