44 lines
1.5 KiB
D
44 lines
1.5 KiB
D
module transaction.data;
|
|
|
|
import handy_http_primitives : Optional;
|
|
import std.datetime;
|
|
|
|
import transaction.model;
|
|
import transaction.dto;
|
|
import util.money;
|
|
import util.pagination;
|
|
|
|
interface TransactionVendorRepository {
|
|
Optional!TransactionVendor findById(ulong id);
|
|
TransactionVendor[] findAll();
|
|
bool existsByName(string name);
|
|
bool existsById(ulong id);
|
|
TransactionVendor insert(string name, string description);
|
|
void deleteById(ulong id);
|
|
TransactionVendor updateById(ulong id, string name, string description);
|
|
}
|
|
|
|
interface TransactionCategoryRepository {
|
|
Optional!TransactionCategory findById(ulong id);
|
|
bool existsById(ulong id);
|
|
TransactionCategory[] findAll();
|
|
TransactionCategory[] findAllByParentId(Optional!ulong parentId);
|
|
TransactionCategory insert(Optional!ulong parentId, string name, string description, string color);
|
|
void deleteById(ulong id);
|
|
TransactionCategory updateById(ulong id, string name, string description, string color);
|
|
}
|
|
|
|
interface TransactionTagRepository {
|
|
string[] findAllByTransactionId(ulong transactionId);
|
|
void updateTags(ulong transactionId, in string[] tags);
|
|
string[] findAll();
|
|
}
|
|
|
|
interface TransactionRepository {
|
|
Page!TransactionsListItem findAll(PageRequest pr);
|
|
Optional!TransactionDetail findById(ulong id);
|
|
TransactionDetail insert(in AddTransactionPayload data);
|
|
TransactionDetail update(ulong transactionId, in AddTransactionPayload data);
|
|
void deleteById(ulong id);
|
|
}
|