use Modern::Perl;

return {
    bug_number => 28786,
    description => "Add syspref TwoFactorAuthentication, fields secret and auth_method",
    up => sub {
        my ($args) = @_;
        my ($dbh, $out) = @$args{qw(dbh out)};

        $dbh->do(q{
            INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES
            ('TwoFactorAuthentication', '0', 'NULL', 'Enables two-factor authentication', 'YesNo')
        });

        if( !column_exists( 'borrowers', 'secret' ) ) {
          $dbh->do(q{
              ALTER TABLE borrowers ADD COLUMN `secret` MEDIUMTEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Secret for 2FA' AFTER `password`
          });
        }

        if( !column_exists( 'deletedborrowers', 'secret' ) ) {
          $dbh->do(q{
              ALTER TABLE deletedborrowers ADD COLUMN `secret` MEDIUMTEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Secret for 2FA' AFTER `password`
            });
        }

        if( !column_exists( 'borrowers', 'auth_method' ) ) {
          $dbh->do(q{
              ALTER TABLE borrowers ADD COLUMN `auth_method` ENUM('password', 'two-factor') NOT NULL DEFAULT 'password' COMMENT 'Authentication method' AFTER `secret`
          });
        }

        if( !column_exists( 'deletedborrowers', 'auth_method' ) ) {
          $dbh->do(q{
              ALTER TABLE deletedborrowers ADD COLUMN `auth_method` ENUM('password', 'two-factor') NOT NULL DEFAULT 'password' COMMENT 'Authentication method' AFTER `secret`
          });
        }
    },
};
