Перейти к содержанию

Пользовательские данные

В этом разделе описаны встроенные паттерны для генерации пользовательских данных.

UserRuPatterns

Паттерны для пользователей из РФ (ФИО, телефон, документы, банковские данные).

ФИО

first_name = r"^[А-ЯЁ][а-яё]{4,9}$"
last_name = r"^[А-ЯЁ][а-яё]{4,12}$"
middle_name = r"^[А-ЯЁ][а-яё]{4,12}$"

Контакты

phone = r"^\+79\d{9}$"
phone_sp = r"^\+7 \(9\d{2}\) \d{3}-\d{2}-\d{2}$"

Документы

passport_ru = r"^\d{4} \d{6}$"
snils = r"^\d{3}-\d{3}-\d{3} \d{2}$"
inn_individual = r"^\d{12}$"
inn_legal_entity = r"^\d{10}$"
ogrn = r"^\d{13,15}$"
bik = r"^04\d{7}$"
kpp = r"^\d{9}$"
account_number = r"^\d{20}$"
car_plate_ru = r"^[АВЕКМНОРСТУХ]\d{3}[АВЕКМНОРСТУХ]{2}\d{2,3}$"

Финансы

card_number = r"^\d{4} \d{4} \d{4} \d{4}$"
cvc = r"^\d{3}$"
pin_code = r"^\d{4}$"

UserEnPatterns

Паттерны для англоязычных пользователей (США: SSN, Zip-code, ITIN).

ФИО

first_name = r"^[A-Z][a-z]{4,9}$"
last_name = r"^[A-Z][a-z]{4,12}$"
middle_name = r"^[A-Z][a-z]{4,12}$"

Контакты

phone = r"^\+1\d{10}$"
phone_sp = r"^\+1 \(\d{3}\) \d{3}-\d{4}$"

Документы

ssn = r"^\d{3}-\d{2}-\d{4}$"
zip_code = r"^\d{5}$"
zip_code_ext = r"^\d{5}-\d{4}$"
itin = r"^9\d{2}-\d{2}-\d{4}$"
passport_us = r"^[A-Z0-9]{9}$"
state_code = r"^[A-Z]{2}$"
iban = r"^[A-Z]{2}\d{2}[A-Z0-9]{14,30}$"
swift = r"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"

Финансы

card_number = r"^\d{4}-\d{4}-\d{4}-\d{4}$"
cvc = r"^\d{3}$"
pin_code = r"^\d{4}$"

Общие паттерны

Общие паттерны для пользователей (email, пароли, крипто-адреса).

email = r"^[a-z0-9._%+-]{5,20}@(gmail\.com|mail\.ru)$"
password_lat = r"^[A-Za-z0-9@$!%*?&]{8,15}$"
password_cyr = r"^[А-Яа-я0-9@$!%*?&]{8,15}$"
social_username = r"^@[A-Za-z0-9_]{5,32}$"
btc_address = r"^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$"
btc_address_segwit = r"^bc1[a-z0-9]{25,39}$"

Пример использования

```python from fucktar.generator import BasePattern from fucktar.config import PatternConfig from fucktar.default_patterns.users import UserRuPatterns

class UserPatterns(BasePattern[User]): first_name = UserRuPatterns.first_name last_name = UserRuPatterns.last_name email = UserRuPatterns.email phone = UserRuPatterns.phone passport = UserRuPatterns.passport_ru card_number = UserRuPatterns.card_number

pattern_config = PatternConfig(
    scope="users",
    unique_fields=["email", "passport"]
)