Este repositorio centraliza las operaciones relacionadas con el modelo Empresa y EmpresaUsuario en Matchify. Proporciona funciones para crear empresas y usuarios asociados a empresas, buscar empresas y roles, y gestionar la asociación de roles administrativos.
import Empresa from '../models/Empresa.js';
import EmpresaUsuario from '../models/EmpresaUsuario.js';
import Rol from '../models/Rol.js';
export const createEmpresa = async (empresaData) => {
return await Empresa.create(empresaData);
};
export const createEmpresaUsuario = async ({ empresaId, usuarioId, rolId }) => {
return await EmpresaUsuario.create({ empresaId, usuarioId, rolId });
};
export const getOrCreateAdminRole = async () => {
let adminRole = await Rol.findOne({ where: { nombre: 'Admin' } });
if (!adminRole) {
adminRole = await Rol.create({ nombre: 'Admin', descripcion: 'Administrator of the company' });
}
return adminRole;
};
export const findEmpresaUsuarioByUserId = async (id) => {
return await EmpresaUsuario.findOne({ where: { usuarioId: id } });
};
export const findCompanyById = async (empresaId) => {
return await Empresa.findByPk(empresaId);
};
createEmpresa(empresaData):
empresaData.createEmpresaUsuario({ empresaId, usuarioId, rolId }):
EmpresaUsuario asociando un usuario a una empresa con un rol específico.getOrCreateAdminRole():
Admin). Si no existe, lo crea con una descripción de administrador de la empresa.Admin, ya sea encontrado o creado.findEmpresaUsuarioByUserId(id):
EmpresaUsuario una relación de empresa para un usuario específico por su usuarioId.null si no existe.findCompanyById(empresaId):
empresaId.