<?php

/*
* @copyright Copyright (C) 2005-2009 Keyboard Monkeys Ltd. http://www.kb-m.com
* @license http://creativecommons.org/licenses/BSD/ BSD License
* @author Keyboard Monkey Ltd
* @since  CommunityID 0.9
* @package CommunityID
* @packager Keyboard Monkeys
*/

/**
* This scripts creates fake user (non-admin) accounts, with the test flag set to 1.
*/

define('APP_DIR', dirname(__FILE__) . '/..');

/**
* Number of users to create
*/
define('NUM_USERS', 1000);

require APP_DIR . '/Application.php';

Application::setIncludePath();
Application::setAutoLoader();
Application::setConfig();
Application::setLogger();
Application::setDatabase();

class GenerateRandomUsers
{
    private $_names;
    private $_numNames;

    public function __construct()
    {
        $this->_names = file(dirname(__FILE__).'/../libs/Monkeys/tests/names.txt');
        $this->_numNames = count($this->_names);
    }

    public function generate()
    {
        $users = new Users_Model_Users();
        for ($i = 0; $i < NUM_USERS ; $i++) {
            $confirmed = array_rand(array(true, false));

            $firstname = trim($this->_names[rand(0, $this->_numNames)]);
            $username = strtolower(substr($firstname, 0, 4));
            $user = $users->createRow();

            $user->test                   = 1;
            $user->username               = $username;
            $user->openid                 = "http://localhost/communityid/identity/$username";
            $user->accepted_eula          = $confirmed? 1 : 0;
            $user->registration_date      = date('Y-m-d', time() - rand(0, 365) * 24 * 60 * 60);
            $user->firstname              = $firstname;
            $user->lastname               = trim($this->_names[rand(0, $this->_numNames)]);
            $user->email                  = "$username@mailinator.com";
            $user->role                   = $confirmed? Users_Model_User::ROLE_REGISTERED : Users_Model_User::ROLE_GUEST;
            $user->token                  = $confirmed? '' : Users_Model_User::generateToken();
            $user->save();
        }
    }
}

$generate = new GenerateRandomUsers();
$generate->generate();