Спецификация YPBankText Text File Format
Общие сведения
Формат файла YPBankText представляет собой текстовую структуру, используемую для хранения записей о транзакциях в системе YPBank. Каждый файл состоит из последовательных записей о транзакциях. Формат разработан таким образом, чтобы он был понятен пользователю и его было легко парсить программно.
Описание
Файл YPBank представляет собой текстовый файл, содержащий записи о транзакциях. Каждая запись представляет собой блок пар ключ-значение, разделенный пустой строкой. Запись содержит следующие обязательные поля:
TX_ID– неотрицательное целое число, идентифицирующее транзакцию.TX_TYPE– тип транзакции:DEPOSIT,TRANSFER, илиWITHDRAWAL.FROM_USER_ID– неотрицательное целое число, идентифицирующее отправитель счета (используйте0для DEPOSIT).TO_USER_ID– неотрицательное целое число, идентифицирующее получателя счета (используйте0для WITHDRAWAL).AMOUNT– неотрицательное целое число, представляющее сумму в наименьшей единице валюты.TIMESTAMP– Unix epoch timestamp в миллисекундах.STATUS– состояние транзакции:SUCCESS,FAILURE, илиPENDING.DESCRIPTION– произвольное текстовое описание, UTF-8 в двойных кавычках.
Дополнительно:
- Поля могут располагаться в любом порядке.
- Каждое поле встречается ровно один раз.
- Записи о транзакциях разделяются пустыми строками.
- Файл может содержать однострочные комментарии, которые начинаются с ”#”; эти строки игнорируются при парсинге.
Examples
Пример содержимого файла YPBank:
# Record 1 (Deposit)
TX_ID: 1234567890123456
TX_TYPE: DEPOSIT
FROM_USER_ID: 0
TO_USER_ID: 9876543210987654
AMOUNT: 10000
TIMESTAMP: 1633036800000
STATUS: SUCCESS
DESCRIPTION: "Terminal deposit"
# Record 2 (Transfer)
TX_ID: 2312321321321321
TIMESTAMP: 1633056800000
STATUS: FAILURE
TX_TYPE: TRANSFER
FROM_USER_ID: 1231231231231231
TO_USER_ID: 9876543210987654
AMOUNT: 1000
DESCRIPTION: "User transfer"
# Record 3 (Withdrawal)
TX_ID: 3213213213213213
AMOUNT: 100
TX_TYPE: WITHDRAWAL
FROM_USER_ID: 9876543210987654
TO_USER_ID: 0
TIMESTAMP: 1633066800000
STATUS: SUCCESS
DESCRIPTION: "User withdrawal"Last updated on