feat: add TTR simulator and calculation engine, enhance member model with TTR adjustment constant
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 59s

This commit is contained in:
Torsten Schulz (local)
2026-10-05 15:18:10 +02:00
parent 6fa54163f6
commit 6d982add75
21 changed files with 466 additions and 27 deletions

View File

@@ -12,7 +12,9 @@ const TEST_USERS = [
email: 'admin@test.de',
password: 'test123',
role: 'admin',
isOwner: false
isOwner: false,
isHidden: true,
suppressEmails: true
},
{
email: 'trainer@test.de',
@@ -75,11 +77,21 @@ async function createTestUsers() {
user = await User.create({
email: userData.email,
password: userData.password,
isActive: true
isActive: true,
isHidden: Boolean(userData.isHidden),
suppressEmails: Boolean(userData.suppressEmails),
});
report.push(' ✓ User created');
}
if (user.isHidden !== Boolean(userData.isHidden) || user.suppressEmails !== Boolean(userData.suppressEmails)) {
await user.update({
isHidden: Boolean(userData.isHidden),
suppressEmails: Boolean(userData.suppressEmails),
});
report.push(' ✓ Updated test account visibility and email settings');
}
// Check if user is already in club
let userClub = await UserClub.findOne({
where: {
@@ -145,4 +157,3 @@ createTestUsers().catch(err => {
process.exit(1);
});

View File

@@ -1,6 +1,29 @@
import sequelize from '../database.js';
const migrations = [
{
id: '20261005_add_hidden_test_user_flags',
async up() {
const [hiddenColumns] = await sequelize.query("SHOW COLUMNS FROM `user` LIKE 'is_hidden'");
if (hiddenColumns.length === 0) {
await sequelize.query('ALTER TABLE `user` ADD COLUMN `is_hidden` TINYINT(1) NOT NULL DEFAULT 0');
}
const [emailSuppressionColumns] = await sequelize.query("SHOW COLUMNS FROM `user` LIKE 'suppress_emails'");
if (emailSuppressionColumns.length === 0) {
await sequelize.query('ALTER TABLE `user` ADD COLUMN `suppress_emails` TINYINT(1) NOT NULL DEFAULT 0');
}
},
},
{
id: '20261005_add_member_ttr_adjustment_constant',
async up() {
const [columns] = await sequelize.query("SHOW COLUMNS FROM `member` LIKE 'ttr_adjustment_constant'");
if (columns.length === 0) {
await sequelize.query('ALTER TABLE `member` ADD COLUMN `ttr_adjustment_constant` DECIMAL(6,2) NOT NULL DEFAULT 16');
}
},
},
{
id: '20260922_add_match_player_cancellations',
async up() {