def identity_card_number(self):
        """
        Returns 9 character Polish Identity Card Number,
        Polish: Numer Dowodu Osobistego.

        The card number consists of 3 letters followed by 6 digits (for example, ABA300000),
        of which the first digit (at position 3) is the check digit.

        https://en.wikipedia.org/wiki/Polish_identity_card
        """
        identity = []

        for _ in range(3):
            identity.append(self.random_letter().upper())

        # it will be overwritten by a checksum
        identity.append(0)

        for _ in range(5):
            identity.append(self.random_digit())

        identity[3] = checksum_identity_card_number(identity)

        return ''.join(str(character) for character in identity)