Add Falukant region and transport management features
- Implemented new endpoints in AdminController for managing Falukant regions, including fetching, updating, and deleting region distances. - Enhanced the FalukantService with methods for retrieving region distances and handling upsert operations. - Updated the router to expose new routes for region management and transport creation. - Introduced a transport management interface in the frontend, allowing users to create and manage transports between branches. - Added localization for new transport-related terms and improved the vehicle management interface to include transport options. - Enhanced the database initialization logic to support new region and transport models.
This commit is contained in:
@@ -276,13 +276,14 @@ const learnerTypes = [
|
||||
];
|
||||
|
||||
const vehicleTypes = [
|
||||
{ tr: 'cargo_cart', name: 'Lastkarren', cost: 100, capacity: 20, transportMode: 'land', speed: 1 },
|
||||
{ tr: 'ox_cart', name: 'Ochsenkarren', cost: 200, capacity: 50, transportMode: 'land', speed: 2 },
|
||||
{ tr: 'small_carriage', name: 'kleine Pferdekutsche', cost: 300, capacity: 35, transportMode: 'land', speed: 3 },
|
||||
{ tr: 'large_carriage', name: 'große Pferdekutsche', cost: 1000, capacity: 100, transportMode: 'land', speed: 3 },
|
||||
{ tr: 'four_horse_carriage', name: 'Vierspänner', cost: 5000, capacity: 200, transportMode: 'land', speed: 4 },
|
||||
{ tr: 'raft', name: 'Floß', cost: 100, capacity: 25, transportMode: 'water', speed: 1 },
|
||||
{ tr: 'sailing_ship', name: 'Segelschiff', cost: 500, capacity: 200, transportMode: 'water', speed: 3 },
|
||||
// build times (in minutes): 60, 90, 180, 300, 720, 120, 1440
|
||||
{ tr: 'cargo_cart', name: 'Lastkarren', cost: 100, capacity: 20, transportMode: 'land', speed: 1, buildTimeMinutes: 60 },
|
||||
{ tr: 'ox_cart', name: 'Ochsenkarren', cost: 200, capacity: 50, transportMode: 'land', speed: 2, buildTimeMinutes: 90 },
|
||||
{ tr: 'small_carriage', name: 'kleine Pferdekutsche', cost: 300, capacity: 35, transportMode: 'land', speed: 3, buildTimeMinutes: 180 },
|
||||
{ tr: 'large_carriage', name: 'große Pferdekutsche', cost: 1000, capacity: 100, transportMode: 'land', speed: 3, buildTimeMinutes: 300 },
|
||||
{ tr: 'four_horse_carriage', name: 'Vierspänner', cost: 5000, capacity: 200, transportMode: 'land', speed: 4, buildTimeMinutes: 720 },
|
||||
{ tr: 'raft', name: 'Floß', cost: 100, capacity: 25, transportMode: 'water', speed: 1, buildTimeMinutes: 120 },
|
||||
{ tr: 'sailing_ship', name: 'Segelschiff', cost: 500, capacity: 200, transportMode: 'water', speed: 3, buildTimeMinutes: 1440 },
|
||||
];
|
||||
|
||||
const politicalOfficeBenefitTypes = [
|
||||
@@ -897,16 +898,26 @@ export const initializeLearnerTypes = async () => {
|
||||
|
||||
export const initializeVehicleTypes = async () => {
|
||||
for (const v of vehicleTypes) {
|
||||
await VehicleType.findOrCreate({
|
||||
where: { tr: v.tr },
|
||||
defaults: {
|
||||
const existing = await VehicleType.findOne({ where: { tr: v.tr } });
|
||||
if (!existing) {
|
||||
await VehicleType.create({
|
||||
tr: v.tr,
|
||||
cost: v.cost,
|
||||
capacity: v.capacity,
|
||||
transportMode: v.transportMode,
|
||||
speed: v.speed,
|
||||
},
|
||||
});
|
||||
buildTimeMinutes: v.buildTimeMinutes,
|
||||
});
|
||||
} else {
|
||||
// ensure new fields like cost/buildTime are updated if missing
|
||||
await existing.update({
|
||||
cost: v.cost,
|
||||
capacity: v.capacity,
|
||||
transportMode: v.transportMode,
|
||||
speed: v.speed,
|
||||
buildTimeMinutes: v.buildTimeMinutes,
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user