CentralBackend/scripts/createCompanyUser.js

72 lines
2.6 KiB
JavaScript

const UnitOfWork = require('../database/UnitOfWork');
const argon2 = require('argon2');
async function createCompanyUser() {
// Edit these values directly in code (no env vars)
const companyEmail = 'dummy-company@profitplanet.local';
const companyPassword = 'dummyPass!1234';
const companyName = 'Dummy Company Inc';
const companyPhone = '+490000000001';
const contactPersonName = 'Dummy Contact';
const contactPersonPhone = '+490000000002';
const uow = new UnitOfWork();
await uow.start();
try {
const [existing] = await uow.connection.query(
`SELECT id FROM users WHERE email = ? AND user_type = 'company' LIMIT 1`,
[companyEmail]
);
const hashed = await argon2.hash(companyPassword);
let userId;
if (existing.length) {
userId = existing[0].id;
await uow.connection.query(
`UPDATE users SET password = ? WHERE id = ?`,
[hashed, userId]
);
console.log('✅ Company user password updated');
} else {
// Create base user record
const [userRes] = await uow.connection.query(
`INSERT INTO users (email, password, user_type, role, created_at) VALUES (?, ?, 'company', 'user', NOW())`,
[companyEmail, hashed]
);
userId = userRes.insertId;
// Create company profile (adjust column names if schema differs)
await uow.connection.query(
`INSERT INTO company_profiles (user_id, company_name, phone, contact_person_name, contact_person_phone)
VALUES (?, ?, ?, ?, ?)`,
[userId, companyName, companyPhone, contactPersonName, contactPersonPhone]
);
// Initialize user status (defaults: not verified, not completed)
await uow.connection.query(
`INSERT INTO user_status (user_id, status, is_admin_verified, email_verified, profile_completed, documents_uploaded, contract_signed)
VALUES (?, 'active', 0, 0, 0, 0, 0)`,
[userId]
);
// Initialize user settings
await uow.connection.query(
`INSERT INTO user_settings (user_id) VALUES (?)`,
[userId]
);
console.log('✅ Company user created and initialized');
}
await uow.commit();
return { ok: true, userId, email: companyEmail };
} catch (error) {
await uow.rollback(error);
console.error('💥 Failed to create company user:', error);
throw error;
}
}
module.exports = createCompanyUser;