table('users'); $table->addColumn('username', 'string', ['limit' => 255, 'null'=> false]) ->addColumn('password', 'string', ['limit' => 255, 'null' => false]) ->addColumn('f_name', 'string', ['limit' => 255, 'null' => false]) ->addColumn('l_name', 'string', ['limit' => 255, 'null' => true]) ->addColumn('email', 'string', ['limit' => 255, 'null' => false]) ->addColumn('avatar', 'string', ['limit' => 255, 'null' => true]) ->addColumn('failed_login_attempts', 'integer', ['null' => false, 'default' => 0]) ->addColumn('locked_until', 'datetime', ['null' => true]) ->addColumn('created_at', 'datetime', ['null' => false, 'default'=>"CURRENT_TIMESTAMP"]) ->addColumn('created_by', 'integer', ['null' => false]) ->addColumn('updated_at', 'datetime', ['null' => true]) ->addColumn('updated_by', 'integer', ['null' => true]) ->addForeignKey('created_by', 'users','id') ->addForeignKey('updated_by', 'users','id') ->addIndex('username', ['unique' => true]) ->addIndex('email', ['unique' => true]) ->create(); } }