@dieugene/payments-db
Version:
Payments DB access layer for YDB Serverless (invoices & payments repos)
55 lines (39 loc) • 1.68 kB
Markdown
# @dieugene/payments-db
Упрощённый модуль для работы c инвойсами. Автоинициализация YDB через `PAYMENTS_DB_ADDRESS`. CommonJS (`require`).
- **Отдаём только инвойсы**, доступ к БД скрыт внутри.
- Есть «чёрный ход»: `raw` для прямого доступа к соединению и репозиториям.
- Таблица: `payments_db`, индекс по `uuid`: `VIEW uuid_index`.
## Требования
- Node.js >= 18
- Env: `PAYMENTS_DB_ADDRESS`
## Установка
```
npm install
```
## Быстрый старт
```js
const db = require('@dieugene/payments-db');
// Создать инвойс
const invoice = await db.invoices.make_invoice({
domain: 'example.com',
amount: 1000,
data: { comment: 'test' }
});
// Получить инвойс
const same = await db.invoices.get_invoice(invoice.id);
// Обновить инвойс
await db.invoices.set({ id: invoice.id, is_paid: true });
```
## Низкоуровневый доступ (по необходимости)
```js
const db = require('@dieugene/payments-db');
const connection = db.raw.get_connection(); // адаптер YDB c execute/upsert_struct
const payments = db.raw.payments();
const invoices = db.raw.invoices();
```
## API
- `invoices.make_invoice({ domain, amount, currency = 'RUB', data })`
- `invoices.get_invoice(id_or_uuid)`
- `invoices.set(invoice_updates, return_record = true)`
## Заметки
- Соединение лениво создаётся на основе `PAYMENTS_DB_ADDRESS`.