martinsdeee
5/19/2015 - 6:40 PM

Faker Person - LV

Faker Person - LV

<?php

namespace Faker\Provider\lv_LV;

use Faker\Calculator\Luhn;

class Person extends \Faker\Provider\Person
{

    protected static $firstNameMale = array(
        'Enno', 'Ernests', 'Ero', 'Ervis',
        'Mārtiņš', 'Ivars', 'Kārlis', 'Ādams',
        'Āris', 'Ēriks', 'Enriko', 'Enriks', 'Ģirts',
        'Jānis', 'Pēteris', 'Olafs', 'Leons', 'Fēliks',
        'Edijs', 'Gunārs',
        // below are unknown gender firstnames
    );

    protected static $firstNameFemale = array(
        'Āra', 'Daina', 'Daiga', 'Linda', 'Anita', 'Anete',
        'Ārika', 'Čarita', 'Ērika', 'Ēva', 'Ēvī', 'Īda',
        'Īva', 'Īģe', 'Ņikita', 'Una', 'Katrīna',
        'Žaklīna', 'Žanna', 'Žaneta', 'Žanete',
        'Daira', 'Līga', 'Agnese'
        // below are unknown gender firstnames
    );


    protected static $lastName = array(
        'Aiviekste',
        'Cauna',
        'Egle',
        'Gauja',
        'Karma',
        'Krauja',
        'Krava',
        'Kļava',
        'Laipa',
        'Lapsa',
        'Lauva',
        'Liepa',
        'Līdaka',
        'Ogle',
        'Ogre',
        'Plinte',
        'Rauna',
        'Riepa',
        'Rūsa',
        'Saule',
        'Skanda',
        'Skava',
        'Skudra',
        'Skuja',
        'Stiga',
        'Strenga',
        'Stīga',
        'Sūna',
        'Upe',
        'Vasara',
        'Vīksna',
        'Vīģe',
        'Zebiekste',
        'Zemene',
        'Ziema',
    );

    public function driverLicence()
    {
        return $this->bothify("??######");
    }

    public function passportNumber()
    {
        return $this->bothify("??#######");
    }

    /**
     * National Personal Identity number (personas kods)
     * @link https://en.wikipedia.org/wiki/National_identification_number#Latvia
     * @param \DateTime $birthdate
     * @return string on format XXXXXX-XXXXX
     */
    public function personalIdentityNumber(\DateTime $birthdate = null)
    {
        if (!$birthdate) {
            $birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
        }

        $datePart = $birthdate->format('dmy');
        $randomDigits = (string) static::numerify('####');

        $checksum = Luhn::computeCheckDigit($datePart . $randomDigits);

        return $datePart . '-' . $randomDigits . $checksum;
    }
}