Remove outdated documentation files for companies and migration guide; implement server session management features including server assignment and session status updates; enhance database schema for servers and server sessions with new fields and validation; add auto-assign functionality for unassigned sessions.

This commit is contained in:
2025-10-06 15:59:55 +05:00
parent 9e4bc7b0f8
commit a49129f643
16 changed files with 2332 additions and 483 deletions
+46
View File
@@ -4,6 +4,8 @@ import { authController } from "./controllers/auth";
import { sessionController } from "./controllers/session";
import { companyController } from "./controllers/company";
import { branchController } from "./controllers/branch";
import { serverController } from "./controllers/server";
import { serverSessionService } from "./services/serverSession";
const app = new Elysia();
@@ -18,9 +20,53 @@ app.use(authController);
app.use(sessionController);
app.use(companyController);
app.use(branchController);
app.use(serverController);
app.listen(3000);
console.log(
`🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
);
// Запуск фоновой задачи для автоматического назначения серверов
const AUTO_ASSIGN_INTERVAL_MS = parseInt(
process.env.AUTO_ASSIGN_INTERVAL_MS || "1000",
10
); // 1 секунда по умолчанию
async function autoAssignServersTask() {
try {
const results = await serverSessionService.autoAssignServers();
if (results.total > 0) {
console.log(
`[${new Date().toISOString()}] 🎯 Auto-assign: ${
results.assigned
} assigned, ${results.failed} failed из ${results.total}`
);
if (results.errors.length > 0) {
console.error(
`[${new Date().toISOString()}] ❌ Ошибки назначения:`,
results.errors
);
}
}
} catch (error) {
console.error(
`[${new Date().toISOString()}] ❌ Ошибка auto-assign:`,
error instanceof Error ? error.message : error
);
}
// Планируем следующий запуск
setTimeout(autoAssignServersTask, AUTO_ASSIGN_INTERVAL_MS);
}
// Запускаем через 1 секунду после старта сервера
setTimeout(() => {
console.log(
`[${new Date().toISOString()}] 🤖 Запуск фоновой задачи auto-assign (интервал: ${AUTO_ASSIGN_INTERVAL_MS}ms)`
);
autoAssignServersTask();
}, 1000);