# Типы данных

# Сим-карта

```javascript
{
    "id": <int>,
    "iccid": <string>,
    "number": <string>,
    "external_number": <string>,
    "name": <string | null>,
    "balance": <float>,
    "currency": <string>,
    "msu_value": <int | null>,
    "profile": <string>,
    "block": <string>,
    "comment": <string | null>,
    "groups": [
        ... массив объектов типа Группа
    ],
    "limit": {
        "type": <string>,
        "value": <int | null>,
        "used": <int | null>,
        "updated": <int | null>,
        "created": <int | null>
    },
    "tariff": {
        "id": <int>,
        "name": <string>,
        "change_lock": <int | null>,
        "package_auto": <bool>
  },
  "queue_status": <string>
}
```
##### Параметры
| Параметр | Тип | Описание | Примечание |
|-------|----------|---------|---------|
| **id**     | int     | ID сим-карты    |
| **iccid**     | string     | ICCID сим-карты    |
| **number**     | string     | Основной номер сим-карты    |
| **external_number**     | string     | Дополнительный номер сим-карты    |
| **name**     | string, null     | Название сим-карты    |
| **balance**     | float     | Баланс сим-карты    | Для сим профиля TD всегда нулевой
| **currency**     | string     | Валюта сим-карты    |
| **msu_value**     | int, null     | Количество MSU    | Только для профиля TC
| **profile**     | string     | Профиль    |
| **block**     | string     | Тип блокировки    | значения см. ниже
| **comment**     | string, null     | Комментарий системы    |
| **groups**     | array     | Массив групп сим-карты    | см. [Группа](https://kb.novaconnect.kz/books/rukovodstvo-razrabotcika/page/gruppa). Отсутствует в [вэбхук-уведомлениях](https://kb.novaconnect.kz/books/rukovodstvo-razrabotcika/page/uvedomleniia)
| **limit**     | object     | Лимит    |
| **limit.type**     | string     | Тип лимита    | значения см. ниже
| **limit.value**     | int     | Установленное значение лимита    |
| **limit.used**     | float     | Использованный лимит    |
| **limit.updated**     | int (UnixTime)     | Дата обновления поля used    |
| **limit.created**     | int (UnixTime)     | Дата установки лимита    |
| **tariff**     | object     | Инфо о тарифе    |
| **tariff.id**     | int     | ID тарифного плана    |
| **tariff.name**     | string     | Название тарифного плана    |
| **tariff.change_lock**     | bool     | Дата снятия блокировки на смену ТП    |
| **tariff.package_auto**     | bool     | Флаг автоматического подключения пакета при истечении    |
| **queue_status**     | string     | Статус обработки    | Возвращается только в вэб-хуках обработки очереди

##### Значения параметра block
| Значение | Описание |
|-------|----------|
| **n**     | Блокировки нет     |
| **u**     | Добровольная (пользовательская)     |
| **m**     | Блокировка по MSU (только для сим профиля TC)     |
| **p**     | Блокировка по истечения пакета     |
| **f**     | Финансовая блокировка     |
| **g**     | Блокировка оператора/NovaConnect     |

##### Значения параметра limit.type
| Значение | Описание |
|-------|----------|
| **off**     | Лимита нет     |
| **month1**     | Календарный месяц (только для сим профиля TC)    |
| **p_lim**     | Пакет, без автопродления (только для сим профиля TD)     |
| **p_unlim**     | Пакет, с автопродлением (только для сим профиля TD)     |

##### Дополнительная информация
- Параметр **"balance"** используется только в сим-картах профиля TC;
- Параметр **"comment"** содержит в себе комментарий от NovaConnect касательно сим-карты (как правило, там рекомендации по работе сим);
- Параметр **"msu_value"** содержит количество MSU, переданных оператором (только для профиля TC);
- Информация о лимитах передается в мегабайтах;
- Все даты - в формате UnixTime;
- Блокировка типа **"m"** невозвратная - значит, что оператор заблокировал сим-карту за превышение лимита MSU.

# Счёт

```javascript
{
    "period": <string>,
    "added": <int>,
    "id": <int>,
    "paided": <int>,
    "cost": <float>,
    "valute_course": <float>,
    "country": <string>,
    "valute_cost": <float>,
    "bid": <string>,
    "currency": <string>
}
```
##### Параметры
| Параметр | Тип | Описание | Примечание |
|-------|----------|---------|---------|
| **period**     | string     | Период, за который выставлен счет    |
| **added**     | int (UnixTimeStamp)     | Дата добавления    |
| **id**     | int     | ID счета    |
| **paided**     | int (UnixTimeStamp)    | Дата зачисления оплаты    |
| **cost**     | float     | Сумма счета в EUR    |
| **valute_course**     | float     | Курс валюты на момент выставления счета    |
| **country**     | string     | Код страны для счета    |
| **valute_cost**     | float     | Сумма счета в валюте государства регистрации клиента    |
| **bid**     | string     | Номер счета    |
| **currency**     | string     | Код валюты, в которой выставлен счет   |

##### Дополнительная информация

- Счета выставляются в евро, если государство регистрации компании не Россия или Казахстан. Для российских компаний счета выставляются в рублях, для казахстанских - в тенге.
- Значение **valute_course** отображает курс валюты на день выставления счета. Курс получается из систем Центральных Банков России и Казахстана (для рубля и тенге)

# Компания

```javascript
{
  "id": <int>,
  "name": <string>,
  "unique_id": <string>,
  "contract": <string>,
  "country": <string>,
  "billing_type": <int>,
  "assigned": <int>,
  "balance": <string>,
  "prelimitary_balance": <string>
}
```

| Параметр | Тип | Описание |
|-------|----------|---------|
| **id**     | int     | ID компании    |
| **name**     | string     | Навзание   |
| **unique_id**     | string     | Уникальный ID (как правило - налоговый номер компании)     |
| **contract**     | string     | Номер договора    |
| **country**     | string     | Код государства регистрации компании     |
| **billing_type**     | int     | Тип биллинга: 0 - постоплата, 1 - предоплата     |
| **assigned**     | int     | Не используется    |
| **overdraft**     | string     | Установленный овердрафт    |
| **balance**     | string     | Текущий баланс (с символом валюты)    |
| **prelimitary_balance**     | string     | Предварительный баланс (с символом валюты), для постоплаты    |

# Пользователь

```javascript
{
    "id": <int>,
    "first_name": <string>,
    "last_name": <string>,
    "phone": <string>,
    "email": <string>,
    "active": <bool>,
    "role": <string>
}
```

| Параметр | Тип | Описание |
|-------|----------|---------|
| **id**    | int      | ID пользователя
| **first_name**    | string      | Имя
| **last_name**    | string      | Фамилия
| **phone**    | string      | Номер телефона
| **email**    | string      | Email-адрес
| **active**    | bool      | Активность
| **role**    | string      | Код роли

# Группа

```javascript
{
    "id": <int>,
    "name": <string>,
    "added": <int>
}
```
##### Параметры
| Параметр | Тип | Описание | Примечание |
|-------|----------|---------|---------|
| **id**     | int     | ID группы    |
| **name**     | string     | Название группы    |
| **added**     | int (UnixTimeStamp)     | Дата создания группы    | В объекте [Сим-карта](https://kb.novaconnect.kz/books/rukovodstvo-razrabotcika/page/sim-karta) не передается