NAME
    Data::Random::Person - Random person objects.

SYNOPSIS
     use Data::Random::Person;

     my $obj = Data::Random::Person->new(%params);
     my @people = $obj->random;

METHODS
  "new"
     my $obj = Data::Random::Person->new(%params);

    Constructor.

    *       "cb_id"

            Callback to adding of id.

            Default value is subroutine which returns "$self-"{'id'}++>.

    *       "cb_name"

            Callback to create person name.

            Default value is subroutine which returns
            "Mock::Person::CZ::name()".

    *       "domain"

            Domain for email.

            Default value is 'example.com'.

    *       "id"

            Minimal id for adding. Only if "mode_id" is set to 1.

            Default value is 1.

    *       "mode_id"

            Boolean value if we are generating id in hash type object.

            Default value is 0.

    *       "num_people"

            Number of generated person records.

            Default value is 10.

    Returns instance of object.

  "random"
     my @people = $obj->random;

    Get random person records.

    Returns instance of Data::Person.

ERRORS
     new():
             From Mo::utils::check_bool():
                     Parameter 'mode_id' must be a bool (0/1).
                             Value: %s
             Parameter 'domain' is not valid.

EXAMPLE
     use strict;
     use warnings;

     use Data::Printer;
     use Data::Random::Person;

     my $obj = Data::Random::Person->new(
             'mode_id' => 1,
             'num_people' => 2,
     );

     my @people = $obj->random;

     # Dump person records to out.
     p @people;

     # Output like:
     # [
     #     [0] Data::Person  {
     #             parents: Mo::Object
     #             public methods (6):
     #                 BUILD
     #                 Mo::utils:
     #                     check_length, check_number_id, check_strings
     #                 Mo::utils::Email:
     #                     check_email
     #                 Readonly:
     #                     Readonly
     #             private methods (0)
     #             internals: {
     #                 email   "jiri.sykora@example.com",
     #                 id      1,
     #                 name    "Jiří Sýkora"
     #             }
     #         },
     #     [1] Data::Person  {
     #             parents: Mo::Object
     #             public methods (6):
     #                 BUILD
     #                 Mo::utils:
     #                     check_length, check_number_id, check_strings
     #                 Mo::utils::Email:
     #                     check_email
     #                 Readonly:
     #                     Readonly
     #             private methods (0)
     #             internals: {
     #                 email   "bedrich.pavel.stepanek@example.com",
     #                 id      2,
     #                 name    "Bedřich Pavel Štěpánek"
     #             }
     #         }
     # ]

DEPENDENCIES
    Class::Utils, Data::Person, Error::Pure, List::Util, Mo::utils,
    Mock::Person::CZ, Text::Unidecode.

REPOSITORY
    <https://github.com/michal-josef-spacek/Data-Random-Person>

AUTHOR
    Michal Josef Špaček <mailto:skim@cpan.org>

    <http://skim.cz>

LICENSE AND COPYRIGHT
    © 2024 Michal Josef Špaček

    BSD 2-Clause License

VERSION
    0.02

