title: hasMany called with something that's not an instance of Sequelize.Model
body: <p>as you guys can see my issue is related to the title description, i created a User Model, and a Foto Model in sequelize, basicly a user can shoot many fotos, but each foto can be related to just 1 user.</p>
  
  <p><strong>My User model</strong></p>
  
  <pre><code>    "use strict";
  var sequelize = require('./index');
  var bcrypt = require('bcrypt-nodejs');
  var Foto = require('./Foto');
  
  module.exports = function (sequelize, DataTypes) {
    var User = sequelize.define("User", {
      username: {
        type: DataTypes.STRING,
        allowNull: false,
        unique: true,
        validate: {
          isUnique: function (value, next) {
            var self = this;
            User.find({ where: { username: value } })
              .then(function (user) {
                // reject if a different user wants to use the same username
                if (user &amp;&amp; self.id !== user.id) {
                  return next('username already in use!');
                }
                return next();
              })
              .catch(function (err) {
                return next(err);
              });
          }
        }
      },
  
      email: {
        type: DataTypes.STRING,
        allowNull: false,
        unique: true,
        validate: {
          isUnique: function (value, next) {
            var self = this;
            User.find({ where: { email: value } })
              .then(function (user) {
                // reject if a different user wants to use the same email
                if (user &amp;&amp; self.id !== user.id) {
                  return next('Email already in use!');
                }
                return next();
              })
              .catch(function (err) {
                return next(err);
              });
          }
        }
      },
  
      typeOfUser: {
        type: DataTypes.INTEGER,
        allowNull:true,
        defaultValue:null
      },
  
      country: {
        type: DataTypes.STRING,
        allowNull:true,
        defaultValue:null
      },
  
      birthDate:{
        type: DataTypes.DATEONLY,
        allowNull:true,
        defaultValue:null
      },
  
      reports: {
        type: DataTypes.INTEGER,
        defaultValue: 0
      },
  
      points: {
        type: DataTypes.INTEGER,
        defaultValue: 0
      },
  
      password: {
        type: DataTypes.STRING,
        allowNull:false
      },
  
      numberFotos: {
        type: DataTypes.INTEGER,
        defaultValue: 0
      }
    }, {
        classMethods: {
          generateHash: function (password) {
            return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
          },
  
        },
        instanceMethods: {
          validPassword: function (password) {
            return bcrypt.compareSync(password, this.password);
          }
        }
  
  
      });
  
    User.hasMany(Foto,{as: 'fotos', foreignKey: 'userId'})
  
    return Foto;
  }
  </code></pre>
  
  <p><strong>My foto model</strong></p>
  
  <pre><code>"use strict";
  var sequelize = require('./index');
  var bcrypt = require('bcrypt-nodejs');
  var User = require('./User');
  
  
  module.exports = function (sequelize, DataTypes) {
    var Foto = sequelize.define("Foto", {
      reports: {
        type: DataTypes.INTEGER,
        defaultValue: 0
      },
      image: {
        type: DataTypes.STRING,
        allowNull: false
      },
      date: {
        type: DataTypes.DATE,
        allowNull:true
      },
      position: {
        type: DataTypes.RANGE,
        allowNull: true
      }
    });
  
    Foto.belongsTo(User, {foreignKey: 'userId'});
  
    return Foto;
  }
  </code></pre>