82 lines
4.3 KiB
JavaScript
82 lines
4.3 KiB
JavaScript
// init-document-types.js - Инициализация типов документов
|
||
const fs = require('fs');
|
||
const path = require('path');
|
||
|
||
function initializeDocumentTypes(db) {
|
||
const documentTypes = [
|
||
{ name: 'Приказ', description: 'Распорядительный документ' },
|
||
{ name: 'Распоряжение', description: 'Распорядительный документ' },
|
||
{ name: 'Инструкция', description: 'Нормативный документ' },
|
||
{ name: 'Положение', description: 'Нормативный документ' },
|
||
{ name: 'Договор', description: 'Юридический документ' },
|
||
{ name: 'Соглашение', description: 'Юридический документ' },
|
||
{ name: 'Акт', description: 'Документ подтверждения факта' },
|
||
{ name: 'Служебная записка', description: 'Внутренний документ' },
|
||
{ name: 'Заявление', description: 'Обращение' },
|
||
{ name: 'Отчет', description: 'Отчетный документ' },
|
||
{ name: 'План', description: 'Плановый документ' },
|
||
{ name: 'Программа', description: 'Плановый документ' },
|
||
{ name: 'Протокол', description: 'Документ собрания' },
|
||
{ name: 'Решение', description: 'Документ коллегиального органа' },
|
||
{ name: 'Письмо', description: 'Корреспонденция' },
|
||
{ name: 'Справка', description: 'Информационный документ' },
|
||
{ name: 'Выписка', description: 'Копия части документа' },
|
||
{ name: 'Копия', description: 'Копия документа' },
|
||
{ name: 'Проект', description: 'Проект документа' },
|
||
{ name: 'Шаблон', description: 'Шаблон документа' }
|
||
];
|
||
|
||
// Создаем таблицу если её нет
|
||
db.run(`
|
||
CREATE TABLE IF NOT EXISTS document_types (
|
||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
name TEXT NOT NULL,
|
||
description TEXT,
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||
)
|
||
`, (err) => {
|
||
if (err) {
|
||
console.error('❌ Ошибка создания таблицы типов документов:', err);
|
||
return;
|
||
}
|
||
|
||
console.log('✅ Таблица типов документов создана/проверена');
|
||
|
||
// Проверяем, есть ли уже типы документов
|
||
db.get("SELECT COUNT(*) as count FROM document_types", [], (err, result) => {
|
||
if (err) {
|
||
console.error('❌ Ошибка проверки типов документов:', err);
|
||
return;
|
||
}
|
||
|
||
if (result.count === 0) {
|
||
console.log('📄 Добавление типов документов...');
|
||
|
||
const insertPromises = documentTypes.map(type => {
|
||
return new Promise((resolve, reject) => {
|
||
db.run(
|
||
"INSERT INTO document_types (name, description) VALUES (?, ?)",
|
||
[type.name, type.description],
|
||
(err) => {
|
||
if (err) reject(err);
|
||
else resolve();
|
||
}
|
||
);
|
||
});
|
||
});
|
||
|
||
Promise.all(insertPromises)
|
||
.then(() => {
|
||
console.log(`✅ Добавлено ${documentTypes.length} типов документов`);
|
||
})
|
||
.catch(error => {
|
||
console.error('❌ Ошибка добавления типов документов:', error);
|
||
});
|
||
} else {
|
||
console.log(`✅ В базе уже есть ${result.count} типов документов`);
|
||
}
|
||
});
|
||
});
|
||
}
|
||
|
||
module.exports = { initializeDocumentTypes }; |