/* eslint-disable*/
'use strict';

module.exports = dc => {
   const DataTypes = dc.ORM;
   const sequelize = dc.orm;
   const CameraAbilityBind = sequelize.define("cameraAbilityBind", {
      id: {
         type: DataTypes.INTEGER,
         allowNull: false,
         defaultValue: null,
         comment: null,
         primaryKey: true,
         field: "id",
         autoIncrement: true,
         unique: "camera_ability_bind_id_uindex"
      },
      cameraId: {
         type: DataTypes.INTEGER,
         allowNull: false,
         defaultValue: null,
         comment: null,
         primaryKey: false,
         field: "camera_id",
         autoIncrement: false,
         references: {
            key: "id",
            model: "camera"
         }
      },
      abilityId: {
         type: DataTypes.INTEGER,
         allowNull: false,
         defaultValue: null,
         comment: null,
         primaryKey: false,
         field: "ability_id",
         autoIncrement: false,
         references: {
            key: "id",
            model: "cameraAbility"
         }
      }
   }, {
      tableName: "camera_ability_bind",
      comment: "",
      indexes: []
   });
   dc.models.CameraAbilityBind = CameraAbilityBind;

   const Camera = dc.models.Camera;
   const CameraAbility = dc.models.CameraAbility;
   Camera.belongsToMany(CameraAbility, { through: CameraAbilityBind, foreignKey: 'cameraId', otherKey: 'abilityId' });

   return CameraAbilityBind;
};