All files / mylog-api/database/models Pilots.js

100% Statements 9/9
100% Branches 0/0
100% Functions 2/2
100% Lines 9/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 932x 2x 4x                                                                                                                                                                   4x 2x 2x 2x 2x   4x    
const Sequelize = require('sequelize');
module.exports = function (sequelize, DataTypes) {
  const Pilot = sequelize.define('Pilots', {
    ID: {
      autoIncrement: true,
      type: DataTypes.INTEGER,
      allowNull: false,
      primaryKey: true
    },
    Name: {
      type: DataTypes.STRING(75),
      allowNull: false
    },
    Surname: {
      type: DataTypes.STRING(75),
      allowNull: false
    },
    Email: {
      type: DataTypes.STRING(100),
      allowNull: false,
      unique: "Email"
    },
    Password: {
      type: DataTypes.STRING(250),
      allowNull: false
    },
    ActivationCode: {
      type: DataTypes.STRING(100),
      allowNull: false,
      unique: "ActivationCode"
    },
    AccountStatus: {
      type: DataTypes.TINYINT,
      allowNull: false,
      defaultValue: 0
    },
    LoginSource: {
      type: DataTypes.STRING(10),
      allowNull: false
    },
    Rank: {
      type: DataTypes.TINYINT,
      allowNull: false
    },
    AirlineID: {
      type: DataTypes.INTEGER,
      allowNull: false
    },
    RegisterDate: {
      type: DataTypes.DATE,
      allowNull: false,
      defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP')
    }
  }, {
    sequelize,
    tableName: 'Pilots',
    timestamps: false,
    indexes: [
      {
        name: "PRIMARY",
        unique: true,
        using: "BTREE",
        fields: [
          { name: "ID" },
        ]
      },
      {
        name: "ActivationCode",
        unique: true,
        using: "BTREE",
        fields: [
          { name: "ActivationCode" },
        ]
      },
      {
        name: "Email",
        unique: true,
        using: "BTREE",
        fields: [
          { name: "Email" },
        ]
      },
    ]
  });
  Pilot.associate = function (models) {
    Pilot.hasMany(models.FlightCrews, { foreignKey: 'PilotID', as: "flightCrews", onDelete: "CASCADE", sourceKey: 'ID' });
    Pilot.hasMany(models.Limitations, { foreignKey: 'PilotID', as: "limitations", onDelete: "CASCADE", sourceKey: 'ID' });
    Pilot.hasMany(models.LogEntries, { foreignKey: 'PilotID', as: "logEntries", onDelete: "CASCADE", sourceKey: 'ID' });
    Pilot.hasMany(models.Simulators, { foreignKey: 'PilotID', as: "simulators", onDelete: "CASCADE", sourceKey: 'ID' });
  };
  return Pilot;
};