Skip to content

Хранение инвайт кодов

Хранение инвайтов#

Название сервиса#

terra_invite_servie

Таблица#

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; // администратор школ
}