Хранение инвайт кодов
Хранение инвайтов
Название сервиса
Таблица
terra_invite_service.invite
Скрипт для создания
create table terra_invite_service.invite
(
uuid uuid default uuid_generate_v4() not null constraint pk_uuid primary key constraint unique_uuid unique,
token text not null,
token_status bigint not null,
token_role bigint not null,
token_another_role bigint not null,
expiration_time timestamp,
user_id uuid,
entity_id integer,
created_at timestamp with time zone,
updated_at timestamp with time zone,
deleted_at timestamp with time zone,
one_off boolean default false
);
create unique index idx_terra_invite_service_invite_token
on terra_invite_service.invite (token);
create index idx_terra_invite_service_invite_deleted_at
on terra_invite_service.invite (deleted_at);
create index invite_token_lower_index
on terra_invite_service.invite (token);
create index invite_token_lower_trim_index
on terra_invite_service.invite (lower(TRIM(BOTH FROM token)));
Описание столбцов
| Столбец |
Тип |
Описание |
Обязательность |
Пример |
| uuid |
uuid |
Идентификатор токена |
✅ |
6b771649-7ae0-4189-8e90-ae270e12eac5 |
| token |
text |
Токен |
✅ |
S6ia2fYG |
| token_status |
int |
Статус инвайта |
✅ |
0 |
| token_role |
int |
Обозначение к какому сервису относится инвайт |
✅ |
1 |
| token_another_role |
int |
Пользовательская роль инвайта |
✅ |
4 |
| expiration_time |
timestamp |
Время, когда инвайт будет просрочен |
❌ |
2025-01-26 01:22:14.027830 +00:00 |
| user_id |
uuid |
Идентификатор пользователя, который ввел инвайт |
❌ |
ee7b8bc1-ad82-437c-8e10-726d1c141766 |
| entity_id |
int |
Идентификатор сущности к которой принадлежит инвайт |
✅ |
21004 |
| created_at |
timestamp |
Дата создания токена |
✅ |
2025-01-26 01:22:14.027830 +00:00 |
| updated_at |
timestamp |
Дата обновления токена |
✅ |
2025-01-26 01:22:14.027830 +00:00 |
| deleted_at |
timestamp |
Дата удаления токена |
❌ |
2025-01-26 01:22:14.027830 +00:00 |
| one_off |
bool |
Флаг обозначающий многоразовость токена |
❌ |
true |
Список статусов инвайтов
enum TokenStatus{
TOKEN_IS_ALIVE = 0; // токен можно использовать
TOKEN_HAS_EXPIRED = 1; // токен просрочен
TOKEN_IS_USED = 2; // токен использован
}
enum TokenRole {
USE_ROLE = 0; // выдать человеку новую роль terra_auth_service
REGISTRATION_ON_EVENT = 1; // регистрация на событие terra_event_service
REGISTRATION_ON_FLOW = 2; // регистрация на запуск terra_mentor_service
}
enum TokenAnotherRole {
EMPTY = 0; // не использовать
ADMINISTRATOR = 1; // администратор
SPEAKER = 2; // спикер
MENTOR = 3; // наставник
STUDENT = 4; // студент
CERTIFIED_MENTOR = 5; // сертифицированный наставник
VOLUNTEER = 6; // волонтер
MODERATOR = 7; // модератор
SUPER_USER = 8; // супер пользователь
TEACHER = 9; // преподаватель
VIP = 10; // вип
ORGANIZER = 11; // организатор
SCHOOL_ADMINISTRATOR = 12; // администратор школ
}