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

User profile

Таблица public.user_profile — профиль и PII пользователя.

Поля

Поле Тип Nullable Индекс Описание
userId int нет UNIQUE user_profile_user_idx FK → users.id
firstName String нет Имя
lastName String нет Фамилия
fullName String да Полное имя (необязательное)
phone String нет UNIQUE user_profile_phone_idx Телефон (открытый)
phoneMasked String нет Маскированный телефон для UI
nationalIdNumber String да UNIQUE user_profile_national_id_idx Номер удостоверения личности (открытый)
nationalIdMasked String да Маскированный ID для UI
languageCode String нет Язык интерфейса (th, en)
avatarUrl String да URL аватара
encryptedPii ByteData да AES-256-GCM блоб с PII (имя, дата рождения, адрес и др.)
encryptPii bool нет Включён ли режим шифрования PII (default: true)
isLocked bool нет Профиль заблокирован оператором от редактирования
lockedAt DateTime да Дата блокировки профиля
accountTier String нет Тир аккаунта (влияет на лимиты)
accountTierOverriddenByAdmin bool нет Тир задан вручную оператором
businessName String да Название бизнеса (для merchant/agent)
taxId String да ИНН / Tax ID (для merchant/agent)
businessCategoryCode String да Код категории бизнеса
isVatPayer bool нет Плательщик НДС (default: false)
termsAcceptedAt DateTime да Дата принятия условий (KYC-флоу)
tags List<String> да Произвольные теги (оператор)
referralAgentId UuidValue да ID агента-реферала
nfcEnabled bool нет Разрешено ли NFC-списание (default: true)
createdAt DateTime нет Дата создания записи
updatedAt DateTime нет Дата последнего изменения

Индексы

Имя индекса Поля Уникальный
user_profile_user_idx userId да
user_profile_phone_idx phone да
user_profile_national_id_idx nationalIdNumber да

PII-поля

Поле Метод защиты Примечание
encryptedPii AES-256-GCM шифрование Хранит имя, дату рождения, адрес и другие персональные данные из KYC
nationalIdNumber Открытый текст Используется для уникальной идентификации; доступен только серверному коду
nationalIdMasked Маскирование Отображается в UI (****1234)
phoneMasked Маскирование Отображается в UI (+66 ** *** 1234)
encryptPii Флаг Если false — PII в открытом виде (режим отладки/миграции); по умолчанию true