# Финансовый сервис
Это сервис для управления банковскими счетами, картами и кредитами с REST API интерфейсом.
## Требования
- Go 1.20+
- PostgreSQL 12+
- Установленные переменные окружения (см. Настройка)
## Установка и запуск
1. Клонируйте репозиторий:
```bash
git clone <repository-url>
cd final-project- Установите зависимости:
go mod download- Настройте базу данных:
CREATE DATABASE finance;- Запустите сервис:
go run Main.goСервис будет доступен по адресу http://localhost:8080
-
Регистрация
POST /register
Тело запроса:{ "username": "имя_пользователя", "email": "email@example.com", "password": "пароль" } -
Вход
POST /login
Тело запроса:{ "email": "email@example.com", "password": "пароль" }Возвращает JWT токен для авторизованных запросов.
-
Создать счет
POST /accounts
Тело запроса:{ "currency": "RUB" } -
Пополнить счет
POST /accounts/{id}/deposit
Тело запроса:{ "amount": 1000.00 } -
Снять средства
POST /accounts/{id}/withdraw
Тело запроса:{ "amount": 500.00 } -
Перевод между счетами
POST /transfer
Тело запроса:{ "fromAccountID": 1, "toAccountID": 2, "amount": 300.00 }
-
Создать виртуальную карту
POST /cards
Тело запроса:{ "account_id": 1, "cvv": "123" } -
Получить информацию о карте
GET /cards/{id}
-
Оформить кредит
POST /credits
Тело запроса:{ "account_id": 1, "amount": 10000.00, "term": 12 } -
Получить информацию о кредите
GET /credits/{id} -
Получить график платежей
GET /credits/{creditId}/schedule
Сервис автоматически обрабатывает платежи по кредитам каждый день в полночь. Для ручного запуска:
POST /credits/process-paymentsЛоги сохраняются в файл app.log и выводятся в консоль. Уровень логирования можно настроить в utils/logger.go.