text: // See http://docs.sequelizejs.com/en/latest/docs/models-definition/
  // for more of what you can do here.
  const Sequelize = require('sequelize');
  const DataTypes = Sequelize.DataTypes;
  
  
  module.exports = function (app) {
  
    // config Database
    const sequelize = app.get('sequelizeClient');
  
    // define table object
    const landingpages = sequelize.define('landingpages',
      {
  
       id:{
          type:DataTypes.INTEGER,
          primaryKey:true,
          autoIncrement:true,
          allowNull: false,
          unique: true
  
       },
       code:{
          type:DataTypes.STRING,
          allowNull:false,
          set(val){
            this.setDataValue('code',val.toLowerCase())
          }
       },
       name:{
          type:DataTypes.STRING,
          allowNull:false,
          validate:{
            notEmpty:{
              args:true,
              msg:"Vui lòng nhập tên"
            },
            len: [4,100]
  
          }
       },
       /* deal - giftcode - loyal - affiliate - event	 */
       type:{
         type:DataTypes.STRING,
         allowNull:true,
         defaultValue:null
       },
  
       status:{
         type:DataTypes.TINYINT,
         defaultValue:1
       },
  
       is_deleted:{
         type:DataTypes.TINYINT,
         defaultValue:0
       },
  
  
       company_id:{
         type:DataTypes.INTEGER,
         defaultValue:0
       },
  
       creator_id:{
         type:DataTypes.INTEGER,
         defaultValue:0
       },
  
       deleted_by:{
         type:DataTypes.INTEGER,
         defaultValue:0
       },
  
       date_created:{
        type:DataTypes.DATE,
        defaultValue: Sequelize.NOW(),
        allowNull: true
     },
  
     date_modified:{
        type:DataTypes.DATE,
        defaultValue: Sequelize.NOW(),
        allowNull: true
     },
  
     date_deleted:{
        type:DataTypes.DATE,
        allowNull: true
     },
  
  
       price:{
         type:DataTypes.DECIMAL('8,2'),
         defaultValue:0
       },
  
  
  
      json:{
        type:DataTypes.TEXT,
        allowNull:true,
        defaultValue:null,
        get(){
          var json = this.getDataValue('json');
          json = json !== null ? json : '{}';
  
           // 'this' allows you to access attributes of the instance
          return JSON.parse(json);
        }
      }
    }
    )
  
    return landingpages;
  
  
  
  };
  