import { Sequelize } from 'sequelize'; import dotenv from 'dotenv'; dotenv.config(); const sequelize = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASSWORD, { host: process.env.DB_HOST, dialect: 'postgres', define: { timestamps: false }, }); const createSchemas = async () => { await sequelize.query('CREATE SCHEMA IF NOT EXISTS community'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS logs'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS type'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS service'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS forum'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS falukant_data'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS falukant_type'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS falukant_predefine'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS falukant_log'); await sequelize.query('CREATE SCHEMA IF NOT EXISTS chat'); }; const initializeDatabase = async () => { await createSchemas(); const { default: models } = await import('../models/index.js'); await syncModels(models); }; const syncModels = async (models) => { for (const model of Object.values(models)) { await model.sync({ alter: true, force: false }); } }; async function updateFalukantUserMoney(falukantUserId, moneyChange, activity, changedBy = null) { try { const result = await sequelize.query( `SELECT falukant_data.update_money( :falukantUserId, :moneyChange, :activity, :changedBy )`, { replacements: { falukantUserId, moneyChange, activity, changedBy, }, type: sequelize.QueryTypes.SELECT, } ); return { success: true, message: 'Money updated successfully', result }; } catch (error) { console.error('Error updating money:', error); return { success: false, message: error.message }; } } export { sequelize, initializeDatabase, syncModels, updateFalukantUserMoney };