<commit_before>var colors = require('colors');
var path = require('path');
var Sequelize = require('sequelize');
var connection = require(path.join(__dirname, '../', 'connection'));

var Direccion = connection.import(path.join(__dirname, 'direccion'));
var Marca = connection.import(path.join(__dirname, 'marca'));
var Concesionario = connection.import(path.join(__dirname, 'concesionario'));
var Concesionario_Marca = connection.import(path.join(__dirname, 'concesionario_marca'));
var Modelo = connection.import(path.join(__dirname, 'modelo'));
var Tipo_Persona = connection.import(path.join(__dirname, 'tipo_persona'));
var Persona = connection.import(path.join(__dirname, 'persona'));
var Direccion_Multa = connection.import(path.join(__dirname, 'direccion_multa'));
var Agente_Transito = connection.import(path.join(__dirname, 'agente_transito'));
var Matricula_Vehiculo = connection.import(path.join(__dirname, 'matricula_vehiculo'));
var Multa = connection.import(path.join(__dirname, 'multa'));

// connections =================================================================

Concesionario.belongsTo(Direccion, {foreignKey: 'ID_Direccion'});

Concesionario.belongsToMany(Marca, {as: 'Concesionario', through: Concesionario_Marca, foreignKey: 'ID_Concesionario'});
Marca.belongsToMany(Concesionario, {as: 'Marca', through: Concesionario_Marca, foreignKey: 'ID_Marca'});

Marca.hasMany(Modelo, {as: 'Marcas', foreignKey: 'ID_Marca'});

Tipo_Persona.hasMany(Persona, {as: 'Tipo', foreignKey: 'Tipo_Persona'});
Direccion.hasOne(Persona, {as: 'Direccion', foreignKey: 'ID_Direccion'});

Modelo.belongsToMany(Persona, {as: 'Modelo', through: Matricula_Vehiculo, foreignKey: 'Modelo'});
Persona.belongsToMany(Modelo, {as: 'Propietario', through: Matricula_Vehiculo, foreignKey: 'NIT_Propietario'});

// =============================================================================

exports.Direccion = Direccion;
exports.Marca = Marca;
exports.Concesionario = Concesionario;
exports.Concesionario_Marca = Concesionario_Marca;
exports.Modelo = Modelo;
exports.Tipo_Persona = Tipo_Persona;
exports.Persona = Persona;
exports.Direccion_Multa = Direccion_Multa;
exports.Agente_Transito = Agente_Transito;
exports.Matricula_Vehiculo = Matricula_Vehiculo;
exports.Multa = Multa;


connection.sync({
  force: true, // drop tables before create them
  logging: console.log
}).then(function() {
  console.log("Data base connection done!".bold.green);
  // Direccion.create({
  //   Calle: 'test Calle',
  //   Numero: 12,
  //   Ciudad: 'Pereira',
  //   Departamento: 'Risaralda'
  // });
  // Direccion.create({
  //   Calle: 'test Calle 2',<commit_msg>finished relational model<commit_after>var colors = require('colors');
var path = require('path');
var Sequelize = require('sequelize');
var connection = require(path.join(__dirname, '../', 'connection'));

var Direccion = connection.import(path.join(__dirname, 'direccion'));
var Marca = connection.import(path.join(__dirname, 'marca'));
var Concesionario = connection.import(path.join(__dirname, 'concesionario'));
var Concesionario_Marca = connection.import(path.join(__dirname, 'concesionario_marca'));
var Modelo = connection.import(path.join(__dirname, 'modelo'));
var Tipo_Persona = connection.import(path.join(__dirname, 'tipo_persona'));
var Persona = connection.import(path.join(__dirname, 'persona'));
var Direccion_Multa = connection.import(path.join(__dirname, 'direccion_multa'));
var Agente_Transito = connection.import(path.join(__dirname, 'agente_transito'));
var Matricula_Vehiculo = connection.import(path.join(__dirname, 'matricula_vehiculo'));
var Multa = connection.import(path.join(__dirname, 'multa'));

// connections =================================================================

Concesionario.belongsTo(Direccion, {foreignKey: 'ID_Direccion'});

Concesionario.belongsToMany(Marca, {as: 'Concesionario', through: Concesionario_Marca, foreignKey: 'ID_Concesionario'});
Marca.belongsToMany(Concesionario, {as: 'Marca', through: Concesionario_Marca, foreignKey: 'ID_Marca'});

Marca.hasMany(Modelo, {as: 'Marcas', foreignKey: 'ID_Marca'});

Tipo_Persona.hasMany(Persona, {as: 'Tipo', foreignKey: 'Tipo_Persona'});
Direccion.hasOne(Persona, {as: 'Direccion', foreignKey: 'ID_Direccion'});

Modelo.belongsToMany(Persona, {as: 'Modelo', through: Matricula_Vehiculo, foreignKey: 'Modelo'});
Persona.belongsToMany(Modelo, {as: 'Propietario', through: Matricula_Vehiculo, foreignKey: 'NIT_Propietario'});

Direccion.hasOne(Direccion_Multa, {as: 'Direccion', foreignKey:'ID_Direccion_simple'});

Agente_Transito.belongsTo(Persona, {as: 'NIT', foreignKey: 'NIT_Agente'});

Agente_Transito.belongsToMany(Persona, {as: 'Agente', through: Multa, foreignKey: 'ID_Agente'});
Persona.belongsToMany(Agente_Transito, {as: 'Persona', through: Multa, foreignKey: 'NIT_Persona'});
Multa.belongsTo(Matricula_Vehiculo, {foreignKey: 'Placa'});
Multa.belongsTo(Direccion_Multa, {foreignKey: 'Direccion_Multa'});

// =============================================================================

exports.Direccion = Direccion;
exports.Marca = Marca;
exports.Concesionario = Concesionario;
exports.Concesionario_Marca = Concesionario_Marca;
exports.Modelo = Modelo;
exports.Tipo_Persona = Tipo_Persona;
exports.Persona = Persona;
exports.Direccion_Multa = Direccion_Multa;
exports.Agente_Transito = Agente_Transito;
exports.Matricula_Vehiculo = Matricula_Vehiculo;
exports.Multa = Multa;


connection.sync({
  force: true, // drop tables before create them
  logging: console.log
}).then(function() {
  console.log("Data base connection done!".bold.green);
  // Direccion.create({
  //   Calle: 'test Calle',
  //   Numero: 12,
  //   Ciudad: 'Pereira',
  //   Departamento: 'Risaralda'
  // });
  // Direccion.create({
  //   Calle: 'test Calle 2',
{'fraction_non_alphanumeric': 0.19310344827586207, 'fraction_numerical': 0.0010344827586206897, 'mean_word_length': 7.6453055141579735, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2191468', 'n_tokens_mistral': 2021, 'n_tokens_neox': 2009, 'n_words': 342}