var path = require('path');

var url = process.env.DATABASE_URL.match(/(.*)\:\/\/(.*?)\:(.*)@(.*)\:(.*)\/(.*)/);
//var url = debugjc.match(/(.*)\:\/\/(.*?)\:(.*)@(.*)\:(.*)\/(.*)/);
var DB_name  = (url[6]||null);
var user     = (url[2]||null);
var pwd      = (url[3]||null);
var protocol = (url[1]||null);
var dialect  = (url[1]||null);
var port     = (url[5]||null);
var host     = (url[4]||null);
var storage  = process.env.DATABASE_STORAGE;

// Cargar modelo ORM
var Sequelize = require('sequelize');

// Usar BBDD SQLite o Postgres
var sequelize = new Sequelize(DB_name, user, pwd,
  { dialect:  protocol,
    protocol: protocol,
    port:     port,
    host:     host,
    storage:  storage,  // solo SQLite (.env)
    omitNull: true      // solo Postgres
  }
);

/*
// Usar Sqlite:
var sequelize = new Sequelize(null, null, null, 
					{dialect: "sqlite", storage: "sportpager.sqlite"});
*/					

// Importar la definicion de la tabla usuarios de usuarios.js

var usuarios_path = path.join(__dirname,'usuarios');
var Usuarios = sequelize.import(usuarios_path);
var dispositivos_path = path.join(__dirname,'dispositivos');
var Dispositivos = sequelize.import(dispositivos_path);
var sportpagers_path = path.join(__dirname,'sportpagers');
var Sportpagers = sequelize.import(sportpagers_path);

exports.Usuarios = Usuarios; // exportar la definicion de la tabla usuarios;
exports.Dispositivos = Dispositivos;
exports.Sportpagers = Sportpagers;
// sequelize.sync() crea e inicializa la tabla usuarios de la DB

sequelize.sync().then(function ()
{
	// ejecuta el manejador una vez creada la tabla
	Usuarios.count().then(function (count)
	{
		if(count === 0)
		{ // la tabla se inicialza solo si está vacía
			Usuarios.create({
				firebase_id: "0123456789",
				nombre: "Juan Carlos Fernández",
				username: "jon",
				password: "asturias",
				creado: "20160709195200",
				actualizado: ""
			})
			.then(function(){console.log('Base de datos inicializada')});
		}
	});

});