Спецификация CSV-формата YPBank
Обзор
Файл формата — это текстовый файл с разделителями-запятыми (CSV), предназначенный для хранения данных о транзакциях. Файл имеет строгую структуру: обязательная строка заголовка и последующие строки, каждая из которых представляет одну транзакцию.
Структура файла
Кодировка
Файл должен быть в кодировке UTF-8.
Заголовок
Первая строка файла всегда должна содержать заголовок с именами полей. Заголовок должен точно соответствовать следующей строке:
TX_ID,TX_TYPE,FROM_USER_ID,TO_USER_ID,AMOUNT,TIMESTAMP,STATUS,DESCRIPTIONЗаписи данных
Каждая строка после заголовка представляет одну транзакцию. Поля в строке разделены запятыми. Пустые строки в файле игнорируются парсером.
Описание полей
| Имя поля | Тип данных | Описание |
|---|---|---|
TX_ID | целое (64-бит) | Уникальный идентификатор транзакции. |
TX_TYPE | строка | Тип транзакции. Возможные значения: DEPOSIT, TRANSFER, WITHDRAWAL. |
FROM_USER_ID | целое (64-бит) | Идентификатор пользователя-отправителя. Для системных пополнений (DEPOSIT) может быть 0. |
TO_USER_ID | целое (64-бит) | Идентификатор пользователя-получателя. Для системных списаний (WITHDRAWAL) может быть 0. |
AMOUNT | целое (64-бит) | Сумма транзакции в наименьших единицах валюты (например, в центах). |
TIMESTAMP | целое (64-бит) | Время совершения транзакции в формате Unix-времени (миллисекунды с начала эпохи). |
STATUS | строка | Статус транзакции. Возможные значения: SUCCESS, FAILURE, PENDING. |
DESCRIPTION | строка | Текстовое описание транзакции. Это поле является последним в строке и всегда заключается в двойные кавычки ("). |
Пример
TX_ID,TX_TYPE,FROM_USER_ID,TO_USER_ID,AMOUNT,TIMESTAMP,STATUS,DESCRIPTION
1001,DEPOSIT,0,501,50000,1672531200000,SUCCESS,"Initial account funding"
1002,TRANSFER,501,502,15000,1672534800000,FAILURE,"Payment for services, invoice #123"
1003,WITHDRAWAL,502,0,1000,1672538400000,PENDING,"ATM withdrawal"Last updated on