const system = require("../../system");
const settings = require("../../../config/settings");
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
module.exports = (db, DataTypes) => {
  return db.define("user", {
    openId: DataTypes.STRING,
    unionId: DataTypes.STRING,
    appkey: DataTypes.STRING,
    userName: DataTypes.STRING,
    password: DataTypes.STRING,
    nickName: {
      type: DataTypes.STRING,
      allowNull: true,
    },
    headUrl: DataTypes.STRING,
    // from: DataTypes.STRING,
    isAdmin: {
      type: DataTypes.BOOLEAN,
      defaultValue: false
    },
    isEnabled: {
      type: DataTypes.BOOLEAN,
      defaultValue: true
    },
    sex: {
      type: DataTypes.ENUM,
      allowNull: true,
      values: Object.keys(uiconfig.config.pdict.sex),
    },
    onlyCode: DataTypes.STRING,
    mobile: DataTypes.STRING,
    email: DataTypes.STRING(50),
    companyName: DataTypes.STRING, //用户公司名称
    companyAddr: DataTypes.STRING, //公司地址
    isPartner: {
      type: DataTypes.BOOLEAN,
      defaultValue: false
    },
    isAgreePartner: {
      type: DataTypes.BOOLEAN,
      defaultValue: false
    },
    isEnt: {
      type: DataTypes.BOOLEAN,
      defaultValue: false
    },
    isBpoManager: {
      type: DataTypes.BOOLEAN,
      defaultValue: false
    },
    utype: DataTypes.INTEGER,
    userId3rd: DataTypes.STRING(64),
    appId3rd: DataTypes.STRING(64),
    userCode3rd: DataTypes.STRING(64),
    branchCode3rd: DataTypes.STRING(64),
    department_id : DataTypes.INTEGER,

  }, {
    paranoid: true, //假的删除
    underscored: true,
    version: true,
    freezeTableName: true,
    //freezeTableName: true,
    // define the table's name
    tableName: 'p_user',
    validate: {

    },
    indexes: [
      // Create a unique index on email
      //  {
      //    unique: true,
      //    fields: ['email']
      //  },
      //
      //  // Creates a gin index on data with the jsonb_path_ops operator
      //  {
      //    fields: ['data'],
      //    using: 'gin',
      //    operator: 'jsonb_path_ops'
      //  },
      //
      //  // By default index name will be [table]_[fields]
      //  // Creates a multi column partial index
      //  {
      //    name: 'public_by_author',
      //    fields: ['author', 'status'],
      //    where: {
      //      status: 'public'
      //    }
      //  },
      //
      //  // A BTREE index with a ordered field
      //  {
      //    name: 'title_index',
      //    method: 'BTREE',
      //    fields: ['author', {attribute: 'title', collate: 'en_US', order: 'DESC', length: 5}]
      //  }
    ]
  });
}
