#!/usr/bin/perl
#-*-cperl-*-

use strict;

use lib '/app/tools/common/lib';
use Common::Consts;

use lib '/app/tools/data_classes/lib';
use User::User;

create_new_user();

sub create_new_user {
    die "\nDeprecated! User new_raptor_user_quick.pl instead\n\n";

    print "\nCreate new user...\n\n";

    my $client_id = getInput("Enter Client ID: ");

    my $email;
    my $new_user;

  EMAIL:
    $email = getInput("Enter Email: ");
    $new_user = new User::User( email => $email );
    $new_user->ClientID($client_id);

    if ( $new_user && $new_user->UserID ) {
        print "\nError: Email already exists. Select another.\n\n";
        goto EMAIL;
    }

    my $first_name = getInput("Enter First Name: ");
    my $last_name  = getInput("Enter Last Name: ");

  ACCESS_LEVEL:
    print "Access Levels:\n";
    print "  1 - RoyaltyShare Admin\n";
    print "  2 - RoyaltyShare Rep\n";
    print "  3 - Client Admin\n";
    print "  4 - Client Rep\n";
    print "  5 - Client User\n";
    my $access_level = getInput("Choose access level (1-5): ");
    chomp($access_level);

    if ( $access_level !~ /^[12345]$/ ) {
        print "Error: Invalid entry, select 1, 2, 3, 4, or 5.\n\n";
        goto ACCESS_LEVEL;
    }

    # my $password = getInput("Enter Password: ");

    $new_user->Email($email);
    $new_user->FirstName($first_name);
    $new_user->LastName($last_name);
    $new_user->AccessLevel($access_level);

  CONFIRM:
    print "Are you sure you want to create this user? (Y/n) ";
    my $confirm = <STDIN>;
    chomp($confirm);

    if ( $confirm =~ /^y(es)?$/i ) {
        if ( $new_user->Save() ) {

            # $new_user->SetPassword($password);
            # $new_user->SetAccessLevel($access_level);
            print "Success! A new user has been created (user_id=" . $new_user->UserID . ")\n\n";
        } else {
            print "Error: a database error occurred, please contact your administrator.\n";
        }
    } elsif ( $confirm =~ /^n(o)?$/i ) {
        print "No user record created.\n";
    } else {
        goto CONFIRM;
    }

    return 1;
}

sub getInput {
    my $prompt = shift;
    print $prompt;
    my $input = <STDIN>;
    chomp($input);
    return $input;
}

