Finance manager
Лабораторна робота №2 - Документація коду
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
Transaction Class Reference

Представляє одну фінансову операцію (дохід, витрата тощо). More...

#include <Transaction.h>

Public Member Functions

void addTransaction ()
 Встановлює час створення транзакції. (Зараз - заглушка).
 
std::vector< TransactionsplitTransaction (const std::vector< std::pair< double, std::string > > &parts)
 Розділяє одну транзакцію на декілька менших.
 
void tagTransaction (const std::string &tag)
 Додає тег до транзакції.
 
void undoTransaction ()
 Скасовує транзакцію (наразі заглушка).
 

Public Attributes

std::string id
 Унікальний ідентифікатор транзакції.
 
double amount = 0.0
 Сума транзакції (додатна - дохід, від'ємна - витрата).
 
std::time_t date = 0
 Дата та час транзакції (у форматі Unix timestamp).
 
std::string description
 Короткий опис, наданий користувачем.
 
std::string categoryId
 Ідентифікатор категорії (напр., "food", "rent").
 
std::string accountId
 Ідентифікатор рахунку, з якого/на який було здійснено платіж.
 
std::string currency = "USD"
 Код валюти
 
double exchangeRate = 1.0
 Обмінний курс відносно базової валюти (якщо не 1.0).
 
std::vector< std::string > tags
 Список тегів для фільтрації (напр., "work", "vacation").
 
std::string recurringRule
 Правило повторення (напр., "monthly:5" - щомісяця 5-го числа).
 
std::string importedSource
 Джерело імпорту (напр., "CSV:monobank.csv").
 
std::string note
 Додаткова розширена примітка.
 
std::time_t createdAt = 0
 Час створення запису (Unix timestamp).
 
std::time_t updatedAt = 0
 Час останнього оновлення запису (Unix timestamp).
 

Detailed Description

Представляє одну фінансову операцію (дохід, витрата тощо).

Це основна структура даних для зберігання всієї інформації, пов'язаної з окремим фінансовим рухом, включаючи суму, дату, категорію, теги та метадані.

Member Function Documentation

◆ addTransaction()

void Transaction::addTransaction ( )
inline

Встановлює час створення транзакції. (Зараз - заглушка).

◆ splitTransaction()

std::vector< Transaction > Transaction::splitTransaction ( const std::vector< std::pair< double, std::string > > &  parts)
inline

Розділяє одну транзакцію на декілька менших.

Корисно для випадків, коли один чек містить декілька категорій (напр., у супермаркеті куплено "їжу" та "побутову хімію").

Parameters
partsВектор пар, де кожна пара це {сума, categoryId} для нової транзакції.
Returns
Вектор нових об'єктів Transaction, створених на основі поточної.

◆ tagTransaction()

void Transaction::tagTransaction ( const std::string &  tag)
inline

Додає тег до транзакції.

Parameters
tagРядок тегу, який потрібно додати до вектора tags.

◆ undoTransaction()

void Transaction::undoTransaction ( )
inline

Скасовує транзакцію (наразі заглушка).

(Майбутня логіка може включати створення зворотної транзакції).

Member Data Documentation

◆ accountId

std::string Transaction::accountId

Ідентифікатор рахунку, з якого/на який було здійснено платіж.

◆ amount

double Transaction::amount = 0.0

Сума транзакції (додатна - дохід, від'ємна - витрата).

◆ categoryId

std::string Transaction::categoryId

Ідентифікатор категорії (напр., "food", "rent").

◆ createdAt

std::time_t Transaction::createdAt = 0

Час створення запису (Unix timestamp).

◆ currency

std::string Transaction::currency = "USD"

Код валюти

◆ date

std::time_t Transaction::date = 0

Дата та час транзакції (у форматі Unix timestamp).

◆ description

std::string Transaction::description

Короткий опис, наданий користувачем.

◆ exchangeRate

double Transaction::exchangeRate = 1.0

Обмінний курс відносно базової валюти (якщо не 1.0).

◆ id

std::string Transaction::id

Унікальний ідентифікатор транзакції.

◆ importedSource

std::string Transaction::importedSource

Джерело імпорту (напр., "CSV:monobank.csv").

◆ note

std::string Transaction::note

Додаткова розширена примітка.

◆ recurringRule

std::string Transaction::recurringRule

Правило повторення (напр., "monthly:5" - щомісяця 5-го числа).

◆ tags

std::vector<std::string> Transaction::tags

Список тегів для фільтрації (напр., "work", "vacation").

◆ updatedAt

std::time_t Transaction::updatedAt = 0

Час останнього оновлення запису (Unix timestamp).


The documentation for this class was generated from the following file: