El modelo Empresa representa una empresa en Matchify. Incluye información básica sobre la empresa, como el nombre, dirección, teléfono, email, sitio web, descripción, y la industria a la que pertenece.

import { DataTypes } from 'sequelize';
import sequelize from '../config/database.js';
import Industria from './Industria.js';

const Empresa = sequelize.define('Empresa', {
    nombre: {
        type: DataTypes.STRING,
        allowNull: false,
    },
    direccion: {
        type: DataTypes.STRING,
    },
    telefono: {
        type: DataTypes.STRING,
    },
    email: {
        type: DataTypes.STRING,
    },
    sitioWeb: {
        type: DataTypes.STRING,
    },
    descripcion: {
        type: DataTypes.TEXT,
    },
    industriaId: {
        type: DataTypes.INTEGER,
        references: {
            model: Industria,
            key: 'id',
        },
        onUpdate: 'CASCADE',
        onDelete: 'CASCADE',
    },
}, {
    tableName: 'empresas',
    timestamps: true,
});

Empresa.belongsTo(Industria, { foreignKey: 'industriaId', as: 'industria' });

export default Empresa;

Explicación de cada propiedad

  1. nombre: Nombre de la empresa, obligatorio.
  2. direccion: Dirección de la empresa, opcional.
  3. telefono: Número de teléfono de la empresa, opcional.
  4. email: Correo electrónico de la empresa, opcional.
  5. sitioWeb: Sitio web de la empresa, opcional.
  6. descripcion: Descripción detallada de la empresa, opcional.
  7. industriaId: Referencia a la industria a la que pertenece la empresa, estableciendo una relación con el modelo Industria.

Configuración del modelo

Asociación con Industria

Empresa.belongsTo(Industria, { foreignKey: 'industriaId', as: 'industria' });

Cada Empresa está asociada con una Industria, lo que permite categorizar a la empresa dentro de un sector o industria específico.

Este modelo facilita la administración de la información empresarial y la clasificación por industria en Matchify.