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);
};

Explicación de cada función

  1. createEmpresa(empresaData):
  2. createEmpresaUsuario({ empresaId, usuarioId, rolId }):
  3. getOrCreateAdminRole():
  4. findEmpresaUsuarioByUserId(id):
  5. findCompanyById(empresaId):