package AppUser::Login::MFAConfigForm;
use strict;
use warnings;

use lib '/app/tools/common/lib';
use Common::RSApp;
use RSApache::RSWebApp;
use Common::DB::Item::Client;
use Common::Consts;
use Common::MFA::Util;

use lib '/app/tools/appuser/lib';
use AppUser::DB::Item::User;
use AppUser::DB::Item::UserAccess;
use AppUser::Login::Command::Select;

use lib '/app/tools/rps/lib';
use Common::FormObject;
use base 'Common::FormObject';

sub _init {
    my ( $self, %args ) = @_;

    $self->SUPER::_init(%args);

    my $email;
    my $mfaType;
    my $masterUserID = Common::RSApp::GetMasterUserID();
    if ($masterUserID) {
        my $user = AppUser::DB::Item::User->Lookup( user_id => $masterUserID );
        if ( defined $user ) {
            $email   = $user->email;
            $mfaType = $user->mfa_type;
        }
    }

    $self->{Email}    = Common::FormObject::Scalar::EmailAddress->new( value => $email, required => 1 );
    $self->{MFAType}  = Common::FormObject::Scalar::String->new( value => $mfaType );
    $self->{Token}    = Common::FormObject::Scalar::String->new( required => 1 );
    $self->{Password} = Common::FormObject::Scalar::String->new( required => 1 );
    $self->{Redirect} = Common::FormObject::Scalar::String->new( value    => $args{redirect} );

    return $self;
}

sub saveMFAType {
    my ($self, $mfaType)  = @_;

    my $userObj = AppUser::DB::Item::User->Lookup( email => $self->Email() );
    $userObj->mfa_type($mfaType);
    $userObj->save;
}

sub saveMFAPhoneNumber {
    my ($self, $phone)  = @_;

    my $userObj = AppUser::DB::Item::User->Lookup( email => $self->Email() );
    $userObj->mfa_phone($phone);
    $userObj->save;
}

1;

