The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package <% dist_module %>::Util::Primer;
use strict;
use warnings;
use <% dist_module %>::Util::Random qw(:all);
use Exporter qw(import);
our %EXPORT_TAGS = (
    util => [
        qw(
          prime_database
          )
    ],
);
our @EXPORT_OK = @{ $EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ] };

sub prime_database {
    my $schema = shift;
    my %roles = (can_manage_users => 'Manage users');

    # see README for what those roles mean
    my %user_map = (
        admin => [
            qw(
              can_manage_users
              )
        ],
        norm => [qw()],
    );
    for my $role_name (keys %roles) {
        $roles{$role_name} =
          $schema->resultset('Role')
          ->create({ name => $role_name, display_name => $roles{$role_name} });
    }
    while (my ($user_name, $role_names) = each %user_map) {
        my $user = $schema->resultset('User')
          ->create({ name => $user_name, password => $user_name });
        for my $role_name (@$role_names) {
            $user->add_to_roles($roles{$role_name});
        }
    }
}
1;